Skip to content

Kaben123/ai-safety-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demo Safety Project

一个包含 MISRA C 违规的传感器驱动示例项目,用于演示 AI Safety Skills 的使用。

项目结构

demo-safety-project/
├── src/
│   ├── main.c          # 主程序
│   ├── sensor.c        # 传感器驱动(包含多个 MISRA 违规)
│   └── sensor.h        # 传感器接口
├── .claude/
│   └── skills/         # AI Safety Skills
│       ├── misra-review/
│       └── code-analysis/
├── Makefile
└── README.md

构建

make
./sensor_demo

使用 AI Safety Skills

1. 在 Kiro CLI 中使用

注意: Kiro CLI 使用自然语言触发 skills,不支持斜杠命令。

MISRA 代码审查

kiro-cli chat
> MISRA 检查 src/sensor.c

# 检查整个目录
> MISRA 检查 src/

# 其他触发方式
> 审查 C 代码规范 src/sensor.c
> 检查 MISRA 合规性 src/

代码分析

kiro-cli chat
> 分析一下 src/sensor.c 的功能和工作原理

# 其他触发方式
> 分析 src/ 目录的代码结构
> 扫描 src/sensor.c 的潜在问题

2. 在 GitHub Copilot (VS Code) 中使用

方法 1: 自然语言触发

在 VS Code 中打开 Copilot Chat,直接输入:

MISRA 检查 src/sensor.c

分析一下这个传感器驱动模块

Copilot 会根据 skill 的 description 自动识别并使用对应的 skill。

方法 2: 斜杠命令(仅 Copilot 支持)

/misra-review src/sensor.c
/code-analysis src/

方法 3: 查看可用 skills

在 Copilot Chat 中输入:

What skills do you have?

或使用命令面板(Ctrl+Shift+P)搜索 "Copilot: Show Skills"。

3. 技巧和最佳实践

MISRA 审查工作流

  1. 初次扫描

    MISRA 检查 src/sensor.c
    
  2. 查看报告,选择要修复的违规项

    请修复编号 1,3,5
    
  3. 自动重新扫描,确认修复效果

  4. 继续修复直到满意

代码分析工作流

  1. 基础分析

    分析 src/sensor.c
    
  2. 深度扫描(根据提示选择)

    • 选项 1: 扫描潜在 bug
    • 选项 2: 扫描性能优化点
    • 选项 3: 扫描关联模块
  3. 修复问题

    请修复 bug 扫描中的编号 1,2
    

示例对话

示例 1: MISRA 审查

User: MISRA 检查 src/sensor.c

AI: [执行扫描...]

## MISRA C:2012 扫描报告

文件: src/sensor.c

### 汇总
- Mandatory: 0 项 | Required: 8 项 | Advisory: 2 项
- 合规率: 75.3%

### 违规详情

| # | 行号 | 规则 | 级别 | 描述 | 代码片段 |
|---|------|------|------|------|----------|
| 1 | 15 | 14.4 | Required | 条件非布尔类型 | `if (data)` |
| 2 | 32 | 14.4 | Required | 条件非布尔类型 | `if (sensor_count < MAX_SENSORS)` |
...

请输入要修复的编号(逗号分隔),或 'all' 修复全部:

User: 1,2,3

AI: [执行修复...]
已修复 3 项违规。重新扫描中...

示例 2: 代码分析

User: 分析一下 src/sensor.c 的功能

AI: [执行分析...]

# 代码分析报告: src/sensor.c

## 1. 概述
- 模块名称: 传感器驱动
- 所属层级: 驱动层
- 核心职责: 管理传感器注册、数据读写和处理

## 2. 对外接口
| 函数 | 功能 | 参数说明 | 返回值 |
|------|------|----------|--------|
| sensor_init | 初始化传感器系统 | 无 | 0=成功 |
| sensor_register | 注册新传感器 | name, type | 传感器ID或-1 |
...

是否需要进一步扫描?
1. 扫描潜在 bug 和风险点
2. 扫描性能优化点
...

已知的 MISRA 违规

此项目故意包含以下违规,用于演示:

  • Rule 14.4: 条件表达式非布尔类型
  • Rule 17.7: 未使用函数返回值
  • Rule 15.5: 多个返回点
  • Rule 10.1/10.3: 隐式类型转换
  • 危险函数: strcpy
  • 未检查指针和数组边界

清理

make clean

About

🛡️ A sensor driver demo with intentional MISRA C violations for demonstrating AI-powered code safety review and analysis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors