Rust TDD Workflow
rtk-ai/rtk
Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.
Navigate EnsoCode's long-term engineering conventions, layer boundaries, testing rules, historical decisions, and high-cost pitfalls.
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install J3n5en/EnsoCode project-knowledge --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/project-knowledge .claude/skills/project-knowledge && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .claude/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledgeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install J3n5en/EnsoCode project-knowledge --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/project-knowledge .agents/skills/project-knowledge && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .agents/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install J3n5en/EnsoCode project-knowledge --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/project-knowledge .cursor/skills/project-knowledge && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .cursor/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/J3n5en/EnsoCode.git --path .agents/skills/project-knowledge--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install J3n5en/EnsoCode project-knowledge --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/project-knowledge .gemini/skills/project-knowledge && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .gemini/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install J3n5en/EnsoCode project-knowledgeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/project-knowledge .github/skills/project-knowledge && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .github/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add J3n5en/EnsoCode --skill project-knowledge -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install J3n5en/EnsoCode project-knowledge --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/J3n5en/EnsoCode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/project-knowledge .opencode/skills/project-knowledge && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "project-knowledge" agent skill from https://github.com/J3n5en/EnsoCode/tree/main/.agents/skills/project-knowledge into .opencode/skills/project-knowledge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-knowledge", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
project-knowledgeNavigate EnsoCode's long-term engineering conventions, layer boundaries, testing rules, historical decisions, and high-cost pitfalls.
Project Knowledge is an agent skill from J3n5en/EnsoCode. Navigate EnsoCode's long-term engineering conventions, layer boundaries, testing rules, historical decisions, and high-cost pitfalls. Use before non-trivial or cross-layer changes, when adding IPC or session/worker behavior, when debugging state/history/input issues, when a fix reveals a reusable rule, or when the user asks to search or capture project knowledge. 项目知识导航、踩坑检索、根因沉淀、TDD 和工程约定。
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Test-driven development. The repository describes itself as: One Developer. An Entire Fleet of Autonomous Coding Agents. Local-first desktop agent workbench built on Electron + pi. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 341cd64. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Project Knowledge loads about 1.3k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 222 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from J3n5en/EnsoCode at commit 341cd64, republished under its MIT licence (© J3n5en). 222 words, ~1,312 tokens.
.claude/skills/project-knowledge/SKILL.md (or your agent's skills folder).这是项目知识的导航和维护入口,不替代权威文档,也不恢复任务状态机或工作流。先按下面的场景选择最相关的文档,避免无目的地通读整个知识库。
| 场景 | 必读资料 |
|---|---|
| 任意非平凡改动 | AGENTS.md、docs/engineering-guidelines.md |
| 跨主进程 / preload / renderer | docs/engineering-reference/guides/cross-layer-thinking-guide.md、main/ipc.md |
| Main、worker、child、session | docs/engineering-reference/main/services.md、renderer/state.md |
| 新增或修改 IPC | docs/engineering-reference/main/ipc.md |
| provider、skill、MCP、指令扫描 | docs/engineering-reference/main/services.md、testing.md |
| React、Zustand、持久化 | docs/engineering-reference/renderer/state.md、renderer/components.md |
| UI、弹窗、窗口、样式 | docs/engineering-reference/renderer/components.md、dialogs.md、styling.md、main/windows.md |
| 纯逻辑、协议、解析器、路径校验 | docs/engineering-reference/testing.md |
| 怀疑已有类似实现 | docs/engineering-reference/guides/code-reuse-thinking-guide.md |
动手前至少回答:行为差距是什么、行为真正属于哪一层、哪些文件必须改、哪些相邻问题明确不做。
先看 docs/engineering-reference/big-question/index.md,再打开与症状最接近的条目:
| 症状 | 优先检查 |
|---|---|
| preload 改动后应用启动失败 | big-question/preload-externalization.md |
| 状态不更新、一直加载、推送无效 | main/ipc.md、main/windows.md |
| 同一个资源被导入多份 | big-question/dedupe-identity.md |
| 冷会话 / 历史为空,先发消息后正文消失 | big-question/optimistic-echo-blocks-snapshot.md |
| 多轮后历史消息消失 | big-question/agent-end-run-scoped-messages.md |
| worktree 切换后文件写错位置 | big-question/worktree-move-races.md |
| CDP 点击、拖拽或输入时好时坏 | big-question/cdp-hidden-window-input.md |
| retry、回退、恢复行为异常 | big-question/pi-auto-retry-willretry.md、checkpoint-cross-session-wipe.md |
| 弹窗或下拉无响应 | big-question/dialog-layering.md、ui-component-classname.md |
排查应沿完整链路验证可观察事实:
UI → store/reducer → preload → IPC → Main → worker / 文件 / 网络优先检查 IPC 返回值、持久化文件、worker 事件和 CDP 运行时状态,不要只根据症状所在的组件猜根因。
历史设计、研究和开发日志位于 docs/project-history/。它们用于找背景和已有决策,不是当前规范;如果历史资料和当前源码或工程规范冲突,以当前源码、AGENTS.md 和 docs/engineering-reference/ 为准。
改动纯函数、解析器、协议校验、路径校验或 reducer 时必须遵循:
修 bug 同样先写复现测试。测试应断言可观察行为,不要只断言内部调用或错误文案。涉及模型自主调用工具的链路,至少用两个不同厂商的模型真机验证。
提交前运行:
pnpm typecheck && pnpm lint && pnpm test完成实现或排障后,只有具备复用价值的结论才写入文档。判断标准:
按类型选择落点:
| 知识类型 | 落点 |
|---|---|
| 高频、稳定的硬规则 | AGENTS.md |
| 项目级开发约定或跨层规则 | docs/engineering-guidelines.md |
| 某一层或某一模块的详细契约 | docs/engineering-reference/main/、renderer/、shared/ 或 guides/ |
| 真实踩坑、症状与根因错位、排查成本高 | docs/engineering-reference/big-question/ |
| 一次性设计背景、方案比较、历史决策 | docs/project-history/ |
| 纯回归防线 | 对应测试文件;必要时加简短背景注释 |
新增高代价陷阱使用以下结构,务必写清真实症状和回归防线:
# 问题标题
## 症状
## 根因
## 修法
## 回归防线
## 相关代码更新文档后同步检查相邻规范和已有链接,避免把同一规则复制成互相漂移的多份内容。不要把一次性的聊天总结、未经验证的猜测或完整任务日志直接写进长期规范。
本项目暂不自动删除或自动改写知识文档;压缩清理采用人工审计,避免误删有价值的根因和回归证据。每次新增知识前,以及完成一组相关任务后,按下面的规则检查:
| 内容 | 建议上限 | 超限处理 |
|---|---|---|
AGENTS.md | 约 100 行 | 只保留高频硬规则,其余移到 docs/engineering-guidelines.md 或 reference |
docs/engineering-guidelines.md | 约 250 行 | 按主题拆到 docs/engineering-reference/ |
单个 big-question 条目 | 约 150–250 行 | 删除过程日志,只保留症状、根因、修法、回归防线和相关代码 |
project-knowledge/SKILL.md | 约 150 行 | 只保留导航、检索、沉淀和维护规则,不复制规范正文 |
docs/engineering-reference/big-question/ | 不设硬上限 | 合并重复问题,按症状和根因去重 |
docs/project-history/ | 不设硬上限 | 按日期归档;只保留仍有背景价值的设计和研究结论 |
AGENTS.md、docs/engineering-guidelines.md、docs/engineering-reference/ 和 docs/project-history/。AGENTS.md 只保留贡献者每天需要看到的规则。project-history/。big-question 条目删除聊天过程、重复代码片段和无结论尝试,保留最短可复用解释。项目提供三条命令:
pnpm knowledge:check
pnpm knowledge:clean
pnpm knowledge:clean -- --apply
pnpm knowledge:compactknowledge:check 只读检查文档行数、Markdown 链接和踩坑条目结构;发现问题时返回非零状态,不修改文件。knowledge:clean 默认 dry-run,列出历史目录中的临时 .jsonl 文件;只有显式传 -- --apply 才移动到 docs/knowledge-review/archive/。knowledge:compact 检查超长 big-question 条目,在 docs/knowledge-review/compact/ 生成源文件副本和压缩提示;原文不变。OPENAI_API_KEY 后,knowledge:compact 可调用兼容 Chat Completions 的模型生成草案;可选 OPENAI_BASE_URL 和 OPENAI_MODEL,模型输出仍只写入审阅目录。压缩清理只能减少重复和过程噪声,不能删除:
docs/project-history/ 当作当前行为契约。© J3n5en, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/project-knowledge of J3n5en/EnsoCode.
Open the folder on GitHubat commit 341cd64
Project Knowledge next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Project Knowledge this skillJ3n5en/EnsoCode | 119 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Rust TDD Workflowrtk-ai/rtk | 83k | — | ~753 | Automated safety check: Notes | Apache-2.0 | |
| RTK Filter TDD in Rustrtk-ai/rtk | 83k | — | ~1.9k | Automated safety check: Notes | Apache-2.0 | |
| Test Guidelinesgetsentry/sentry-dart | 873 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Evidence-First Development LoopAmazingAng/old-coder | 749 | — | ~5.4k | Automated safety check: Notes | MIT | |
| Gh IssuesTypedDevs/bashunit | 434 | 1 repos | ~1.7k | Automated safety check: Notes | MIT |
rtk-ai/rtk
Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.
rtk-ai/rtk
Enforces red-green-refactor for new RTK output filters in Rust, using real captured fixtures, snapshot tests with insta and token-savings assertions.
getsentry/sentry-dart
Enforce Sentry Dart/Flutter SDK test conventions for naming, structure, and fixtures.
AmazingAng/old-coder
Replaces line-by-line code review with an approved executable spec and a gauntlet of tests, types, coverage, and mutation checks the code must survive.
TypedDevs/bashunit
Walk over all open GitHub issues that are unassigned or assigned to the current user, and process each one via the /gh-issue skill, sequentially.
huiliyi37/Tianshu-harness
Guides an agent through probing an unfamiliar project's test setup, then choosing a red-light-first testing strategy matched to the task type.
J3n5en/EnsoCode
Drive the EnsoCode Electron renderer via Chrome DevTools Protocol on port 9222.
Categories
Navigate EnsoCode's long-term engineering conventions, layer boundaries, testing rules, historical decisions, and high-cost pitfalls. Project Knowledge is an agent skill from J3n5en/EnsoCode. Navigate EnsoCode's long-term engineering conventions, layer boundaries, testing rules, historical decisions, and high-cost pitfalls.
Project Knowledge fits situations like: capture project knowledge; tasks that involve Test-driven development.
Run `npx skills add J3n5en/EnsoCode --skill project-knowledge -a claude-code`. Or copy the skill folder (.agents/skills/project-knowledge in J3n5en/EnsoCode) into .claude/skills/project-knowledge in your project. Claude Code loads it when a task matches its description.
Run `npx skills add J3n5en/EnsoCode --skill project-knowledge -a codex`. Or copy the skill folder (.agents/skills/project-knowledge in J3n5en/EnsoCode) into .agents/skills/project-knowledge in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add J3n5en/EnsoCode --skill project-knowledge -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-knowledge, .gemini/skills/project-knowledge, .github/skills/project-knowledge and .opencode/skills/project-knowledge in your project.
Going by SKILL.md and its folder, Project Knowledge needs the command-line tools its instructions call (pnpm) and credentials named OPENAI_API_KEY. Our summary lists: A credential in OPENAI_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Project Knowledge is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Project Knowledge: Rust TDD Workflow (rtk-ai/rtk, 83k stars), RTK Filter TDD in Rust (rtk-ai/rtk, 83k stars), Test Guidelines (getsentry/sentry-dart, 873 stars) and Evidence-First Development Loop (AmazingAng/old-coder, 749 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
J3n5en (a GitHub user) maintains it in J3n5en/EnsoCode, which has 119 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.
Source: J3n5en/EnsoCode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.