Criticism Self Criticism
HughYau/qiushi-skill
批评与自我批评:在工作完成、阶段验收、收到批评或同类错误反复出现时,对成果和过程做诚实、具体、基于事实的审视,输出可执行的改进项,并处理外来批评而不辩解。触发信号包括 review、复盘、审查、"帮我看看有没有问题"、"你确定吗";任务刚开始或只是单步查询时不触发。
CRITICAL: Use for type-driven design. An agent skill from fjrevoredo/mini-diarium.
$ npx skills add fjrevoredo/mini-diarium --skill m05-type-driven -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fjrevoredo/mini-diarium m05-type-driven --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/fjrevoredo/mini-diarium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/m05-type-driven .claude/skills/m05-type-driven && 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 "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .claude/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-drivenType 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 fjrevoredo/mini-diarium --skill m05-type-driven -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fjrevoredo/mini-diarium m05-type-driven --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/m05-type-driven .agents/skills/m05-type-driven && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .agents/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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 fjrevoredo/mini-diarium --skill m05-type-driven -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fjrevoredo/mini-diarium m05-type-driven --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/m05-type-driven .cursor/skills/m05-type-driven && 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 "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .cursor/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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/fjrevoredo/mini-diarium.git --path .agents/skills/m05-type-driven--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 fjrevoredo/mini-diarium --skill m05-type-driven -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fjrevoredo/mini-diarium m05-type-driven --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/m05-type-driven .gemini/skills/m05-type-driven && 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 "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .gemini/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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 fjrevoredo/mini-diarium m05-type-drivenInstalls 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 fjrevoredo/mini-diarium --skill m05-type-driven -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/m05-type-driven .github/skills/m05-type-driven && 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 "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .github/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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 fjrevoredo/mini-diarium --skill m05-type-driven -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fjrevoredo/mini-diarium m05-type-driven --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/m05-type-driven .opencode/skills/m05-type-driven && 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 "m05-type-driven" agent skill from https://github.com/fjrevoredo/mini-diarium/tree/master/.agents/skills/m05-type-driven into .opencode/skills/m05-type-driven/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "m05-type-driven", 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.
m05-type-drivenCRITICAL: Use for type-driven design. An agent skill from fjrevoredo/mini-diarium.
M05 Type Driven is an agent skill from fjrevoredo/mini-diarium. CRITICAL: Use for type-driven design. Triggers: type state, PhantomData, newtype, marker trait, builder pattern, make invalid states unrepresentable, compile-time validation, sealed trait, ZST, 类型状态, 新类型模式, 类型驱动设计
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: A local-only journal with serious encryption. Free, open source, and never touches the internet. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 75c1286. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are rust).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
M05 Type Driven loads about 1.1k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 329 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 fjrevoredo/mini-diarium at commit 75c1286, republished under its MIT licence (© fjrevoredo). 329 words, ~1,112 tokens.
.claude/skills/m05-type-driven/SKILL.md (or your agent's skills folder).Layer 1: Language Mechanics
How can the type system prevent invalid states?
Before reaching for runtime checks:
| Pattern | Don't Just Say | Ask Instead |
|---|---|---|
| Primitive obsession | "It's just a string" | What does this value represent? |
| Boolean flags | "Add an is_valid flag" | Can states be types? |
| Optional everywhere | "Check for None" | Is absence really possible? |
| Validation at runtime | "Return Err if invalid" | Can we validate at construction? |
Before adding runtime validation:
Can the type encode the constraint?
When is validation possible?
Who needs to know the invariant?
When type design is unclear:
"Need to validate email format"
↑ Ask: Is this a domain value object?
↑ Check: m09-domain (Email as Value Object)
↑ Check: domain-* (validation requirements)| Situation | Trace To | Question |
|---|---|---|
| What types to create | m09-domain | What's the domain model? |
| State machine design | m09-domain | What are valid transitions? |
| Marker trait usage | m04-zero-cost | Static or dynamic dispatch? |
From design to implementation:
"Need type-safe wrapper for primitives"
↓ Newtype: struct UserId(u64);
"Need compile-time state validation"
↓ Type State: Connection<Connected>
"Need to track phantom type parameters"
↓ PhantomData: PhantomData<T>
"Need capability markers"
↓ Marker Trait: trait Validated {}
"Need gradual construction"
↓ Builder: Builder::new().field(x).build()| Pattern | Purpose | Example |
|---|---|---|
| Newtype | Type safety | struct UserId(u64); |
| Type State | State machine | Connection<Connected> |
| PhantomData | Variance/lifetime | PhantomData<&'a T> |
| Marker Trait | Capability flag | trait Validated {} |
| Builder | Gradual construction | Builder::new().name("x").build() |
| Sealed Trait | Prevent external impl | mod private { pub trait Sealed {} } |
struct Email(String); // Not just any string
impl Email {
pub fn new(s: &str) -> Result<Self, ValidationError> {
// Validate once, trust forever
validate_email(s)?;
Ok(Self(s.to_string()))
}
}struct Connection<State>(TcpStream, PhantomData<State>);
struct Disconnected;
struct Connected;
struct Authenticated;
impl Connection<Disconnected> {
fn connect(self) -> Connection<Connected> { ... }
}
impl Connection<Connected> {
fn authenticate(self) -> Connection<Authenticated> { ... }
}| Need | Pattern |
|---|---|
| Type safety for primitives | Newtype |
| Compile-time state validation | Type State |
| Lifetime/variance markers | PhantomData |
| Capability flags | Marker Trait |
| Gradual construction | Builder |
| Closed set of impls | Sealed Trait |
| Zero-sized type marker | ZST struct |
| Anti-Pattern | Why Bad | Better |
|---|---|---|
| Boolean flags for states | Runtime errors | Type state |
| String for semantic types | No type safety | Newtype |
| Option for uninitialized | Unclear invariant | Builder |
| Public fields with invariants | Invariant violation | Private + validated new() |
| When | See |
|---|---|
| Domain modeling | m09-domain |
| Trait design | m04-zero-cost |
| Error handling in constructors | m06-error-handling |
| Anti-patterns | m15-anti-pattern |
© fjrevoredo, 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/m05-type-driven of fjrevoredo/mini-diarium.
Open the folder on GitHubat commit 75c1286
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in fjrevoredo/mini-diarium, which our catalogue first saw on October 7, 2026.
M05 Type Driven 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 |
|---|---|---|---|---|---|---|
| M05 Type Driven this skillfjrevoredo/mini-diarium | 308 | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Criticism Self CriticismHughYau/qiushi-skill | 3.8k | — | ~423 | Automated safety check: Pass | MIT | |
| Crossframe Criticalsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Critical Imagesthedaviddias/Front-End-Checklist | 74k | — | ~392 | Automated safety check: Pass | MIT | |
| CSS Criticalthedaviddias/Front-End-Checklist | 74k | — | ~441 | Automated safety check: Pass | MIT | |
| Critical Request Chainsthedaviddias/Front-End-Checklist | 74k | — | ~418 | Automated safety check: Pass | MIT |
HughYau/qiushi-skill
批评与自我批评:在工作完成、阶段验收、收到批评或同类错误反复出现时,对成果和过程做诚实、具体、基于事实的审视,输出可执行的改进项,并处理外来批评而不辩解。触发信号包括 review、复盘、审查、"帮我看看有没有问题"、"你确定吗";任务刚开始或只是单步查询时不触发。
sickn33/agentic-awesome-skills
Use only when the user explicitly names crossframe-critical for a Chinese structural critique dossier, article plan, or long-form critical essay.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing image assets, markup, and CDN or build transforms related to Prioritize loading critical images.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Inline critical CSS for faster rendering.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Minimize critical request chains.
affaan-m/ECC
Optimize and verify latency-sensitive systems — realtime dashboards, market data feeds, streaming agents, execution gateways, queues, and caches — by tracking p50/p95/p99 latency, freshness age, and…
fjrevoredo/mini-diarium
Create, update, review, and execute manual Markdown implementation plans when harness planning mode is not being used.
fjrevoredo/mini-diarium
CRITICAL: Use for performance optimization. An agent skill from fjrevoredo/mini-diarium.
fjrevoredo/mini-diarium
SolidJS framework development skill for building reactive web applications with fine-grained reactivity.
fjrevoredo/mini-diarium
Analyze Rust project structure using LSP symbols. An agent skill from fjrevoredo/mini-diarium.
fjrevoredo/mini-diarium
Tauri v2 cross-platform app development with Rust backend. An agent skill from fjrevoredo/mini-diarium.
fjrevoredo/mini-diarium
Enter exploration mode: a thinking partner for researching and thinking through ideas and problems before implementation.
CRITICAL: Use for type-driven design. An agent skill from fjrevoredo/mini-diarium. M05 Type Driven is an agent skill from fjrevoredo/mini-diarium. CRITICAL: Use for type-driven design.
M05 Type Driven fits situations like: type-driven design.
Run `npx skills add fjrevoredo/mini-diarium --skill m05-type-driven -a claude-code`. Or copy the skill folder (.agents/skills/m05-type-driven in fjrevoredo/mini-diarium) into .claude/skills/m05-type-driven in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fjrevoredo/mini-diarium --skill m05-type-driven -a codex`. Or copy the skill folder (.agents/skills/m05-type-driven in fjrevoredo/mini-diarium) into .agents/skills/m05-type-driven 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 fjrevoredo/mini-diarium --skill m05-type-driven -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/m05-type-driven, .gemini/skills/m05-type-driven, .github/skills/m05-type-driven and .opencode/skills/m05-type-driven in your project.
SKILL.md names no scripts, command-line tools or credentials: M05 Type Driven is instructions for the agent only.
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.
M05 Type Driven 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.1k tokens (SKILL.md is roughly 4.4k 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 M05 Type Driven: Criticism Self Criticism (HughYau/qiushi-skill, 3.8k stars), Crossframe Critical (sickn33/agentic-awesome-skills, 47k stars), Critical Images (thedaviddias/Front-End-Checklist, 74k stars) and CSS Critical (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fjrevoredo (a GitHub user) maintains it in fjrevoredo/mini-diarium, which has 308 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 4, 2026.
Source: fjrevoredo/mini-diarium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.