Cyberwise Reports logo

Cyberwise Reports

Organization
zenobi-us
cyberwise-reports

Generate deliverables about a modded Cyberpunk 2077 install - a system profile that says what is likely wrong, a full mod-list inventory with descriptions, and the house style plus headless verification for any HTML or Discord-markdown report. Use when someone reports a problem with no detail, when asked what mods are installed, or when generating any page or report for a user to read.

Overview

Publisherzenobi-us
Repositorydotfiles
Skill namecyberwise-reports
Stars
67
Forks
6
Bundled files
12
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by zenobi-us on GitHub. Read the source before you install it.

Installation

Install the Cyberwise Reports AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zenobi-us/dotfiles.git /tmp/dotfiles
mkdir -p .claude/skills
cp -r /tmp/dotfiles/files/devtools/agent/bundles/developer/skills/game-dev/cyberwise-reports .claude/skills/cyberwise-reports
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Cyberwise Reports in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Cyberwise Reports on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Cyberwise Reports is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Cyberwise: reports and deliverables

Verified: Cyberpunk 2077 patch 2.31 - August 2026 Re-check after a patch: The profiler reads framework versions and log states; re-check those paths. Nothing in the report design depends on a game patch.

Load cyberwise alongside this for the method rules.

Start here when the report is "it's broken"

powershell
tools\New-SystemProfile.ps1 -GameRoot '<path>'

Writes Discord-pasteable markdown and an HTML report, led by a flags section naming what is likely to be the problem. Only fields that change a diagnosis are collected - VRAM against total texture volume, pagefile, drive type, framework versions, load-order health, whether redscript last compiled. Motherboard model explains nothing about a mod, so it is not there.

Every flag names the symptom and the reason, and carries the items it counted: a flag saying "60 archives are unlisted" is unactionable until you know which 60, and seeing the list is also how a wrong flag gets caught.

Every user should have a machine profile in their wiki

powershell
tools\New-SystemProfile.ps1 -GameRoot '<path>' -Wiki

Same measurement, third output: an OKF article at <records>\Cyberwise\wiki\machine.md (-WikiPath moves it). Run it once per user, early - a fresh session that has never measured this machine either asks the user to read numbers off a screen, or reasons about hardware it invented.

It is user-only and the tool refuses to write it into the base wiki, because it describes one person's hardware and nothing about the game. And it is regenerated whole on every run - the no-clobber rule that protects a hand-deepened mod article does not apply to a file whose every line is measured, and the article says so in its own header so nobody preserves a stale one out of the wrong instinct.

Two things in it are not in the markdown report:

  • What this rules in and out, derived from the actual numbers. 32 GB of VRAM makes exhaustion an unlikely suspect; 6 GB makes it the first one. The point is that a later session knows which suspicions are worth having on this machine, and does not carry a conclusion over from a different one.
  • The VRAM measurement warning, because both wrong answers are easy to reach and neither looks wrong. Win32_VideoController.AdapterRAM is a uint32 and saturates at 4 GB; the display-class registry HardwareInformation.qwMemorySize is correct only if you enumerate every index, since index 0 may be an integrated adapter. Cross-check with nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv. The general lesson is in the base wiki at /process/a-capacity-read-from-the-wrong-api.

Inventory the mod list

powershell
tools\New-ModManifest.ps1 -StagingRoot '<manager staging root>' -NexusApiKey <key>

It reads a manager's staging root, not the game directory. A Vortex-style staging root is auto-detected; anything else needs -StagingRoot pointed at it (for MO2, its mods\ folder). A fully manual install has no staging tree, so the tool has nothing to walk.

Most of it works offline because a manager that installed from Nexus encodes <Display Name>-<NexusID>-<version>-<timestamp> into the folder name, which yields the name, a working URL and the install date with no credentials. That naming is Vortex's; MO2 folder names are user-editable, so expect name-only for renamed folders. -NexusApiKey adds summaries, author, category and the real adult-content flag, cached so re-runs are free. -HideNSFW omits adult mods.

-NoNexus guarantees no network call. A key stored in Credential Manager is picked up automatically, so without this switch "I did not pass a key" is not the same as "it stayed offline". Use it for a quick inventory, on a metered or offline connection, or any time reaching a third-party API is not something the user asked for.

Two things before trusting the NSFW filter, both measured on one 846-mod install:

  • Without an API key it is a name heuristic and it under-detects. It caught 17 there. Adult mods with innocuous names sail past.
  • Flags propagate across a shared Nexus ID, because one page carries one flag but ships many differently-named files. That alone caught 7 of those 17.

The output is the user's actual mod list. Treat it as personal: write it outside any repo and never commit it.

One mod: "I installed this - is it working?"

powershell
tools\New-ModDossier.ps1 -Mod '<name>' -GameRoot '<path>'

The most common question on any modded install, and nothing answers it, because a mod is not one thing. It is up to nine payloads deployed to nine places, each failing in its own silent way - an archive that loses every file it contests, a .reds that is on disk but not in the compiled bundle, a CET folder with no init.lua, a .yaml that never loaded. A single verdict would be a lie; this reports per layer, and says unknown where disk genuinely cannot tell.

It walks the mod's own staging folder to learn what it should deploy, so the footprint is exact rather than inferred from its category or its page. It also pulls in the user's real settings for that mod (matched on its redscript module, which is how user.ini sections are keyed - not on its display name) and any override you have registered against it.

Paths are redacted by default: a dossier is what somebody pastes into a thread when asking why a mod does nothing.

Any generated page: measure it, do not eyeball it

Get the viewport from the user, not from the screen — and LAUNCH the probe yourself. Do not print the command and wait. Run it, so a browser window opens on their machine; then ask them to size it the way they will actually read the page and read the two numbers back.

powershell
tools\Show-ViewportProbe.ps1        # RUN THIS FOR THEM - it opens the page itself
tools\Measure-PageFit.ps1 -Path page.html -Width <w> -Height <h> -Screenshot -ShotPath shot.png

"Run this and tell me the output" is a request for the user to do your job. The only time to hand over a command is when they have said they want to run it themselves.

Detecting the display assumes maximised on the primary at 100% zoom, and cannot express "the little side panel" or "half-width on monitor 2" at all. Ask - but do the opening.

Then say what that viewport implies rather than silently designing to it: on a small one, agree what earns the top of the page and accept scrolling for the rest; on a TV, scale the type up hard. An unreadable page that fits is not a win.

And look at the output, not just the number - pass -Screenshot and read the image. Two failure modes a screenshot cannot show you, and one a number cannot:

  • An element pushed clean off the page. A long inline label with white-space:nowrap forced its row wider than its container and shoved a keycap past the right edge - not clipped, not squeezed, absent.
  • A layout that "fits" because the flag was ignored. In PowerShell, --window-size=$W,$H unquoted parses as an array, so the browser silently renders at its 800x600 default. Quote it.
  • DocHeight == ViewHeight does not mean the page fills the window. scrollHeight has the viewport as its floor. Re-measure against a short window for the true content height.

Anything meant for a chat paste has a hard size limit

Discord refuses a message over 2000 characters - it does not truncate it. A report that quietly runs long is one the user cannot send at all, and they find that out while already stuck.

Every paste-facing output here says its own size and what to do instead: the profile warns with the character count, the manifest names the file and the HTML as the alternatives, and the tray trims a crash summary to fit before it reaches the clipboard. Hand somebody a short form or an attachment - never a wall of text and a "paste this".

House style - palette, one type base, flex over CSS multi-column, Discord's lack of table rendering and the 2000-character cap: references/report-design.md.

Two reports that are not diagnostics

Everything above answers "what is broken". These two answer "what is this install", which is a different job and worth keeping distinct - neither one should ever be offered as an answer to a problem.

The credits roll

powershell
tools\New-ModCredits.ps1 -StagingRoot '<staging>' -Md credits.md

Every author whose work is in the game, and what each of them made. It is the one page here you could show somebody who does not mod.

Two things it must keep getting right:

  • Distinct mods, not staging folders. A FOMOD with options installs as several folders under one Nexus id. Counting folders inflated a real install from 715 to 798 and printed one mod's title four times in its author's line.
  • Adult mods are omitted by default, and the count is printed. The page is built to be shown, so the safe default is the one that does not surprise somebody on a stream - but silently dropping people from a credits list is its own unkindness. -ShowAdult includes everything.

Authors come from the Nexus metadata cache the manifest tool builds. A mod that has never been enriched appears with no author on record, said plainly rather than guessed at.

The archive anatomy

powershell
tools\New-ArchiveAnatomy.ps1 -GameRoot '<path>' -Md anatomy.md

What the archive layer is: how much of the base game it replaces, what it is made of, and which parts of Night City it concentrates on.

The distinction that makes it possible is replace versus add. An archive hash the vendored base-game path table knows is an override - the game shipped that file and this mod stands on top of it. A hash it does not know is an asset the mod invented. Every tool that reads archives without the path table sees those as the same thing, and they mean opposite things: 4,000 new meshes is a content pack, 40 overridden ones is a mod that can break on the next patch.

Unresolved is not unknown. The table covers 99.97% of base game + EP1, which is the only reason the "new" column can be trusted at all. That caveat is printed on the page, not left to the reader.

It reads the index of every .archive in the load order - about 45 seconds on an 800-mod install - and writes nothing to the game. REDmod archives are counted but never ranked against loose ones, because modlist.txt does not order them.

Tools

tooldoes
tools/New-SystemProfile.ps1machine + install facts that change a diagnosis, flags first; -Wiki also writes the user's machine-profile article
tools/New-ModManifest.ps1inventory of an installed load order, with descriptions
tools/New-ModDossier.ps1one mod, every layer: what it ships and which parts are actually doing anything
tools/New-ModCredits.ps1the people whose work is in the game, grouped by author; adult omitted by default
tools/New-ArchiveAnatomy.ps1what the archive layer replaces versus what it adds, by area and by type
tools/ModManifestHtml.ps1HTML renderer for the manifest (dot-sourced)
tools/NexusCredential.ps1Nexus API key in Windows Credential Manager
tools/Show-ViewportProbe.ps1asks the user's own browser window how big it is
tools/Measure-PageFit.ps1does a generated page fit a given viewport

Every HTML report here takes -Md and writes the same facts as markdown, for a forum post, a wiki, or a Discord message where a local HTML file is useless to whoever you are talking to. Where the markdown is the variant that gets pasted, it carries the redaction too - and anything over 2000 characters says so, because Discord refuses an over-long message rather than clipping it.

Pass the paths explicitly. These carry defaults for a game root, a staging root and a viewport. A default that happens to exist on the wrong machine is worse than an error, because the output looks plausible.

Reference material

filecovers
references/report-design.mdpalette, layout, Discord constraints, verifying headless

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Cyberwise Reports AI skill do?

Generate deliverables about a modded Cyberpunk 2077 install - a system profile that says what is likely wrong, a full mod-list inventory with descriptions, and the house style plus headless verification for any HTML or Discord-markdown report. Use when someone reports a problem with no detail, when asked what mods are installed, or when generating any page or report for a user to read.

Why use Cyberwise Reports on TypingMind?

Because you install it once and use it with any model. Cyberwise Reports is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Cyberwise Reports in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zenobi-us/dotfiles/tree/master/files/devtools/agent/bundles/developer/skills/game-dev/cyberwise-reports. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Cyberwise Reports?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Cyberwise Reports?

As many as you like. As long as a model supports skills, you can use Cyberwise Reports with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Cyberwise Reports AI skill free?

Yes. It is published on GitHub by zenobi-us under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇