Agent skill · Audited from source
gcc
skill · zhinkgit/embeddedskillsMIT licenceAudited 21 Oct 2026 · source 674ae8bca880
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 674ae8bca880 and observed filesystem access and no hard-coded secrets. What it does: GCC 嵌入式工程构建工具(CMake + arm-none-eabi-gcc),用于扫描 CMake 型嵌入式工程、 列出预设、配置、编译、重建、清理和分析 ELF 大小。当用户提到 GCC、arm-none-eabi、 CMake 嵌入式编译、Ninja 构建、ELF 大小分析、arm-gcc、交叉编译、cmake --build、 cmake --preset 时自动触发,也兼容 /gcc 显式调用。即使用户只是说"编译一下"或…
Cite
Cite this page
ModelsAtlas. “gcc (zhinkgit/embeddedskills)”. Retrieved 21 Oct 2026. https://modelsatlas.com/skills/zhinkgit/gcc
Trust audit
Audit 0.4.1 · source read 21 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemUndeclared1 observation, not in its own description
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | WARN | 1 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (1)
MEDIUMFilesystem / pathfs.destructive · scripts/gcc_build.py:337
shutil.rmtree(str(build_dir))
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 674ae8bca880 · 21 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherzhinkgit GitHub userOwner of the repository this skill is read from
- Source folderzhinkgit/embeddedskills/gccThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict674ae8bca880A new audit runs when the source changes
- Repository statusNot archivedLast push 1 day ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: GCC 嵌入式工程构建工具(CMake + arm-none-eabi-gcc),用于扫描 CMake 型嵌入式工程、 列出预设、配置、编译、重建、清理和分析 ELF 大小。当用户提到 GCC、arm-none-eabi、 CMake 嵌入式编译、Ninja 构建、ELF 大小分析、arm-gcc、交叉编译、cmake --build、 cmake --preset 时自动触发,也兼容 /gcc 显式调用。即使用户只是说"编译一下"或…
---
name: gcc
description: >-
GCC 嵌入式工程构建工具(CMake + arm-none-eabi-gcc),用于扫描 CMake 型嵌入式工程、
列出预设、配置、编译、重建、清理和分析 ELF 大小。当用户提到 GCC、arm-none-eabi、
CMake 嵌入式编译、Ninja 构建、ELF 大小分析、arm-gcc、交叉编译、cmake --build、
cmake --preset 时自动触发,也兼容 /gcc 显式调用。即使用户只是说"编译一下"或
"看看固件多大",只要上下文涉及 CMake 嵌入式 GCC 工程就应触发此 skill。
argument-hint: "[scan|presets|configure|build|rebuild|clean|size] ..."
---
# GCC 嵌入式工程构建
本 skill 提供基于 CMake + arm-none-eabi-gcc 的嵌入式工程发现、preset 枚举、配置生成、增量编译、全量重建、清理和 ELF 大小分析能力。
范围说明:当前仅支持 **CMake 型** GCC 嵌入式工程,不覆盖纯 `Makefile` 工程。
## 配置
### 环境级配置(skill/config.json)
skill 目录下的 `config.json` 包含环境级配置,首次使用前确认 `cmake_exe` 路径正确:
```json
{
"cmake_exe": "cmake",
"toolchain_prefix": "arm-none-eabi-",
"toolchain_path": "",
"operation_mode": 1
}
```
- `cmake_exe`:cmake 可执行文件路径,默认从 PATH 查找
- `toolchain_prefix`:工具链前缀,默认 `arm-none-eabi-`,用于定位 size 等工具
- `toolchain_path`:工具链 bin 目录,为空时从 PATH 查找
- `operation_mode`:`1` 直接执行 / `2` 输出风险摘要但不阻塞 / `3` 执行前确认
### 工程级配置(workspace/.embeddedskills/config.json)
工程级共享配置统一保存在工作区的 `.embeddedskills/config.json` 中:
```json
{
"gcc": {
"project": "",
"preset": "",
"log_dir": ".embeddedskills/build"
}
}
```
- `project`:默认工程路径(相对 workspace),构建成功后会自动更新
- `preset`:默认 CMake preset 名称,构建成功后会自动更新
- `log_dir`:构建日志输出目录,默认 `.embeddedskills/build`
### 参数解析优先级
参数解析顺序(从高到低):
1. CLI 显式参数
2. 环境级配置(skill/config.json)
3. 工程级配置(.embeddedskills/config.json)
4. state.json(上次构建记录)
5. 搜索/询问
冲突解决规则:同一参数存在多个来源时,以序号最小的来源为准;高序号来源仅在低序号来源未提供该参数时生效。例如:CLI 已指定 `--preset Debug`,则忽略 state.json 中记录的上次 preset。
## 子命令
| 子命令 | 用途 | 风险 |
|--------|------|------|
| `scan` | 搜索当前目录下的 CMake 嵌入式工程 | 低 |
| `presets` | 列出 CMakePresets.json 中的 configure/build preset | 低 |
| `configure` | 执行 `cmake --preset` 生成构建系统 | 中 |
| `build` | 增量编译 `cmake --build` | 中 |
| `rebuild` | 清理后全量重建 | 中 |
| `clean` | 清理构建目录 | 高 |
| `size` | 分析 ELF 文件大小(text/data/bss 和内存使用) | 低 |
## 执行流程
1. 读取 `config.json`,确认 `cmake_exe` 路径有效
2. 未提供有效子命令时默认执行 `scan`
3. 未提供工程路径时先执行 `scan` 搜索工程
4. 发现多个工程或多个 preset 时列出选项让用户选择,绝不自动猜测
5. `configure/build/rebuild/clean` 按 `operation_mode` 决定是否需要确认
6. `build` 前自动检测是否已 configure,未配置时提示先执行 configure
7. `build/rebuild` 成功后返回 `elf_file`,供 `jlink/openocd` 继续使用
8. `size` 默认分析最近一次构建产物的 .elf 文件
## 脚本调用
skill 目录下有三个 Python 脚本,使用标准库实现,无额外依赖。
### gcc_project.py — 工程扫描与 preset 枚举
```bash
# 扫描工程
python <skill-dir>/scripts/gcc_project.py scan --root <搜索目录> --json
# 列出 preset
python <skill-dir>/scripts/gcc_project.py presets --project <工程目录> --json
```
### gcc_build.py — 配置 / 编译 / 重建 / 清理
```bash
python <skill-dir>/scripts/gcc_build.py <configure|build|rebuild|clean> \
--cmake <cmake路径> \
--project <工程根目录> \
--preset <preset名称> \
--log-dir <日志目录> \
--json
```
### gcc_size.py — ELF 大小分析
```bash
# 基本分析
python <skill-dir>/scripts/gcc_size.py analyze \
--elf <elf文件路径> \
--toolchain-prefix arm-none-eabi- \
--linker-script <链接脚本路径> \
--json
# 对比分析
python <skill-dir>/scripts/gcc_size.py compare \
--elf <elf文件1> \
--compare <elf文件2> \
--toolchain-prefix arm-none-eabi- \
--json
```
## 输出格式
所有脚本以 JSON 格式返回,基础字段为 `status`(ok/error)、`action`、`summary`、`details`,并可能附带 `context`、`artifacts`、`metrics`、`state`、`next_actions`、`timing`。
成功示例:
```json
{
"status": "ok",
"action": "build",
"summary": "build 成功,errors=0 warnings=2",
"details": { "project": "...", "preset": "Debug", "build_dir": "...", "elf_file": "...", "log_file": "..." },
"metrics": { "errors": 0, "warnings": 2, "flash_bytes": 99328, "ram_bytes": 46080 }
}
```
错误示例:
```json
{
"status": "error",
"action": "build",
"error": { "code": "not_configured", "message": "构建目录不存在,请先执行 configure" }
}
```
## 核心规则
- 不修改 CMakeLists.txt 或任何 CMake 配置文件
- 当前 skill 仅覆盖 CMake 型 GCC 工程,不对纯 Makefile 工程做识别和构建
- 不自动猜测工程路径或 preset,有歧义时必须询问用户
- 参数解析优先级为:CLI 显式参数 > 环境级配置 > 工程级配置 > `.embeddedskills/state.json` > 搜索/询问
- `clean` 不在自动流程中隐式执行
- 构建失败时优先展示首个错误和日志文件路径
- 结果回显中始终包含工程名、preset 名、构建目录路径;构建成功时优先回显 `elf_file`Excerpt, first 3,969 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 674ae8b
git clone https://github.com/zhinkgit/embeddedskills git -C embeddedskills checkout 674ae8bca880
The author documents no install command, so this uses the repository directly. Our verdict covers commit 674ae8bca880 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
674ae8bca880
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/zhinkgit/gcc/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
All automation skills →zhinkgit/embeddedskills
embeddedskills 的薄编排层,用于在当前 workspace 中发现工程、选择 build/flash/debug/observe 后端、串联 .embeddedskills/state.json,并聚合底层 skill 的结果。 当用户明确输入以下命令之一:"一键构建烧录"、"自动诊断"、"串起 build -> flash -> debug -> observe" 或显式调用 /workflow 时触发。
zhinkgit/embeddedskills
嵌入式串口调试工具,用于扫描串口、实时监控、发送数据、记录日志和 Hex 查看。 当用户提到串口、COM 口、UART、AT 命令调试、波特率、Hex 串流、串口抓日志、 串口监控、查看 MCU 输出、二进制协议联调时自动触发,也兼容 /serial 显式调用。 即使用户只是说"看看串口输出"、"发个 AT 命令"或"抓一下日志",只要上下文涉及 串口通信就应触发此 skill。
zhinkgit/embeddedskills
SSH/服务器操作助手。用于远程服务器、user@host、SSH 配置、上传下载、部署、跳板机、隧道、端口转发、服务器命令执行等任务;以 ~/.ssh/config 的 Host 别名为唯一服务器清单,优先密钥认证,通过本 skill 的 Python 脚本封装 OpenSSH 操作。
zhinkgit/embeddedskills
双向交互终端会话工具,用于串口终端、SSH 交互 Shell、本地 Shell、设备控制台、AT/CLI 菜单、需要保持上下文的交互式调试;当用户提到交互终端、串口终端、SSH 终端、打开 shell、发送命令后继续读输出、保持会话、登录后操作、菜单式命令行时触发,也兼容 /terminal 显式调用。
zhinkgit/embeddedskills
probe-rs 下载与调试工具,用于探针发现、固件烧录、复位、内存读写、GDB Server 调试和 RTT 日志读取。 当用户提到 probe-rs、cargo-embed、DAP、RTT、CMSIS-DAP、ST-Link、J-Link、烧录、芯片信息、 连接 under reset、probe 选择器、probe-rs gdb、probe-rs attach 时自动触发,也兼容 /probe-rs 显式调用。…
zhinkgit/embeddedskills
OpenOCD 下载与调试工具,用于探针探测、固件烧录、Flash 擦除、GDB Server 启动、目标复位控制、 Telnet 在线调试(halt/resume/step/寄存器/内存/断点)、GDB 源码级调试,以及 Semihosting/ITM 输出捕获和底层查询。 当用户提到 OpenOCD、ST-Link、CMSIS-DAP、DAPLink、FTDI、烧录固件、擦除 Flash、GDB Server、…
Add this badge to your README
[](https://modelsatlas.com/skills/zhinkgit/gcc/)
<a href="https://modelsatlas.com/skills/zhinkgit/gcc/"><img src="https://modelsatlas.com/skills/zhinkgit/gcc/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about gcc
What does the gcc skill do?
Is gcc safe to install?
What can gcc access on my machine?
Which assistants does gcc work with?
How current is this page?
Sources
- github.com/zhinkgit/embeddedskills/tree/main/gcc — the audited source at commit 674ae8bca880 and every finding aboveObserved · 21 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the gcc skill do?
- Is gcc safe to install?
- What can gcc access on my machine?