Fix verify: dynamic hook types + target 17
This commit is contained in:
parent
a365ea9ed1
commit
c3db82fbd2
@ -53,10 +53,10 @@ $REPO = 'bookworm/bookworm-smart-assistant'
|
|||||||
$CLAUDE_ROOT = Join-Path $env:USERPROFILE '.claude'
|
$CLAUDE_ROOT = Join-Path $env:USERPROFILE '.claude'
|
||||||
$TRUST_PEM_PATH = Join-Path $env:USERPROFILE '.bookworm-trust.pem'
|
$TRUST_PEM_PATH = Join-Path $env:USERPROFILE '.bookworm-trust.pem'
|
||||||
|
|
||||||
# 目标计数 (v6.5.1)
|
# 目标计数 (v6.5.1, 以 stats-compiled.json 的 hooksRegistered 为准)
|
||||||
$TARGET_SKILLS = 93
|
$TARGET_SKILLS = 93
|
||||||
$TARGET_AGENTS = 18
|
$TARGET_AGENTS = 18
|
||||||
$TARGET_HOOKS_MIN = 37 # >=37 即可 (38 全量, 有条件注册容错)
|
$TARGET_HOOKS_MIN = 17 # settings.json 真实激活数 (非 hook 文件总数 38)
|
||||||
|
|
||||||
# ========== 预检 ==========
|
# ========== 预检 ==========
|
||||||
function Assert-Prereqs {
|
function Assert-Prereqs {
|
||||||
@ -206,22 +206,29 @@ function Test-Installation {
|
|||||||
W-Ok "Agents: $agentCount (目标 $TARGET_AGENTS)"
|
W-Ok "Agents: $agentCount (目标 $TARGET_AGENTS)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hooks 数 (从 settings.json 解析 hooks 注册条目)
|
# Hooks 数 (从 settings.json 解析, 动态枚举 hooks 下所有类型)
|
||||||
$settingsPath = Join-Path $CLAUDE_ROOT 'settings.json'
|
$settingsPath = Join-Path $CLAUDE_ROOT 'settings.json'
|
||||||
if (Test-Path $settingsPath) {
|
if (Test-Path $settingsPath) {
|
||||||
try {
|
try {
|
||||||
$settings = Get-Content -Raw $settingsPath | ConvertFrom-Json
|
$settings = Get-Content -Raw $settingsPath | ConvertFrom-Json
|
||||||
$hookCount = 0
|
$hookCount = 0
|
||||||
foreach ($hookType in @('UserPromptSubmit', 'SessionStart', 'PreToolUse', 'PostToolUse', 'Stop', 'PreCompact')) {
|
$breakdown = @{}
|
||||||
|
if ($settings.hooks) {
|
||||||
|
foreach ($hookType in $settings.hooks.PSObject.Properties.Name) {
|
||||||
$grp = $settings.hooks.$hookType
|
$grp = $settings.hooks.$hookType
|
||||||
|
$cnt = 0
|
||||||
if ($grp) {
|
if ($grp) {
|
||||||
foreach ($g in $grp) {
|
foreach ($g in $grp) { $cnt += $g.hooks.Count }
|
||||||
$hookCount += $g.hooks.Count
|
|
||||||
}
|
}
|
||||||
|
$breakdown[$hookType] = $cnt
|
||||||
|
$hookCount += $cnt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($hookCount -lt $TARGET_HOOKS_MIN) {
|
if ($hookCount -lt $TARGET_HOOKS_MIN) {
|
||||||
W-Warn "Hooks 注册数偏低: $hookCount / $TARGET_HOOKS_MIN+"
|
W-Warn "Hooks 注册数偏低: $hookCount / $TARGET_HOOKS_MIN (可能漂移)"
|
||||||
|
$breakdown.GetEnumerator() | Sort-Object Name | ForEach-Object {
|
||||||
|
W-Warn " $($_.Name): $($_.Value)"
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
W-Ok "Hooks 注册数: $hookCount (目标 $TARGET_HOOKS_MIN+)"
|
W-Ok "Hooks 注册数: $hookCount (目标 $TARGET_HOOKS_MIN+)"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user