Embedded Code Skill
Generate, rewrite, or review embedded C code. Use when creating/rewriting/reviewing embedded C for microcontrollers, drivers, firmware. Triggers automaticall... Skill: Embedded Code Skill Owner: leon-2050 Summary: Generate, rewrite, or review embedded C code. Use when creating/rewriting/reviewing embedded C for microcontrollers, drivers, firmware. Triggers automaticall... Tags: c:0.0.2, driver:0.0.2, embedded:0.0.2, latest:0.0.2, riscy:0.0.2, stm32:0.0.2 Version history: v0.0.2 | 2026-04-17T14:43:09.002Z | auto - Added comprehensive coding guidelines for embedded C, focusing
Rank
62
Safety
84
Downloads
983
Updated
Oct 11, 2026
Version
0.0.2
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 983 downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 983 downloadsadoption · observed Oct 11, 2026
- Latest release
- 0.0.2release · observed Apr 17, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 0.0.2release
- Added comprehensive coding guidelines for embedded C, focusing on production-quality code for platforms like STM32, PowerPC, RISC-V. - Defined detailed naming, type, struct, and error-handling conventions for all generated, rewritten, or reviewed code. - Specified mandatory use of separate reg.h files with structured register definitions and macros—no magic numbers, no scattered register addresses. - Outlined modes for code generation, rewriting (with strict preservation of original logic), and review, each with explicit multi-step workflows. - Included a PDCA (Plan-Do-Check-Act) workflow and a detailed checklist to ensure all outputs meet the standard. - Added common mistakes with clear before/after examples to guide correct implementation.
Observed Apr 17, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s17c4haqz1k9qa4jpe3axa55x9850se6:embedded-code-skill- Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-leon-2050-embedded-code-skill/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
37,293 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
embedded-code-skill-arch/SKILL.md
---
name: embed-code-arch
description: Architecture patterns for ARM Cortex-M, ARM Cortex-A, PowerPC, SPARC V8, RISC-V. Memory barriers, interrupt handling, register access.
---
# Architecture Patterns
## ARM Cortex-M (MCU)
```c
/* NVIC */
#define NVIC_BASE 0xE000E100U
#define NVIC_ISER(n) (*(volatile uint32_t *)(NVIC_BASE + (n) * 4U))
#define NVIC_ENABLE_IRQ(irq) do { NVIC_ISER((irq) >> 5) = (1U << ((irq) & 0x1F)); } while(0)
/* Memory barriers */
__DMB(); __DSB(); __ISB();
/* ISR */
void __attribute__((interrupt)) TIM2_IRQHandler(void) {
volatile uint32_t *irq_flag = (uint32_t *)(TIM2_BASE + FLAG_OFFSET);
*irq_flag = 0U;
g_ticks++;
__DSB();
}
```
## ARM Cortex-A (SoC)
```c
/* GIC */
#define GICD_BASE 0x1E001000U
#define GICC_BASE 0x1E000000U
/* SMP barrier */
__asm volatile ("dmb ish" ::: "memory");
/* Cache */
__asm volatile ("ic iallu" ::: "memory");
```
## PowerPC (SoC)
```c
/* SPR access */
static inline uint32_t mfspr(uint16_t spr) {
uint32_t val;
__asm volatile ("mfspr %0, %1" : "=r"(val) : "K"(spr));
return val;
}
/* Barrier */
__asm volatile ("msync");
```
## SPARC V8 (Leon3)
```c
/* PSR */
static inline uint32_t sparc_get_psr(void) {
uint32_t psr;
__asm volatile ("rd %%psr, %0" : "=r"(psr));
return psr;
}
/* Barrier */
__asm volatile ("stbar");
```
## RISC-V
```c
/* CSR */
#define CSR_MSTATUS 0x300
#define CSR_MIE 0x304
static inline uint32_t csrr(uint32_t csr) {
uint32_t val;
__asm volatile ("csrr %0, %1" : "=r"(val) : "K"(csr));
return val;
}
/* Barrier */
__asm volatile ("fence" ::: "memory");
```
## Quick Ref
| Arch | Barrier | Interrupt | SPR/CSR |
|------|---------|-----------|---------|
| Cortex-M | `__DMB()` | NVIC | N/A |
| Cortex-A | `dmb ish` | GIC | N/A |
| PowerPC | `msync` | PIC | `mfspr` |
| SPARC V8 | `stbar` | INTC | `rd psr` |
| RISC-V | `fence` | PLIC | `csrr` |
## 未知架构处理
如果用户提到的架构不在上述列表中:
### 处理步骤
1. **先尝试推断**: 根据用户描述推断架构类型
2. **尝试网上搜索**: 如果是未知架构,使用WebSearch/WebFetch搜索该架构的基础信息
3. **使用通用模式**: 如果无法找到信息,使用通用嵌入式C模式
4. **与用户沟通**: 把学到的架构信息反馈给用户,确认理解是否正确
### 网上搜索流程
当遇到未知架构时:
```
1. 使用 WebSearch 搜索: "<架构名> embedded C programming"
2. 使用 WebSearch 搜索: "<架构名> register map memory"
3. 使用 WebFetch 获取该架构的官方文档或芯片手册摘要
4. 分析搜索结果,提取:
- 寄存器访问模式
- 中断处理方式
- 内存屏障指令
- 工具链信息
5. 把学到的信息反馈给用户确认
```
### 搜索示例
| 用户提到 | 搜索关键词 |
|----------|-----------|
| MIPS | "MIPS embedded C interrupt controller" |
| ARC | "ARC EM or ARC HS interrupt handling" |
| Tensilica | "Tensilica Xtensa register access" |
| Andes | "Andes RISC-V interrupt" |
### 与用户沟通格式
```markdown
🤖 **已搜索并学习该架构**
根据搜索结果,我了解到该架构的一些基础信息:
| 特性 | 信息 |
|------|------|
| 内存屏障 | 搜索到的指令 |
| 中断方式 | 搜索到的信息 |
| 寄存器访问 | 搜索到的模式 |
**请确认以下理解是否正确:**
1. ...
2. ...
如果信息有误,请纠正或提供正确的信息。
```
### 通用模式 (所有架构可用)
```c
/* 通用寄存器定义 - 架构无关 */
#define REG32(base, offset) (*(volatile uint32_t *)((base) + (offset)))
/* 通用内存屏障 - 编译器级别 */
#define MEMORY_BARRIER() __asm volatile("" ::: "memory")
/* 通用中断使能宏embedded-code-skill-domains/SKILL.md
--- name: embed-code-domains description: Industry domain requirements. Aerospace (DO-178C), Military (MIL-STD), Industrial (IEC 61508), Automotive (ISO 26262). --- # Industry Domain Requirements ## Detection | Domain | Keywords | |--------|----------| | Aerospace | DO-178C, DAL, ARINC, flight | | Military | 1553B, SpaceWire, MIL-STD, radar | | Industrial | IEC 61508, SIL, PLC, SCADA | | Automotive | ISO 26262, ASIL, CANFD | --- ## Aerospace (DO-178C) **DAL Levels**: A (MC/DC 100%), B (MC/DC 100%), C (Statement/Branch) ```c /** * @file navigation.c * @brief Navigation processing * * ### Safety Level: DAL-B ### * - DO-178C compliance * - MC/DC coverage required * * ### Software Level Database ### * - Req ID: NAV-001 */ ``` **Requirements**: - No dynamic allocation - Deterministic behavior - No recursion - Complexity < 10 --- ## Military (MIL-STD-1553B) ```c /** * @file missile_ctrl.c * @brief Missile guidance control * * ### Standards ### * - MIL-STD-1553B * - SEU protection required * - BIT coverage > 95% */ ``` **Requirements**: - Hardware redundancy - SEU protection - BIT diagnostics --- ## Industrial (IEC 61508) **SIL Levels**: 1, 2, 3, 4 ```c /** * @file plc_comm.c * @brief PLC communication * * ### IEC 61508 SIL-2 ### * - Safe state on failure * - Diagnostic coverage > 90% */ ``` **Requirements**: - Safe state defined - Watchdog supervision - Deterministic response --- ## Automotive (ISO 26262) **ASIL Levels**: A, B, C, D ```c /** * @file abs_controller.c * @brief ABS control * * ### ASIL-B ### * - ISO 26262 Part 2-6 * - SPFM > 90%, LFM > 60% */ ``` **Requirements**: - ASIL decomposition - Hardware fault tolerance - Freedom from interference --- ## Default (General Embedded) ```c /** * @file sensor_driver.c * @brief Temperature sensor driver * * ### Architecture ### ARM Cortex-M4 * ### Domain ### General Embedded */ ``` No special safety requirements. --- ## Quick Ref | Domain | Standard | Level | Key | |--------|----------|-------|-----| | Aerospace | DO-178C | DAL-A/B/C | MC/DC | | Military | MIL-STD-1553B | - | SEU | | Industrial | IEC 61508 | SIL-1-4 | Safe state | | Automotive | ISO 26262 | ASIL-A/B | SPFM/LFM |
embedded-code-skill-drivers/SKILL.md
---
name: embed-code-drivers
description: Peripheral driver templates. UART, SPI, I2C, DMA, CAN, CANFD, PWM, Ethernet, 1553B, SpaceWire, SDIO, Timer, WDT, GPIO.
---
# Driver Templates
## UART
```c
#define UART_DR(base) (*(volatile uint32_t *)((base) + 0x00U))
#define UART_CR(base) (*(volatile uint32_t *)((base) + 0x30U))
#define UART_FR(base) (*(volatile uint32_t *)((base) + 0x18U))
typedef struct {
uint32_t base_address;
uint32_t baud_rate;
} uart_config_t;
typedef struct {
bool initialized;
uint8_t rx_buf[256];
uint16_t rx_head;
uint16_t rx_tail;
} uart_handle_t;
```
## SPI
```c
#define SPI_CR1(base) (*(volatile uint32_t *)((base) + 0x00U))
#define SPI_SR(base) (*(volatile uint32_t *)((base) + 0x08U))
#define SPI_DR(base) (*(volatile uint32_t *)((base) + 0x0CU))
typedef struct {
uint32_t base_address;
uint32_t clock_hz;
bool master_mode;
} spi_config_t;
```
## I2C
```c
#define I2C_CR1(base) (*(volatile uint32_t *)((base) + 0x00U))
#define I2C_DR(base) (*(volatile uint32_t *)((base) + 0x10U))
#define I2C_SR1(base) (*(volatile uint32_t *)((base) + 0x14U))
```
## DMA
```c
#define DMA_CCR(base,ch) (*(volatile uint32_t *)((base) + 0x08U + (ch) * 0x14U))
#define DMA_CPAR(base,ch) (*(volatile uint32_t *)((base) + 0x10U + (ch) * 0x14U))
#define DMA_CMAR(base,ch) (*(volatile uint32_t *)((base) + 0x14U + (ch) * 0x14U))
```
## CAN
```c
#define CAN_MCR(base) (*(volatile uint32_t *)((base) + 0x00U))
#define CAN_TSR(base) (*(volatile uint32_t *)((base) + 0x08U))
#define CAN_BTR(base) (*(volatile uint32_t *)((base) + 0x1CU))
typedef struct {
uint32_t id;
uint8_t dlc;
uint8_t data[64];
} can_msg_t;
```
## GPIO
```c
#define GPIO_MODER(base) (*(volatile uint32_t *)((base) + 0x00U))
#define GPIO_ODR(base) (*(volatile uint32_t *)((base) + 0x14U))
#define GPIO_BSRR(base) (*(volatile uint32_t *)((base) + 0x18U))
typedef enum {
GPIO_MODE_INPUT = 0,
GPIO_MODE_OUTPUT,
GPIO_MODE_AF,
GPIO_MODE_ANALOG
} gpio_mode_t;
```
## TIMER/WDT
```c
#define TIM_CR1(base) (*(volatile uint32_t *)((base) + 0x00U))
#define TIM_ARR(base) (*(volatile uint32_t *)((base) + 0x2CU))
#define TIM_CNT(base) (*(volatile uint32_t *)((base) + 0x24U))
#define WDT_KR(base) (*(volatile uint32_t *)((base) + 0x00U))
#define WDT_RLR(base) (*(volatile uint32_t *)((base) + 0x08U))
```
## 1553B
```c
typedef enum {
1553_MODE_BC = 0,
1553_MODE_RT = 1,
1553_MODE_BM = 2
}1553_mode_t;
typedef struct {
uint8_t cmd;
uint16_t status;
uint16_t data[32];
}1553_msg_t;
```embedded-code-skill-standards/SKILL.md
---
name: embed-code-standards
description: Embedded C coding standards reference. Naming conventions, type standards, error handling, struct/enum patterns, comment rules.
---
# Coding Standards
## Naming
| Element | Convention | Example |
|---------|------------|---------|
| Variables | snake_case | `sensor_value` |
| Globals | g_snake_case | `g_system_ticks` |
| Constants | SCREAMING_SNAKE | `MAX_BUFFER_SIZE` |
| Macros | SCREAMING_SNAKE | `GPIO_MODE_INPUT` |
| Functions | camelCase | `initUart()` |
| Struct types | snake_case_t | `uart_config_t` |
| Enum types | snake_case_t | `gpio_state_t` |
| Enum values | PREFIXED_SNAKE | `GPIO_STATE_LOW` |
| Pointers | p_snake_case | `p_rx_buffer` |
## Types
Use only stdint.h types:
```
uint8_t → byte, GPIO
uint16_t → 16-bit registers
uint32_t → 32-bit registers
int32_t → signed values
bool → flags
```
**NEVER**: int, char, long (unless necessary)
## Includes (Required)
```c
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
```
## Error Handling
```c
typedef enum {
EmbedCode_Ok = 0,
EmbedCode_ErrNullPtr = -1,
EmbedCode_ErrInvalidArg = -2,
EmbedCode_ErrTimeout = -3,
EmbedCode_ErrBusy = -4
} embed_code_status_t;
#define VALIDATE_NOT_NULL(ptr) \
do { if ((ptr) == NULL) return EmbedCode_ErrNullPtr; } while(0)
```
Every public function:
- Returns `embed_code_status_t`
- Validates NULL pointers
- Returns specific error codes
## Struct Patterns
```c
// Config - const after init
typedef struct {
uint32_t base_address;
uint8_t priority;
} peripheral_config_t;
// Handle - runtime state
typedef struct {
bool initialized;
peripheral_config_t config;
} peripheral_handle_t;
// State enum
typedef enum {
STATE_IDLE = 0,
STATE_RUNNING,
STATE_ERROR
} state_t;
```
## No Dynamic Allocation
**PROHIBITED**: malloc, free, calloc, realloc, new, delete, VLAs
**ALWAYS**: Fixed-size buffers
```c
#define BUFFER_SIZE 256U
uint8_t buffer[BUFFER_SIZE];
```
## Comments
**语言: 优先使用中文**
```c
// ✅ 正确 - 使用中文注释,解释 WHY
config |= (1U << 3); /* 低电平有效 */
// ❌ 错误 - 使用英文注释
config |= (1U << 3); /* Active-low enable */
// ❌ 错误 - 解释代码本身已清楚表达的内容
i++; /* i 自增 */
```
**注释原则:**
- **中文优先**: 便于团队阅读和维护
- **解释 WHY**: 说明原因和意图,而非描述代码在做什么
- **代码自说明**: 如果代码本身已清楚表达含义,无需注释
## Quality Checklist
- [ ] stdint.h types only
- [ ] Naming correct
- [ ] Public functions return status
- [ ] NULL validation
- [ ] No magic numbers
- [ ] Comments explain WHY
- [ ] No malloc/freeSKILL.md
---
name: embedded-code-skill
description: "Generate, rewrite, or review embedded C code. Use when creating/rewriting/reviewing embedded C for microcontrollers, drivers, firmware. Triggers automatically when user mentions: generate, create, write code, implement driver, rewrite, refactor, review, check, audit."
user-invocable: true
---
# Embedded C 代码生成规范
## 概述
本规范用于生成生产级嵌入式 C 代码,适用于 STM32、PowerPC、RISC-V 等平台。
**核心原则**: 像嵌入式软件架构师一样思考,生成可演进、可测试、可移植的代码。
---
## 思维方式
生成代码时必须以**嵌入式软件架构师**的思维进行:
| 维度 | 要求 |
|------|------|
| **系统视角** | 设计可演进的系统,考虑模块边界、接口契约、依赖关系 |
| **资源意识** | 内存精确计算缓冲区,CPU 减少中断嵌套,优化关键路径 |
| **实时性** | ISR 应尽可能短,考虑 WCET,防范优先级反转/死锁/队列溢出 |
| **可靠性** | 看门狗策略、异常恢复、关键数据冗余存储 |
| **硬件无关** | 寄存器抽象为结构体,驱动与业务逻辑分离 |
| **可测试** | 公共接口易 mock,状态机可单步测试,边界条件覆盖 |
---
## 编码规范
### 1. 类型规范
| 类型 | 用途 | 禁止 |
|------|------|------|
| `uint8_t` | 单字节、GPIO | `char`, `signed char` |
| `uint16_t` | 16位寄存器 | `short`, `unsigned short` |
| `uint32_t` | 32位寄存器、时间戳 | `int`, `long`, `unsigned int` |
| `int32_t` | 有符号值 | - |
| `uint64_t` | 64位数据 | - |
| `bool` | 布尔标志 | - |
**必须包含的头文件:**
```c
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
```
### 2. 命名规范
| 元素 | 格式 | 示例 |
|------|------|------|
| 变量 | `snake_case` | `sensor_value`, `data_count` |
| 全局变量 | `g_snake_case` | `g_system_ticks` |
| 常量/宏 | `SCREAMING_SNAKE` | `MAX_BUFFER_SIZE`, `SPI_CR_EN` |
| 函数 | `camelCase` | `initUart()`, `getSensorData()` |
| 结构体类型 | `snake_case_t` | `uart_config_t` |
| 枚举类型 | `snake_case_t` | `gpio_state_t` |
| 枚举值 | `PREFIXED_SNAKE` | `GPIO_STATE_LOW` |
| 指针 | `p_snake_case` | `p_rx_buffer` |
| 寄存器结构体 | `module_name_reg_t` | `spi_reg_t` |
| 寄存器头文件 | `module_reg.h` | `spi_reg.h` |
### 3. 错误处理
所有 public 函数必须:
1. 返回 `embedded_code_status_t` 枚举类型
2. 验证所有输入指针(NULL 检查)
3. 返回具体错误码
```c
typedef enum {
EmbedCode_Ok = 0,
EmbedCode_ErrNullPtr = -1,
EmbedCode_ErrInvalidArg = -2,
EmbedCode_ErrTimeout = -3,
EmbedCode_ErrBusy = -4,
EmbedCode_ErrNotInit = -5
} embedded_code_status_t;
#define VALIDATE_NOT_NULL(ptr) \
do { if ((ptr) == NULL) return EmbedCode_ErrNullPtr; } while(0)
```
### 4. 注释规范
**注释语言: 优先使用中文**
| 原则 | 说明 |
|------|------|
| **中文优先** | 便于团队阅读和维护 |
| **解释 WHY** | 注释应说明原因和意图,而非描述代码在做什么 |
| **代码自说明** | 如果代码本身已清楚表达含义,无需注释 |
**Doxygen 文件头格式:**
```c
/**
* @file spi_reg.h
* @brief SPI 寄存器结构体定义
* @author Claude Code
* @date 2026-04-10
*/
```
**行内注释示例:**
```c
config |= SPI_CR_EN_MASK; /* 启用 SPI,低电平有效 */
```
### 5. 寄存器结构体定义
**每个外设模块必须有独立的 reg.h 文件:**
| 必需元素 | 说明 |
|----------|------|
| `XXX_BASE_ADDR` | 基地址定义,格式:`XXX_BASE_ADDR` |
| `xxx_reg_t` | 寄存器结构体,使用 `volatile uint32_t` |
| `XXX_XXX_MASK/SHIFT` | 位字段宏定义 |
| `XXX_REG` | 结构体指针访问宏 |
**reg.h 模板:**
```c
/**
* @file spi_reg.h
* @brief SPI 外设寄存器定义
*/
#ifndef SPI_REG_H
#define SPI_REG_H
#include <stdint.h>
/* 基地址 */
#define SPI_BASE_ADDR (0xA0010000U)
/* 寄存器结构体 */
typedef struct {
volatile uint32_t CTRL; /* 0x00: 控制寄存器 */
volatile uint32_t STATUS; /* 0x04: 状AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/leon-2050/skills/embedded-code-skill",
"sourceUrl": "https://clawhub.ai/leon-2050/skills/embedded-code-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T22:40:46.487Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-leon-2050-embedded-code-skill/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-leon-2050-embedded-code-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T22:40:46.487Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "983 downloads",
"href": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceUrl": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T22:40:46.487Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.0.2",
"href": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceUrl": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-04-17T14:43:09.002Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-leon-2050-embedded-code-skill/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-leon-2050-embedded-code-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.0.2",
"description": "- Added comprehensive coding guidelines for embedded C, focusing on production-quality code for platforms like STM32, PowerPC, RISC-V. - Defined detailed naming, type, struct, and error-handling conventions for all generated, rewritten, or reviewed code. - Specified mandatory use of separate reg.h files with structured register definitions and macros—no magic numbers, no scattered register addresses. - Outlined modes for code generation, rewriting (with strict preservation of original logic), and review, each with explicit multi-step workflows. - Included a PDCA (Plan-Do-Check-Act) workflow and a detailed checklist to ensure all outputs meet the standard. - Added common mistakes with clear before/after examples to guide correct implementation.",
"href": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceUrl": "https://clawhub.ai/leon-2050/embedded-code-skill",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-04-17T14:43:09.002Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-leon-2050-embedded-code-skill/run-check
