SuperAPI AI Directory

intent-critique

Coding & development

View repository

Updated 10-15 17:17

About this skill

Intent Critique

Critical review of design quality. Does not check format, only checks "should it be designed this way".

Core Question

Each critique answers one question:Can this design be simpler?

Anti-Accretion Rule: Net Reduction

After critique, the total number of lines must be ≤ before. This is a hard constraint, not a suggestion.

Critique allows only 4 operations:

Operation Description Example
Delete Remove a section or content Delete the unused plugin system design
Merge Combine multiple sections into one Merge Error Handling into API Constraints
Split Move to a separate intent Split §13-§18 from ash into ash/agentic-patterns
Simplify Express the same constraint with fewer lines Compress a 5-line description into 2 lines

Prohibited:

  • ❌ Introducing new concepts or new sections
  • ❌ Adding new analysis frameworks
  • ❌ Expanding the scope of existing sections

If something is found to be missing, output a gap flag, do not fill it directly:

Gap: intent 没有说明 failure handling。建议在下一轮 interview 中讨论。

If new content really needs to be added, it must:

  1. First delete an equal or greater amount of old content
  2. Have explicit user agreement
  3. The final line count must still be ≤ the initial line count

Inspection Dimensions

Dimension Signal Question
Over-engineering Complex configuration systems, plugin architectures, multi-layer abstractions "Is this complexity driven by current requirements?"
YAGNI "May be needed in the future", "reserve extension points", "support multiple..." "If this is deleted, will the MVP still work?"
Premature abstraction An interface with only one implementation, a utility function used only once "Is this layer of abstraction really needed now?"
Boundary issues Large amounts of data passing between modules, circular dependencies, unclear responsibilities "Is this boundary drawn naturally here?"
Hidden complexity Descriptions that seem simple but are difficult to implement "What is the implementation complexity behind this sentence?"

Workflow

/intent-critique [path]
        ↓
┌───────────────────┐
│  读取 Intent 文件  │
│  理解设计意图      │
└─────────┬─────────┘
          ↓
┌───────────────────┐
│  逐维度分析        │
│  识别可疑设计      │
└─────────┬─────────┘
          ↓
┌───────────────────────────────────────┐
│  对每个发现,与用户讨论:              │
│                                       │
│  展示问题 + 简化建议                   │
│  AskUserQuestion:                     │
│  - 接受简化                           │
│  - 保留原设计(说明理由)              │
│  - 跳过此项                           │
└─────────┬─────────────────────────────┘
          ↓
┌───────────────────┐
│  汇总 critique     │
│  可选更新 Intent   │
└───────────────────┘

Usage

# 审查指定 Intent
/intent-critique src/core/intent/INTENT.md

# 审查当前目录
/intent-critique

# 只分析不修改
/intent-critique --dry-run

Execution Steps

0. Record the initial line count

The first step must be counting. Before any analysis:

wc -l INTENT.md
# 记录为 before_lines

Record before_lines , to be used at the end of critique to verify net reduction.

0.5 Convergence Check (automatically triggered when modifications ≥ 3)

Check the number of commits to INTENT.md in git log. If ≥ 3, run convergence before the normal critique:

4-step convergence check:

  1. Anchor trace — For each section ask: can it be traced back to an anchor?

    • Cannot → mark as deletion candidate
  2. Implementation match — For each section ask: is there a corresponding implementation?

    • Has implementation → keep
    • No implementation and not in the plan → mark as deletion candidate
  3. Constraint vs Analysis — For each section ask: is this a constraint or analysis?

    • "Three Dimensions of Chat Experience" = analyze → streamline or move to appendix
    • "INV-1: LLM is a Pure Function" = constraint → keep
  4. Dedup with sub-intents — is there overlap between a section and a sub-intent?

    • Yes → delete it, leave a link

Convergence output format:

## Convergence Check (triggered: 5 commits since last convergence)

### Anchor trace failures
- § Agentic Pattern Zones — cannot trace to "ASH 是 shell 语言"
- § Echo Deprecation — migration plan, not core spec

### Unimplemented sections
- § Template Registry — no code, not in plan

### Analysis (not constraint)
- § AI Agent 适配性分析 — 40 lines of analysis, 0 constraints

### Duplicated in sub-intents
- § Boot Sequence — duplicates kernel/bootloader INTENT.md §2

→ Candidates for removal: 4 sections, ~280 lines

After convergence finishes, proceed to the normal critique flow.

0.7 Read the Records index

If records/INDEX.md exists, first read the index to understand the full decision context:

  • Which interviews made which decisions
  • What review opinions other AIs (ChatGPT, Gemini, etc.) have given
  • Previous critique records

Read relevant record files in depth as needed. This solves context asymmetry — even if the original discussion happened on another AI, there is a complete record here.

0.8 Devil's Advocate (independent evaluation)

Start asubagent without the current discussion context, and give it only:

  • The full text of INTENT.md
  • The Anchor declaration

Have it independently answer 3 questions:

  1. What is the biggest design risk of this intent?
  2. Which sections look like analysis rather than constraints?
  3. If only 3 sections could be kept, which would you keep?

Use the devil's advocate output as additional input for the critique; do not adopt it directly, but use it to cross-validate your own judgment.

1. Read and understand the Intent

First read the Intent in full and understand:

  • What problem is to be solved
  • Core design decisions
  • Main components and boundaries

2. Scan dimension by dimension

Over-engineering signals

检查是否存在:
- 可配置的部分 > 3 个
- 插件/扩展机制
- 多于 2 层的抽象
- "支持多种 X"的描述
- 复杂的状态机

YAGNI signals

检查是否存在:
- "未来可能..."
- "预留..."
- "方便以后..."
- 只在"高级场景"使用的功能
- 没有具体 use case 的抽象

Premature abstraction signals

检查是否存在:
- 只有一个实现的接口/协议
- 只用一次的公共函数
- 只有一个子类的基类
- 不必要的工厂/策略模式

Boundary problem signals

检查是否存在:
- 模块间传递 > 5 个参数
- A 依赖 B,B 也依赖 A
- 一个改动需要同时改多个模块
- 职责描述模糊或重叠

3. Generate the findings list

For each finding, prepare:

  • Location: the specific section in the Intent
  • Problem: a brief description of the problem
  • Simplification suggestion: a specific alternative
  • Risk: the cost that simplification may bring

4. Interactive discussion

Use AskUserQuestion for each finding:

发现 1/N: Over-engineering

Section: ## 插件系统
问题: 定义了完整的插件加载、生命周期、沙箱机制,但目前只有 2 个内置功能。

简化建议: 删除插件系统,直接硬编码这 2 个功能。
未来需要时再加。

风险: 如果很快需要第三方插件,要重新设计。

---
AskUserQuestion:
- question: "是否接受这个简化?"
- options:
  - "接受简化" - 删除插件系统设计
  - "保留原设计" - 请说明具体场景
  - "跳过" - 暂不决定

5. Summary report

# Intent Critique Report

## 文件: src/core/intent/INTENT.md

## 统计
- 发现问题: 5
- 接受简化: 3
- 保留原设计: 1
- 跳过: 1

## 已接受的简化

### 1. 删除插件系统
- 原设计: 完整插件架构
- 简化为: 硬编码 2 个功能
- 影响 sections: ## 插件系统, ## 架构

### 2. 合并配置层
...

## 保留的设计

### 1. 多数据源支持
- 原因: 用户明确表示 v1.1 需要
- 建议: 在 Intent 中标注具体 timeline

## 跳过的项目
...

## 下一步
- [ ] 更新 Intent 文件(如果选择自动更新)
- [ ] 运行 /intent-validate 检查格式
- [ ] 运行 /intent-review 重新审批受影响的 sections

6. Optional: update the Intent

If the user agrees, automatically update the Intent:

  • Delete the sections that were simplified away
  • Add simplification notes to the change log
  • Mark the affected sections back to draft

7. Verify net reduction (required)

After updating the Intent, immediately verify:

wc -l INTENT.md
# 记录为 after_lines

Decision rule:

if after_lines > before_lines:
    ❌ 拒绝保存。回滚更改。
    报告:
      before: {before_lines} lines
      after:  {after_lines} lines
      delta:  +{after_lines - before_lines} lines
      "Critique must net-reduce. Review changes and remove additions."

if after_lines <= before_lines:
    ✅ 保存成功。
    报告:
      before: {before_lines} lines
      after:  {after_lines} lines
      reduced: {before_lines - after_lines} lines ({percentage}%)

8. Save the Critique record

Save the complete critique report to records/critique-{date}.md, update records/INDEX.md:

| 2026-02-06 | critique | — | Convergence + critique, removed §13-§15 (-180 lines), kept §2 |

The record includes: convergence results, devil's advocate output, the decision for each finding, and the net line count change.

Discussion techniques

Ways to ask questions

Good questions:

  • "If X is deleted, can the system still work?"
  • "Is there a specific scenario that needs X?"
  • "Is X's complexity worth it?"

Avoid:

  • Preset answers
  • Overly theoretical discussion
  • Ask multiple unrelated questions at the same time

When to accept "hold"

When the user provides:

  • A specific usage scenario
  • A clear timeline ("needed next month")
  • External constraints ("required by the partner")

Record the reason; it is recommended to also note it in the Intent.

Working with other tools

intent-interview → intent-validate → intent-critique → intent-review
                                          ↑
                                     可独立调用
                                     任何时候想反思设计时

What not to do

  • ❌ Do not check format (the responsibility of intent-validate)
  • ❌ Do not check consistency (the responsibility of intent-sync)
  • ❌ Do not mark approval status (the responsibility of intent-review)
  • ❌ Do not make decisions automatically (must discuss with the user)