validate-17-layers | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / validate-17-layers

validate-17-layers

maintained by peijun1700

star 103 account_tree 11 verified_user MIT License
bolt View GitHub

name: validate-17-layers description: > BlueMouse 17-Layer Code Validation System - Complete Python code quality validation covering syntax, structure, function signatures, dependencies, types, logic, security, and performance. Triggers: "validate", "17層驗證", "code quality", "v17" allowed-tools:

  • Read
  • Bash
  • Grep
  • Glob user-invocable: true context: fork

BlueMouse 17-Layer Validation Skill

Complete code validation system from the BlueMouse AI Safety project. Validates Python code across 17 dimensions.

Two Ways to Use

1. AI-Guided Validation (Recommended)

When user requests code validation, follow the 17-Layer Checklist below to analyze the code.

2. Script Execution

python3 .claude/skills/validate-17-layers/validator.py myfile.py
python3 .claude/skills/validate-17-layers/validator.py --json myfile.py

17-Layer Validation Checklist

When validating Python code, check ALL 17 layers in order:

Group 1: L1-L4 語法和結構驗證

L1: 基本語法檢查

What: Code compiles without syntax errors How: compile(code, '<string>', 'exec') Pass: No SyntaxError Fail: Report syntax error location and message

L2: AST 結構檢查

What: Code contains function or class definitions How: Parse AST, check for FunctionDef or ClassDef nodes Pass: At least one function or class defined Fail: "缺少函數或類定義"

L3: 縮進和格式檢查

What: Proper indentation How: Check each line:

  • No tab characters (\t)
  • Leading spaces are multiples of 4 Pass: All lines follow rules Fail: Report lines with issues (max 3)

L4: 命名規範檢查

What: PEP 8 naming conventions How:

  • Functions: ^[a-z_][a-z0-9_]*$ (snake_case)
  • Classes: ^[A-Z][a-zA-Z0-9]*$ (PascalCase) Pass: All names follow conventions Fail: Report non-compliant names

Group 2: L5-L8 函數簽名驗證

L5: 參數檢查

What: Function has parameters (or matches spec if provided) How: Extract function arguments from AST Pass: Has parameters or matches spec Fail: "參數不匹配" with expected vs actual

L6: 返回值檢查

What: Function has explicit return statement How: Check for ast.Return nodes in function body Pass: Has at least one return Fail: "函數缺少返回值"

L7: 類型提示檢查

What: Type hints coverage ≥80% and has return type How:

coverage = params_with_annotations / total_params
passed = coverage >= 0.8 AND has_return_type_hint

Pass: Coverage ≥80% with return type Fail: "類型提示不足: X%"

L8: 文檔字符串檢查

What: Meaningful docstring (>10 characters) How: ast.get_docstring(func) Pass: Docstring length > 10 Fail: "缺少或文檔字符串過短"


Group 3: L9-L12 依賴關係驗證

L9: 導入檢查

What: Count import statements How: Count ast.Import and ast.ImportFrom nodes Pass: Always (informational) Output: "找到 N 個導入語句"

L10: 標準庫檢查

What: Identify stdlib usage How: Match imports against known stdlib:

{os, sys, json, re, datetime, typing, asyncio, time, math, hashlib}

Pass: Always (informational) Output: "精確識別出 N 個標準庫導入"

L11: 第三方庫檢查

What: Identify third-party library usage How: Match imports against common packages:

{django, flask, fastapi, requests, numpy, pandas}

Pass: Always (informational) Output: "使用了 N 個第三方庫"

L12: 循環依賴檢查

What: Detect risky relative imports How: Check ast.ImportFrom nodes where level > 0

from ..module import x  # level=2, RISKY
from .sibling import y  # level=1, RISKY

Pass: No relative imports Fail: "檢測到相對導入,可能存在循環依賴風險"


Group 4: L13-L17 類型和邏輯驗證

L13: 類型一致性檢查

What: All functions have ≥70% type hint coverage How: Scan all functions, calculate overall coverage Pass: Coverage ≥70% Fail: "函數類型提示覆蓋率: X%"

L14: 邏輯完整性檢查

What: Code has control flow structures How: Check for ast.If, ast.For, ast.While Pass: Always (informational) Output: "邏輯結構完整" or "邏輯結構簡單"

L15: 錯誤處理檢查 ⚠️ ANTI-PATTERN DETECTION

What: No empty try-except blocks How: Find ast.Try nodes, check handlers:

# ❌ FAIL: Empty handler
except:
    pass

# ❌ FAIL: Only pass
except Exception as e:
    pass

# ✅ PASS: Actual handling
except Exception as e:
    logger.error(e)
    raise

Pass: Has try-except AND no empty/pass-only handlers Fail: "發現 N 個空的或只有 pass 的錯誤處理塊 (Anti-pattern)"

L16: 安全性檢查 🔒 SECURITY SCAN

What: No dangerous functions or hardcoded secrets How:

  1. Dangerous functions:
    • eval() - arbitrary code execution
    • exec() - arbitrary code execution
    • pickle - deserialization vulnerability
  2. Hardcoded secrets (regex):
    • api_key\s*=\s*[\'"][^\s*]{10,}[\'"]
    • password\s*=\s*[\'"][^\s*]{8,}[\'"] Pass: No dangerous functions AND no hardcoded secrets Fail: "發現 N 個潛在安全性問題" with list

L17: 性能檢查 ⚡ COMPLEXITY ANALYSIS

What: No deeply nested loops (≥3 levels) How: Calculate maximum loop nesting depth

# ❌ FAIL: 3-level nesting
for i in range(n):      # Level 1
    for j in range(n):  # Level 2
        for k in range(n):  # Level 3 - TOO DEEP
            pass

# ✅ PASS: 2-level nesting
for i in range(n):      # Level 1
    for j in range(n):  # Level 2
        pass

Pass: max_depth < 3 Fail: "檢測到過深的循環嵌套 (Depth: N),建議優化算法"


Output Format

When reporting results, use this format:

============================================================
BlueMouse 17-Layer Validation Report
============================================================

Status: ✅ PASSED / ❌ FAILED
Quality Score: X/100
Layers Passed: N/17

------------------------------------------------------------
Layer Results:
------------------------------------------------------------

L1-L4: 語法和結構:
  ✅/❌ L1: 基本語法檢查 - [message]
  ✅/❌ L2: AST 結構檢查 - [message]
  ✅/❌ L3: 縮進和格式檢查 - [message]
  ✅/❌ L4: 命名規範檢查 - [message]

L5-L8: 函數簽名:
  ✅/❌ L5: 參數檢查 - [message]
  ✅/❌ L6: 返回值檢查 - [message]
  ✅/❌ L7: 類型提示檢查 - [message]
  ✅/❌ L8: 文檔字符串檢查 - [message]

L9-L12: 依賴關係:
  ✅/❌ L9: 導入檢查 - [message]
  ✅/❌ L10: 標準庫檢查 - [message]
  ✅/❌ L11: 第三方庫檢查 - [message]
  ✅/❌ L12: 循環依賴檢查 - [message]

L13-L17: 類型和邏輯:
  ✅/❌ L13: 類型一致性檢查 - [message]
  ✅/❌ L14: 邏輯完整性檢查 - [message]
  ✅/❌ L15: 錯誤處理檢查 - [message]
  ✅/❌ L16: 安全性檢查 - [message]
  ✅/❌ L17: 性能檢查 - [message]

Suggestions (top 5 failed layers):
  1. [L#] ([name]): [message]
  ...
============================================================

Quality Score Calculation

quality_score = (passed_layers / 17) * 100

Related Skills

Skill Layers 用途
/validate-17-layers L1-L17 完整驗證
/validate-syntax L1-L4 語法和結構
/validate-signature L5-L8 函數簽名
/validate-dependencies L9-L12 依賴關係
/validate-logic L13-L17 類型和邏輯

Part of BlueMouse v6.6 AI Safety Layer

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 103
GitHub Forks 11
Created Jan 2026
Last Updated 4个月前
tools tools automation tools

Related Skills

fabric
chevron_right
specs-gen
chevron_right
typescript-expert
chevron_right
break-loop
chevron_right
burp-suite
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.