Self-Critique - Quality Through Reflection
Self-Critique implements structured self-review workflows inspired by Constitutional AI and self-reflection research.
The core insight: Outputs improve significantly when you pause, review against criteria, and revise—especially your own work.
The Analogy: Code Review (With Yourself)
| No Review | Self-Critique |
|---|
| Ship immediately | Pause and review |
| Miss obvious issues |
Catch your own mistakes |
| Learn from failures later | Improve before shipping |
| Variable quality | Consistently higher quality |
When to Use Self-Critique
Perfect for:
- - 📝 Important writing (emails, docs, proposals)
- 💻 Code before commit (especially complex changes)
- 📊 Analysis and reports (where accuracy matters)
- 🎨 Design decisions (review trade-offs)
- 🤔 Any output with consequences (can't easily undo)
Skip for:
- - ⚡ Drafts or quick notes (speed > quality)
- 🎯 Obvious answers ("What is 2+2?")
- 🔄 Pure exploration (brainstorming)
The Workflow
Step 1: Generate Initial Output
Create your first draft without self-censoring:
CODEBLOCK0
⚠️ Don't self-edit while generating. Get ideas out first.
Step 2: Switch to Critique Mode
Mentally switch roles. You are now the reviewer, not the creator:
CODEBLOCK1
Step 3: Structured Critique
Review systematically against criteria. For each criterion:
CODEBLOCK2
Step 4: Aggregate Findings
Summarize all issues found:
CODEBLOCK3
Step 5: Revise
Address findings systematically:
CODEBLOCK4
Step 6: Second-Pass Critique (Optional)
For critical work, critique again:
CODEBLOCK5
Step 7: Final Output
Ship the revised version:
CODEBLOCK6
Critique Frameworks by Domain
For Code
CODEBLOCK7
For Writing
CODEBLOCK8
For Analysis
CODEBLOCK9
For Decisions
CODEBLOCK10
Severity Levels
When critiquing, classify each finding:
| Severity | Action | Example |
|---|
| CRITICAL | Must fix before shipping | Security vulnerability, factual error |
| MODERATE |
Should fix if time permits | Missing documentation, unclear explanation |
|
MINOR | Nice to have | Typos, formatting, optional improvements |
|
POSITIVE | Keep doing | Good patterns worth reinforcing |
Common Critique Patterns
Pattern 1: The Fresh Eyes
Wait 10 minutes between generating and critiquing:
CODEBLOCK11
Pattern 2: The Role Play
Adopt a specific persona for critique:
CODEBLOCK12
Other personas:
- - Junior developer (confused by jargon?)
- Future maintainer (will this code make sense in 6 months?)
- Adversarial user (how could this be abused?)
Pattern 3: The Red Team
Actively try to break your own work:
CODEBLOCK13
Pattern 4: The Checklist Method
Use domain-specific checklists (see frameworks above):
CODEBLOCK14
Examples
Example 1: Code Self-Critique
Initial Code:
CODEBLOCK15
Self-Critique:
CODEBLOCK16
Example 2: Email Self-Critique
Initial Email:
CODEBLOCK17
Self-Critique:
CRITIQUE:
CRITICAL:
1. No context—recipient doesn't know "the thing"
FIX: Specify what meeting is about
2. Vague timing—"Tuesday" what time?
FIX: Propose specific time or ask for availability
3. No purpose—why meeting vs email?
FIX: State what decision/action needed
4. Too casual for likely audience
FIX: Professional but friendly tone
MODERATE:
5. No duration estimate
FIX: "30 minute meeting"
6. Missing call details
FIX: Include Zoom link or location
REVISION:
Subject: Quick sync on Q3 roadmap - Tuesday 2pm?
Hi Sarah,
Hope you're doing well! I'd like to get your input on the Q3 roadmap priorities before finalizing next week.
Would you be available for a 30-minute call on Tuesday at 2pm PT? I'll send a calendar invite with Zoom details.
If that time doesn't work, I'm flexible Wednesday or Thursday afternoon.
Thanks!
J
### Example 3: Analysis Self-Critique
**Initial Analysis:**
Our API latency increased 50% after the v2 deployment.
The new auth middleware is likely the cause.
We should optimize it.
**Self-Critique:**
CRITIQUE:
CRITICAL:
- 1. 50% claim not verified—need actual numbers
FIX: Include baseline (100ms) vs current (150ms) p99
- 2. "Likely" not rigorous—correlation ≠ causation
FIX: Check other variables (traffic, dependencies)
FIX: A/B test or profile before/after
- 3. "Optimize it" too vague
FIX: Specific recommendation with trade-offs
- 4. No confidence interval or sample size
FIX: Statistical significance check
- 5. Missing impact assessment
FIX: User impact, revenue impact
- 6. No mitigation if optimization fails
FIX: Rollback plan, alternatives
REVISION:
CODEBLOCK21
Integration with Other Skills
Self-Critique + Plan First:
- 1. Plan the task
- Execute step
- Self-critique output
- Revise
- Next step
Self-Critique + Team Code:
- 1. Agent generates output
- Same agent self-critiques
- Revises
- Submits
- Manager integrates
Quick Start Template
CODEBLOCK22
References
- - Research: "Constitutional AI: Harmlessness from AI Feedback" (Anthropic, 2022)
- Related: Self-reflection, Chain-of-Verification, Self-Consistency
- See references/examples.md for more detailed examples
自我批评——通过反思提升质量
自我批评 实现了结构化的自我审查工作流程,其灵感来源于宪法AI和自我反思研究。
核心见解:当你暂停、对照标准进行审查并修改时,输出质量会显著提升——尤其是针对你自己的作品。
类比:代码审查(针对自己)
发现自己的错误 |
| 事后从失败中学习 | 发布前改进 |
| 质量不稳定 | 持续更高质量 |
何时使用自我批评
适用于:
- - 📝 重要写作(邮件、文档、提案)
- 💻 提交前的代码(尤其是复杂变更)
- 📊 分析与报告(准确性至关重要)
- 🎨 设计决策(审查权衡)
- 🤔 任何有后果的输出(无法轻易撤销)
跳过:
- - ⚡ 草稿或快速笔记(速度 > 质量)
- 🎯 显而易见的问题(2+2等于几?)
- 🔄 纯粹探索(头脑风暴)
工作流程
第一步:生成初始输出
不加自我审查地创建初稿:
任务:为新功能撰写项目提案
[生成完整的初稿]
⚠️ 生成时不要自我编辑。 先把想法写出来。
第二步:切换到批评模式
在心理上切换角色。 你现在是审查者,而非创作者:
角色转换:我现在是一名批判性审查者,正在审查这份提案。
审查标准:
- - [ ] 开头明确陈述目标
- [ ] 问题定义清晰
- [ ] 解决方案详细描述
- [ ] 范围界定清晰
- [ ] 时间表现实可行
- [ ] 已识别风险
- [ ] 成功指标已定义
- [ ] 已考虑利益相关者
- [ ] 无拼写错误或表述不清
- [ ] 语气适合受众
第三步:结构化批评
系统性地对照标准进行审查。 针对每个标准:
标准:开头明确陈述目标
发现:✓ 通过
标准:时间表现实可行
发现:✗ 未通过
- - 提议用2周完成数据库迁移
- 历史数据:类似迁移需要6-8周
- 缺少测试和回滚时间
严重程度:高(时间表错误将导致项目失败)
建议修正:
- - 将时间表修改为8周
- 包含阶段:迁移(4周)、测试(2周)、缓冲(2周)
- 添加里程碑检查点
第四步:汇总发现
总结所有发现的问题:
批评总结:
关键(发布前必须修复):
- 1. 时间表不现实(需要8周,而非2周)
- 缺少风险:依赖外部团队
中等(应该修复):
- 3. 安全部分过于模糊——需要具体控制措施
- 未提及监控计划
次要(锦上添花):
- 5. 第三段拼写错误:recieve → receive
- 可添加架构图
正面(保持):
✓ 清晰的问题陈述
✓ 良好的利益相关者分析
✓ 强有力的成功指标
总体评估:提交前需要修改
置信度:高(已识别出明确问题)
第五步:修改
系统性地处理发现的问题:
修改:
[R1] 修正时间表(关键#1)
- - 修改:2周 → 分阶段8周
- 添加:详细阶段分解
- 添加:里程碑检查点
[R2] 添加外部依赖风险(关键#2)
- - 添加章节:外部依赖
- 记录:需要团队X的API,已建立联系
- 缓解措施:早期集成测试
[R3] 扩展安全部分(中等#3)
- - 添加:具体加密要求
- 添加:访问控制细节
- 引用:公司安全标准
[对所有发现继续处理...]
第六步:二次批评(可选)
对于关键工作,再次批评:
二次批评(更轻量):
修改是否解决了问题? ✓
是否引入了任何新问题? ✗(未发现)
可以发布了吗? ✓
第七步:最终输出
发布修改后的版本:
最终输出:[应用了所有修正的修改后提案]
质量评分:9/10(从6/10提升)
修改次数:8
批评用时:15分钟
置信度:高
按领域划分的批评框架
针对代码
代码审查标准:
功能性:
- - [ ] 实现了声称的功能
- [ ] 处理边界情况
- [ ] 错误处理完整
- [ ] 无明显错误
安全性:
- - [ ] 输入已验证
- [ ] 无注入漏洞
- [ ] 密钥未硬编码
- [ ] 最小权限原则
性能:
- - [ ] 无N+1查询
- [ ] 算法适合规模
- [ ] 无不必要的计算
- [ ] 内存使用合理
可维护性:
- - [ ] 变量命名清晰
- [ ] 函数职责明确
- [ ] 注释解释原因,而非内容
- [ ] 遵循项目规范
测试:
- - [ ] 测试覆盖正常路径
- [ ] 测试覆盖错误情况
- [ ] 边界情况已测试
- [ ] 测试可读性强
文档:
- - [ ] 复杂逻辑已解释
- [ ] API已文档化
- [ ] 重大变更已注明
针对写作
写作审查标准:
清晰度:
- - [ ] 前两句点明主旨
- [ ] 每段有一个清晰观点
- [ ] 无歧义代词
- [ ] 技术术语已定义
完整性:
- - [ ] 回答了读者可能的问题
- [ ] 提供了背景信息
- [ ] 后续步骤清晰(如适用)
- [ ] 未假设未说明的内容
受众:
- - [ ] 语气适当
- [ ] 详细程度匹配受众
- [ ] 行话已最小化或解释
- [ ] 格式适当
正确性:
- - [ ] 事实已核实
- [ ] 数字计算正确
- [ ] 链接有效
- [ ] 无拼写/语法错误
影响力:
- - [ ] 开头吸引注意力
- [ ] 结尾强化信息
- [ ] 行动号召清晰(如需要)
- [ ] 长度适当
针对分析
分析审查标准:
数据质量:
- - [ ] 来源可信
- [ ] 样本量适当
- [ ] 时间段相关
- [ ] 无明显数据错误
方法论:
- - [ ] 方法合理
- [ ] 假设已说明
- [ ] 局限性已承认
- [ ] 考虑了替代解释
结论:
- - [ ] 有证据支持
- [ ] 未夸大
- [ ] 置信度适当
- [ ] 不确定性已量化
可视化:
- - [ ] 图表清晰且诚实
- [ ] 坐标轴已标注
- [ ] 无误导性缩放
- [ ] 标题解释要点
可操作性:
- - [ ] 建议具体
- [ ] 权衡已解释
- [ ] 实施考虑已注明
- [ ] 后续步骤清晰
针对决策
决策审查标准:
问题定义:
- - [ ] 识别了实际问题(而非症状)
- [ ] 成功标准已定义
- [ ] 约束条件已列出
- [ ] 利益相关者已识别
考虑的选项:
- - [ ] 探索了多种替代方案
- [ ] 未遗漏明显选项
- [ ] 权衡清晰
- [ ] 每个选项已对照标准评估
偏差检查:
- - [ ] 对抗确认偏差
- [ ] 避免沉没成本谬误
- [ ] 质疑现状偏差
- [ ] 避免群体思维(如适用)
风险:
- - [ ] 所选选项的缺点清晰
- [ ] 存在缓解计划
- [ ] 必要时可回滚
- [ ] 最坏情况可接受
沟通:
- - [ ] 理由可解释
- [ ] 处理了反对意见
- [ ] 决策已记录
- [ ] 审查流程已定义
严重程度级别
批评时,对每个发现进行分类:
| 严重程度 | 行动 | 示例 |
|---|
| 关键 | 发布前必须修复 | 安全漏洞、事实错误 |
| 中等 |
时间允许时应修复 | 缺少文档、解释不清 |
|
次要 | 锦上添花 | 拼写错误、格式、可选改进 |
|
正面 | 保持 | 值得强化的良好模式 |
常见批评模式
模式1:新鲜视角
在生成和批评之间等待10分钟:
- 1. 生成输出
- 等待/咖啡休息
- 以新视角返回
- 批评
- 修改