代码验证沙箱 code-validation-sandbox

代码验证沙箱是一个智能教学辅助工具,专门用于验证编程教材中的代码示例。它采用4层教学法(手动基础、AI协作、智能设计、编排协调),根据不同的教学层级自动选择验证深度和策略。支持Python、Node.js、Rust等多种编程语言,提供语法检查、运行时验证、输出匹配、性能测试等功能。适用于教育出版、在线课程开发、编程教学材料验证等场景,确保代码示例的准确性和教学效果。 关键词:代码验证、教学辅助、编程教育、Python验证、Node.js测试、Rust检查、4层教学法、智能验证、教育技术、代码质量

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

name: code-validation-sandbox description: | 使用智能策略选择,在4层教学法中验证代码示例。 用于验证书籍章节中的Python/Node/Rust代码。不适用于生产部署测试。 category: validation version: “3.0.0” allowed_tools: [“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次尝试后仍然存在,则停止并报告