b-macker/NAAb
GitHub: b-macker/NAAb
一个内置 AI 代码治理机制的多语言编程语言,通过 govern.json 配置在执行前拦截 AI 生成的幻觉 API、存根代码和安全漏洞。
Stars: 1 | Forks: 0
# NAAb — 内置 AI 治理的编程语言
[](https://github.com/b-macker/NAAb/actions/workflows/ci.yml)
[](https://github.com/b-macker/NAAb/actions/workflows/sanitizers.yml)
[](https://github.com/b-macker/NAAb/actions/workflows/codeql.yml)
[](https://opensource.org/licenses/MIT)
[](CONTRIBUTING.md)
[](https://github.com/b-macker/NAAb/discussions)
**在语言层面治理 AI 生成的代码。** NAAb 是一种多语言编程语言,它将代码质量、安全性和正确性作为运行时约束强制执行——而非仅仅是建议。只需一个 `govern.json` 文件即可在一个文件中控制 12 种语言的执行行为。
```
// govern.json — catches AI hallucinations before they execute
{
"version": "3.0",
"mode": "enforce",
"code_quality": {
"no_hallucinated_apis": { "level": "hard" },
"no_oversimplification": { "level": "hard" },
"no_incomplete_logic": { "level": "soft" }
}
}
```
```
$ naab-lang app.naab
Error: Hallucinated API in python block:
".push()" is not valid Python [HARD]
Rule: code_quality.no_hallucinated_apis
Help:
.push() is JavaScript — in Python, use .append()
✗ Wrong: my_list.push(item)
✓ Right: my_list.append(item)
```
## 问题所在:AI 代码漂移
AI 模型生成的代码看起来正确,但实际上并非如此。每次会话都是全新的——对你的安全规则、命名约定或架构决策毫无记忆:
- **幻觉 API** — Python 中的 `.push()`,JavaScript 中的 `print()`,使用 `json.stringify()` 而非 `json.dumps()`
- **以“完整”名义发布的存根** — `def validate(): return True`,仅有 `pass` 或 `NotImplementedError` 的函数
- **被绕过的安全模式** — 硬编码密钥、SQL 注入、`except: pass` 吞掉错误
- **语言误用** — Python 用于繁重计算,JavaScript 用于文件操作,Shell 用于复杂逻辑
提示词只是建议。**`govern.json` 才是强制执行。** NAAb 在执行前会根据你的策略检查每一个多语言块——在这里无法被绕过。
## 概览
| 能力 | 详情 |
|---|---|
| **治理引擎** | 50+ 项检查,3 级强制执行(hard / soft / advisory),`govern.json` 配置 |
| **多语言执行** | 单文件支持 12 种语言 — Python, JavaScript, Rust, C++, Go, C#, Ruby, PHP, Shell, Nim, Zig, Julia |
| **智能错误信息** | 通过 Levenshtein 距离提供“你是否指的是?”建议,附带示例的详细修复方案 |
| **标准库** | 13 个模块 — array, string, math, json, http, file, time, debug, env, csv, regex, crypto, bolo |
| **语言特性** | 模式匹配, async/await, lambdas, 闭包, 管道操作符, if 表达式 |
| **CI/CD 集成** | SARIF (GitHub Code Scanning), JUnit XML (Jenkins/GitLab), JSON 报告 |
| **项目上下文** | 自动读取 CLAUDE.md, .editorconfig, .eslintrc, package.json 以补充治理规则 |
| **开发者工具** | REPL, LLM 友好语法(关键字别名,可选分号),204 条错误信息 |
## 快速开始
```
# Clone 和 build
git clone --recursive https://github.com/b-macker/NAAb.git
cd NAAb
mkdir build && cd build
cmake .. -G Ninja
ninja naab-lang -j$(nproc)
# Run 一个 file
./naab-lang hello.naab
```
### Hello World
```
main {
let name = "World"
print("Hello, " + name + "!")
}
```
## 治理引擎
NAAb 的治理引擎是其独特之处。在项目根目录下放置一个 `govern.json`,每个多语言代码块在执行前都会被检查。
### 它能捕捉什么
| 类别 | 示例 | 模式 |
|---|---|---|
| **幻觉 API** | Python 中的 `.push()`,JS 中的 `print()`,JS 中的 `len()` | 86+ 种跨语言模式 |
| **过度简化** | `def validate(): return True`,仅含 `pass` 的函数体,恒等函数 | 35+ 种存根模式 |
| **不完整逻辑** | `except: pass`,裸 raise,`"something went wrong"` 消息 | 40+ 种模式 |
| **安全性** | SQL 注入,路径遍历,Shell 注入,硬编码密钥 | 基于熵的检测 |
| **代码质量** | TODO/FIXME,调试残留,Mock 数据,硬编码 URL/IP | 死代码检测 |
| **PII 泄露** | SSN 模式,信用卡号,字符串中的 API Key | 正则 + 熵 |
### 三种强制执行级别
- **HARD** — 阻止执行。代码不会运行。不可覆盖。
- **SOFT** — 阻止执行。除非传递 `--governance-override`,否则代码不会运行。
- **ADVISORY** — 警告并继续。记录在审计追踪中。
### govern.json 示例
```
{
"version": "3.0",
"mode": "enforce",
"languages": {
"allowed": ["python", "javascript", "go"],
"blocked": ["php"]
},
"code_quality": {
"no_secrets": { "level": "hard" },
"no_sql_injection": { "level": "hard" },
"no_oversimplification": { "level": "hard" },
"no_incomplete_logic": { "level": "soft" },
"no_hallucinated_apis": { "level": "soft" }
},
"restrictions": {
"no_eval": { "level": "hard" },
"no_shell_injection": { "level": "hard" }
},
"limits": {
"max_lines_per_block": 200,
"timeout_seconds": 30
}
}
```
### 项目上下文感知
NAAb 可以读取你现有的项目配置文件并补充治理规则——而不会覆盖 `govern.json`:
- **Layer 1:** LLM 指令文件 — `CLAUDE.md`, `.cursorrules`, `AGENTS.md`
- **Layer 2:** Linter 配置 — `.eslintrc`, `.flake8`, `pyproject.toml`
- **Layer 3:** 项目清单 — `package.json`, `Cargo.toml`, `go.mod`
每一层都是可选择启用且可切换的。
### 自定义规则
定义你自己的基于正则表达式的治理规则:
```
{
"custom_rules": [
{
"name": "no_print_debugging",
"pattern": "console\\.log|print\\(.*debug",
"message": "Remove debug print statements before committing",
"level": "soft"
}
]
}
```
### CI/CD 集成
```
# GitHub Code Scanning (SARIF)
naab-lang app.naab --governance-report sarif > results.sarif
# Jenkins / GitLab CI (JUnit XML)
naab-lang app.naab --governance-report junit > results.xml
# Custom tooling (JSON)
naab-lang app.naab --governance-report json > results.json
```
## 多语言执行
在每种语言最擅长的领域使用它——Python 用于数据科学,Rust 用于性能,JavaScript 用于 Web,Go 用于并发,Shell 用于文件操作。变量在语言之间自动流转。无需 FFI,无需序列化,无需微服务。
**支持的语言:** Python · JavaScript · Rust · C++ · Go · C# · Ruby · PHP · Shell · Nim · Zig · Julia
```
main {
let numbers = [10, 20, 30, 40, 50]
// Python: statistical analysis
let stats = <>
// JavaScript: format as HTML
let html = <${data}
`;
>>
print(stats)
print(html)
}
```
### 关键多语言特性
- **变量绑定** — 使用 `<