一键导入
style
Code Style skill for the ikigai project
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Code Style skill for the ikigai project
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Automated quality check loops with escalation and fix sub-agents
JSON-based end-to-end test format, runner, and mock provider
Jujutsu (jj) skill for the ikigai project
How to write effective Ralph goals for Ikigai-driven workflows
Create and manage Ralph goals from Ikigai using the real ralph-pipeline scripts
Create repositories using the real ralph-pipeline repo-create script
| name | style |
| description | Code Style skill for the ikigai project |
Code style conventions for ikigai development.
// style only (never /* ... */)<inttypes.h> for numeric types and format specifiersint, long, etc.)int8_t, int16_t, int32_t, int64_t, uint8_t, etc.size_t for sizes and countsPRId32, PRIu64, etc. for printf format specifiersSCNd32, SCNu64, etc. for scanf format specifiersExample:
#include <inttypes.h>
int32_t count = 42;
uint64_t size = 1024;
printf("Count: %" PRId32 ", Size: %" PRIu64 "\n", count, size);
Follow Google C++ style guide for #include ordering:
config.h in config.c) - catches missing dependencies"header.h") - alphabetically sorted<header.h>) - alphabetically sortedExample:
#include "config.h" // Own header
#include "json_allocator.h" // Project headers (alphabetical)
#include "logger.h"
#include "panic.h"
#include "wrapper.h"
#include <errno.h> // System headers (alphabetical)
#include <stdlib.h>
#include <string.h>
Rationale: Project headers before system headers catches non-self-contained headers early.
Do not use static helper functions in implementation files. Instead, inline the code directly.
Why: LCOV exclusion markers (LCOV_EXCL_BR_LINE) on PANIC/assert calls inside static functions are not reliably honored, breaking 90% branch coverage requirements.
Exception: MOCKABLE wrapper functions (see wrapper.h) - these use static functions by design for the mocking interface.
Instead of:
static yyjson_mut_val *build_param(yyjson_mut_doc *doc, const char *desc)
{
yyjson_mut_val *p = yyjson_mut_obj(doc);
if (p == NULL) PANIC("Out of memory"); // LCOV_EXCL_BR_LINE - NOT HONORED!
return p;
}
Do:
// Inline the code at each call site
yyjson_mut_val *p = yyjson_mut_obj(doc);
if (p == NULL) PANIC("Out of memory"); // LCOV_EXCL_BR_LINE - works
Always add a blank line between END_TEST and START_TEST.