agluszak

class-triage

Evaluate new Wizardry 8 class boundaries, inheritance/subobject changes, or whether lifecycle/vtable families are distinct authored classes; not ordinary method recovery.

agluszak 1 Updated 19h ago

Resources

1
GitHub

Install

npx skillscat add agluszak/wizardry-8-decomp/class-triage

Install via the SkillsCat registry.

SKILL.md

Class triage

Use this skill for a proposed class boundary, inheritance/subobject change, or uncertain identity
across lifecycle/vtable families. Do not rerun identity triage for ordinary methods of an established class.

Inspect and edit native Ghidra objects through direct PyGhidra.
For field widths, prototypes, receiver normalization, or Clang consistency checks, read
type and layout evidence as needed.

First test whether the canonical base or template explains the evidence. A distinct vtable,
lifecycle body, deleting destructor, or registry family does not alone prove authored source.
Declare only the additional boundary independently supported by storage, behavior, or source identity.

Scalar and vector deleting destructors are MSVC ABI glue, never authored functions or evidence for a
new class boundary. Keep the wrapper address as a marker-only SYNTHETIC identity. Recover a separate
ordinary destructor only when retail emits it independently; otherwise use the declaration, inline
form, or inherited virtual destructor required by the evidenced hierarchy.

Read template emission for srClassSupport, registry, clone, or
deleting-destructor evidence. Read inheritance evidence when
receivers, subobject placement, or a hierarchy changes. Validate the affected lifecycle/vtable bundle
when the model changes, using just compare ADDRESS... and just wiz8 vtable CLASS.
Record unresolved identity concisely; prefer an address-qualified name to unsupported semantics.