mirokaku/musa.veil/veil-update
Claude Code and agent skill by mirokaku/musa.veil
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Synchronize Veil headers with the latest phnt (Process Hacker Native API) changes. Use this skill whenever the user wants to update Veil from upstream phnt, sync NT kernel headers, apply phnt diffs, convert PHNT macros to NTDDI macros, add __kernel_entry/Zw* function pairs, or generally keep Veil in step with winsiderss/systeminformer. Also use when the user mentions "update Veil", "sync phnt", "apply phnt changes", "VERSION_COMMIT", or asks to refresh Veil headers from upstream.
Install
npx vskill@latest install mirokaku/musa.veil/veil-updateSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Veil Update Skill
Overview
Veil is a Windows native API header library that synchronizes with phnt and adapts it to Veil's coding conventions.
Prerequisites
| Component | Value | |
|---|---|---|
| Build script | BuildAllTargets.cmd in Veil.Test/ | |
| Pre-build cleanup | Kill zombie MSBuild: taskkill /f /im MSBuild.exe | |
| Current upstream | Read VERSION_COMMIT (root, hash only) |
Update Workflow
Phase 1 — Prepare
- Read
VERSION_COMMITfor the current upstream commit hash. - Sparse-clone or pull
winsiderss/systeminformerinto.cache/systeminformer/. - Run
git diff <old> <new> -- phnt/include/to generate per-file diffs. - Identify which phnt files changed and map them to Veil headers (see File Mapping).
Phase 2 — Apply
For each changed phnt file that has a Veil mapping:
- Read the diff section and the latest phnt source.
- Read the current Veil header.
- Apply new additions (functions, structs, enums, macros, typedefs) that don't
already exist in Veil.
- Do not remove existing Veil content — only add or update.
- Handle each change type as described below.
Phase 3 — Convert
Macro Conversion
Replace all PHNT_* macros with Veil equivalents:
| phnt Macro | Veil Macro | |
|---|---|---|
PHNT_VERSION | NTDDI_VERSION | |
PHNT_WINDOWS_ANCIENT | NTDDI_WIN2K | |
PHNT_WINDOWS_XP | NTDDI_WINXP | |
PHNT_WINDOWS_SERVER_2003 | NTDDI_WS03 | |
PHNT_WINDOWS_VISTA | NTDDI_VISTA | |
PHNT_WINDOWS_7 | NTDDI_WIN7 | |
PHNT_WINDOWS_8 | NTDDI_WIN8 | |
PHNT_WINDOWS_8_1 | NTDDI_WINBLUE | |
PHNT_WINDOWS_10 | NTDDI_WIN10 | |
PHNT_WINDOWS_10_TH2 | NTDDI_WIN10_TH2 | |
PHNT_WINDOWS_10_RS1 | NTDDI_WIN10_RS1 | |
PHNT_WINDOWS_10_RS2 | NTDDI_WIN10_RS2 | |
PHNT_WINDOWS_10_RS3 | NTDDI_WIN10_RS3 | |
PHNT_WINDOWS_10_RS4 | NTDDI_WIN10_RS4 | |
PHNT_WINDOWS_10_RS5 | NTDDI_WIN10_RS5 | |
PHNT_WINDOWS_10_19H1 | NTDDI_WIN10_19H1 | |
PHNT_WINDOWS_10_19H2 | NTDDI_WIN10_19H1 | |
PHNT_WINDOWS_10_20H1 | NTDDI_WIN10_VB | |
PHNT_WINDOWS_10_20H2 | NTDDI_WIN10_MN | |
PHNT_WINDOWS_10_21H1 | NTDDI_WIN10_FE | |
PHNT_WINDOWS_10_21H2 | NTDDI_WIN10_CO | |
PHNT_WINDOWS_10_22H2 | NTDDI_WIN10_CO | |
PHNT_WINDOWS_11 | NTDDI_WIN11 | |
PHNT_WINDOWS_11_22H2 | NTDDI_WIN11_NI | |
PHNT_WINDOWS_11_23H2 | NTDDI_WIN11_NI | |
PHNT_WINDOWS_11_24H2 | NTDDI_WIN11_GE | |
PHNT_WINDOWS_11_25H2 | NTDDI_WIN11_DT | |
PHNT_WINDOWS_11_26H1 | NTDDI_WIN11_BR | |
PHNT_WINDOWS_11_27H2 | Blocked; no Veil constant exists for that release | |
PHNT_WINDOWS_NEW | Sentinel; keep the comparison as written, do not convert to a fixed NTDDI_* value |
Example:
Nt Function Formatting
Add __kernel_entry before NTSYSCALLAPI for all Nt* syscall declarations. Ensure the closing ); has no leading spaces.
Before (phnt):
After (Veil):
Zw Function Pair
Immediately after each Nt* function, add the corresponding Zw* function:
Use _IRQL_requires_max_(PASSIVE_LEVEL) and NTSYSAPI for Zw functions.
Other Conversions
static_assert→STATIC_ASSERT- Replace phnt-style
_Kernel_entry_→ Veil__kernel_entry - Sync Zw parameter annotation fixes from upstream when applicable
Phase 4 — Validate
After each file update, run the build:
Fix compilation errors before proceeding to the next file.
Phase 5 — Finalize
- Update
VERSION_COMMITwith the new upstream commit hash (hash only, no URL or date). - Report changes from
ntmisc.hseparately to the user. - Clean up
.cache/directory.
File Mapping
| phnt Source | Veil Header | |
|---|---|---|
ntlpcapi.h | Veil/Veil.System.ALPC.h | |
ntbcd.h | Veil/Veil.System.BCD.h | |
ntregapi.h | Veil/Veil.System.ConfigurationManager.h | |
ntdbg.h | Veil/Veil.System.Debug.h | |
ntwmi.h | Veil/Veil.System.Etw.h | |
ntexapi.h | Veil/Veil.System.Executive.h | |
ntioapi.h | Veil/Veil.System.IOManager.h | |
ntkeapi.h | Veil/Veil.System.KernelCore.h | |
ntldr.h | Veil/Veil.System.Loader.h | |
ntmmapi.h | Veil/Veil.System.MemoryManager.h | |
ntnls.h | Veil/Veil.System.Nls.h | |
ntobapi.h | Veil/Veil.System.ObjectManager.h | |
ntpnpapi.h | Veil/Veil.System.PNP.h | |
ntpoapi.h | Veil/Veil.System.PowerManager.h | |
ntpfapi.h | Veil/Veil.System.Prefetcher.h | |
ntpsapi.h | Veil/Veil.System.Process.h | |
ntpebteb.h | Veil/Veil.System.Process.h (PEB, PEB32, TEB, TEB32) | |
ntxcapi.h | Veil/Veil.System.Process.h (NtContinue family), Veil/Veil.System.RuntimeLibrary.h (Rtl exception support) | |
ntrtl.h | Veil/Veil.System.RuntimeLibrary.h | |
ntsam.h | Veil/Veil.System.SAM.h | |
ntseapi.h | Veil/Veil.System.Security.h | |
ntsmss.h | Veil/Veil.System.SMSS.h | |
ntsxs.h | Veil/Veil.System.SxS.h | |
nttp.h | Veil/Veil.System.ThreadPool.h | |
nttmapi.h | Veil/Veil.System.TransactionManager.h | |
ntmisc.h | Multi-domain: classify every changed section by symbol ownership (Package APIs → Veil/Veil.System.AppPackage.h, PCW performance counters → Veil/Veil.System.Etw.h) |
Unmapped (skip): nttypesafe.h, ntstrsafe.h, ntintsafe.h, ntd3dkmt.h
Code Conventions
File Header
Every Veil header starts with:
Kernel/User Mode Guards
Enum Definition
Structure Definition
Verification Checklist
- [ ] All
PHNT_WINDOWS_*macros converted toNTDDI_* - [ ] All
Nt*functions have__kernel_entryattribute - [ ] All
Nt*functions have correspondingZw*pairs - [ ] Closing parentheses aligned (no leading spaces before
);) - [ ] No compilation errors in
BuildAllTargets.cmd - [ ] Definition order respects dependencies
- [ ]
ntmisc.hchanges reported separately - [ ]
VERSION_COMMITupdated - [ ]
.cache/cleaned up
Error Handling
| Issue | Cause | Solution | |
|---|---|---|---|
| Undefined type | Missing dependency | Check definition order; move definition earlier | |
| Redefinition | Duplicate in SDK/WDK | Wrap with #ifndef _KERNEL_MODE or version check | |
| Missing SAL annotation | phnt inconsistency | Add _In_, _Out_, _Inout_ as appropriate | |
| Macro conflict | Name collision | Use VEIL_ prefix or conditional compilation |
Communication
- All interactions with the user: Chinese
- All documents/AI-readable content: English
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.omp/skills/veil-update/SKILL.md
Popularity
- Repository stars
- 371
- Repository forks
- 60
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mirokaku/musa.veil/veil-update)