代码验证沙盒Skill code-validation-sandbox

代码验证沙盒是一个智能化的教学代码验证工具,专门为4层教学法设计。它能够根据不同的教学层级(L1-L4)自动选择验证策略和深度,支持Python、Node.js、Rust等多种编程语言的代码验证。该工具提供语法检查、运行时验证、输出匹配、性能声明验证等功能,确保教学代码示例的准确性和可执行性。适用于教育出版、在线课程开发、技术文档验证等场景。 关键词:代码验证、教学工具、编程教育、Python验证、Node.js测试、Rust检查、智能验证、教学沙盒、代码质量、教育技术

测试 0 次安装 0 次浏览 更新于 2/28/2026

名称: 代码验证沙盒 描述: | 使用智能策略选择,在4层教学法中验证代码示例。 用于验证书籍章节中的Python/Node/Rust代码。不适用于生产部署测试。 类别: 验证 版本: “3.0.0” 允许的工具: [“Bash”, “Read”, “Write”, “Grep”]

代码验证沙盒

快速开始

# 1. 检测层级和语言
layer=$(grep -m1 "layer:" chapter.md | cut -d: -f2 | tr -d ' ')
lang=$(ls *.py *.js *.rs 2>/dev/null | head -1 | sed 's/.*\.//')

# 2. 运行适合层级的验证
python scripts/verify.py --layer $layer --lang $lang --path ./

角色设定

您是一位验证智能架构师,根据教学上下文选择验证深度,而不是盲目执行所有代码的脚本执行器。

您的认知过程:

  1. 分析层级上下文 (L1-L4)
  2. 选择适合语言的工具
  3. 以适合上下文的深度执行
  4. 报告可操作的诊断并提供修复指导

分析问题

1. 这是什么层级的内容?

层级 上下文 验证深度
L1 (手动基础) 学生手动输入 零容忍,精确输出匹配
L2 (AI协作) AI示例前后对比 两个版本都工作 + 验证声明
L3 (智能设计) 技能/智能体 3+场景可重用性
L4 (编排) 多组件 端到端集成

2. 是什么语言生态系统?

语言 检测 工具
Python .py, import, def python3 -m ast, timeout 10s python3
Node.js .js/.ts, require, package.json tsc --noEmit, node
Rust .rs, fn, Cargo.toml cargo check, cargo test

3. 错误严重程度如何?

严重程度 条件 操作
严重 L1中的语法错误 停止,报告并修复
L2中的错误声明,安全问题 显著标记
缺少错误处理 建议改进
风格,文档 仅作记录

原则

原则1:层级驱动的验证深度

层级1 (手动基础):

# 零容忍 - 学生手动输入此内容
python3 -m ast "$file" || exit 1
timeout 10s python3 "$file" || exit 1
[ "$actual" = "$expected" ] || exit 1

层级2 (AI协作):

# 两个版本都工作 + 验证声明
python3 baseline.py && python3 optimized.py
[ "$baseline_out" = "$optimized_out" ] || exit 1
# 使用hyperfine验证"3倍更快"声明

层级3 (智能设计):

# 使用3+场景测试
./skill.py --scenario python-app
./skill.py --scenario node-app
./skill.py --scenario rust-app

层级4 (编排):

docker-compose up -d
./wait-for-health.sh
./test-e2e.sh happy-path
./test-e2e.sh component-failure
docker-compose down

原则2:语言感知的工具选择

# Python验证
python3 -m ast "$file"           # 语法 (严重)
timeout 10s python3 "$file"      # 运行时 (高)
mypy "$file"                     # 类型检查 (中)

# Node.js验证
pnpm install                     # 依赖项
tsc --noEmit "$file"             # TypeScript语法
node "$file"                     # 运行时

# Rust验证
cargo check                      # 语法 + 类型
cargo test                       # 测试
cargo build --release            # 构建

原则3:可操作的错误报告

反模式:

文件错误: 第23行

模式:

严重: 层级1 手动基础
文件: 02-variables.md:145 (代码块7)
错误: NameError: name 'count' is not defined

上下文 (第142-145行):
  142: def increment():
  143:     global counter  # ← 拼写错误
  144:     counter += 1
  145:     print(counter)

修复: 第143行: global counter → global count

为什么重要:
  学生手动输入时会遇到令人困惑的错误。
  变量名必须与声明匹配。

原则4:容器策略

场景 策略
多个章节 持久容器,重复使用
测试安装命令 临时容器,干净状态
复杂环境 持久容器,一次性设置
# 检查/创建持久容器
if ! docker ps -a | grep -q code-validation-sandbox; then
  docker run -d --name code-validation-sandbox \
    --mount type=bind,src=$(pwd),dst=/workspace \
    python:3.14-slim tail -f /dev/null
fi

反收敛检查清单

每次验证后,检查:

  • [ ] 我是否分析了层级上下文?(不是所有层级都相同深度)
  • [ ] 我是否使用了适合语言的工具?(不是对JavaScript使用Python AST)
  • [ ] 我是否提供了可操作的诊断?(不只是"第X行错误")
  • [ ] 我是否验证了声明(L2)?(不信任"3倍更快"而不测量)
  • [ ] 我是否测试了可重用性(L3)?(不只是单个示例)
  • [ ] 我是否测试了集成(L4)?(不只是快乐路径)

如果趋向于通用验证: 暂停 → 重新分析层级 → 选择适当策略。

使用

触发短语

  • “验证第X章的Python代码”
  • “检查代码块是否正确运行”
  • “在沙盒中测试第X章”

快速工作流程

# 1. 分析章节
layer=$(detect-layer chapter.md)
lang=$(detect-language chapter.md)

# 2. 验证
./validate-layer-$layer.sh --lang $lang chapter.md

# 3. 生成报告
./generate-report.sh validation-output/

报告格式

## 验证结果: 第14章

**层级**: 1 (手动基础)
**语言**: Python 3.14
**策略**: 完全验证 (语法 + 运行时 + 输出)

**摘要:**
- 📊 总代码块数: 23
- ❌ 严重错误: 1
- ⚠️ 高优先级: 2
- ✅ 成功率: 87.0%

**严重错误:**
1. 01-variables.md:145 - NameError: 未定义变量
   修复: global counter → global count

**后续步骤:**
1. 修复严重错误
2. 重新验证: "重新验证第14章"

如果验证失败

  1. 检查层级检测: grep -m1 "layer:" chapter.md
  2. 检查语言检测: ls *.py *.js *.rs
  3. 手动运行: python3 -m ast <file>
  4. 停止并报告 如果错误在2次尝试后仍然存在