把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
文档
ia-document-review
试用把脑暴、计划、规范、ADR 按结构标准过一遍,标出缺口、不清与冗余。
它能做什么
读取脑暴、计划或规范类文档,按四个维度评分:清晰度、完整性、具体性、YAGNI。根据正文内容自动激活对应视角(产品、设计、安全、范围守门、对抗式),把发现的问题先呈现出来;小问题自动修,结构性改动先问再改。对面向陌生读者的自含型文档(如上手指南),可派一个零上下文子代理模拟首读,揪出作者没注意到的歧义。所有改动以内联方式写回原文档,不生成单独审查文件。
什么时候用它
- 脑暴稿定稿后、转入计划之前
- 计划或规范交付实现之前再过一遍
- 在 ADR 里找出未声明的假设与单点风险
- 上手文档交付前做一次零上下文首读测试
技能文档
Document Review
Improve brainstorm or plan documents through structured review.
Step 1: Get the Document
If a document path is provided: Read it, then proceed to Step 2.
If no document is specified: Ask which document to review, or look for the most recent brainstorm/plan in docs/brainstorms/ or docs/plans/.
Step 2: Assess
Read through the document and ask:
- What is unclear?
- What is unnecessary?
- What decision is being avoided?
- What assumptions are unstated?
- Where could scope accidentally expand?
- Is this technically feasible with the current architecture?
- Are there security implications in what's proposed?
These questions surface issues. Note findings without fixing yet.
Step 3: Activate Review Lenses
Based on the document's content, activate specialized review perspectives. Scan for signals and apply matching lenses:
| Lens | Signals | What it checks |
|---|---|---|
| Product | User-facing features, customer language, market claims, scope decisions | Problem framing, value proposition clarity, whether scope matches stated goals |
| Design | UI/UX references, user flows, wireframes, interaction descriptions | Flow completeness, interaction gaps, accessibility considerations |
| Security | Auth/authorization, API endpoints, PII, payments, tokens, encryption | Auth model gaps, data exposure risks, missing threat considerations |
| Scope guardian | Multiple priority tiers (P0/P1/P2), large requirement count (>8), stretch goals | Scope creep, premature abstractions, features disguised as requirements |
| Adversarial | >5 distinct requirements, explicit architectural decisions, high-stakes domains | Unstated assumptions, optimistic estimates, single points of failure, missing failure modes |
Activate a lens when ANY of its signals match. Most documents trigger 1-2 lenses; brainstorm notes may trigger none. When a lens is active, weave its checks into the assessment and evaluation steps rather than running it as a separate pass.
Step 4: Evaluate
Score the document against these criteria:
| Criterion | What to Check |
|---|---|
| Clarity | Problem statement is clear, no vague language ("probably," "consider," "try to") |
| Completeness | Required sections present, constraints stated, open questions flagged |
| Specificity | Concrete enough for next step (brainstorm → can plan, plan → can implement) |
| YAGNI | No hypothetical features, simplest approach chosen |
If invoked within a workflow (after /ia-brainstorm or /ia-plan), also check:
- User intent fidelity -- Document reflects what was discussed, assumptions validated
Step 5: Identify the Critical Improvement
Among everything found in Steps 2-4, does one issue stand out? If something would significantly improve the document's quality, this is the "must address" item. Highlight it prominently.
Step 6: Make Changes
Present findings, then:
- Auto-fix minor issues (vague language, formatting) without asking
- Ask approval before substantive changes (restructuring, removing sections, changing meaning). Ask via AskUserQuestion (Claude Code; load with ToolSearch
select:AskUserQuestionif not loaded) or request_user_input (Codex); fall back to numbered options in chat. Render the finding per the contract below in visible text in the same turn before the question fires -- on harnesses where the question opens a modal it covers the preceding text, so a question stem that carries no decision content strands the reader. - Update the document inline
Rendering a finding for decision
The reader deciding on a finding does not have the document open and has not memorized its identifiers. This binds the approval track only (step 2 above) -- findings routed to auto-fix in step 1 skip it. Any finding presented for approval is rendered in this order:
- Consequence if unchanged -- one sentence: what goes wrong, and for whom. No identifier the reader would have to look up.
- Recommended action, marked unmistakably.
- Change intent -- one sentence.
- Mechanism -- at most two sentences, carrying at most two opaque anchors (defined below).
Anything deeper (file tracing, multi-hop call paths, competing call sites) is not printed; offer it in one closing line. Budget: two inline code spans per sentence, no diff blocks, raw code blocks only for genuinely additive content of five lines or less.
Classify opaque anchors by what they do, not by vocabulary:
- Navigation anchors (IDs the document itself defines) keep the ID and gain a short handle at first mention --
R6 (suppress peer panels on low-stakes calls), never a bareR6. - Provenance anchors (ticket IDs, PR numbers) get a role gloss only when the referenced event changes the decision; otherwise move them to the trace.
- Mechanism anchors (function, file, line names) translate to the role they play in the decision -- "the terminal-failure predicate" -- keeping the exact symbol only when precise scope is what the decision turns on.
A finding whose only route to a decision is "go read the section" has failed, however correct it is.
Simplification Guidance
Simplification is purposeful removal of unnecessary complexity, not shortening for its own sake.
Simplify when:
- Content serves hypothetical future needs, not current ones
- Sections repeat information already covered elsewhere
- Detail exceeds what's needed to take the next step
- Abstractions or structure add overhead without clarity
Don't simplify:
- Constraints or edge cases that affect implementation
- Rationale that explains why alternatives were rejected
- Open questions that need resolution
Step 7: Reader Test (Optional)
For standalone documents that must be self-contained (onboarding guides, ADRs, external-facing docs), dispatch a zero-context sub-agent to simulate a first-time reader. The sub-agent has no conversation history — it sees only what a future reader would see.
How to run the test:
- Predict 5-10 reader questions from the document's stated goals — one per major section or decision. Mix three kinds:
- Concrete retrieval: "What command sets up the dev environment?"
- Decision rationale: "Why did we pick X over Y?"
- Ambiguity probe: "Could a reader interpret in more than one way?"
- Dispatch a fresh sub-agent with the document attached and the questions. No prior context, no session history.
- Compare the sub-agent's answers against author intent. Also ask the sub-agent directly: "What feels ambiguous? What prior knowledge does this assume? Are there internal contradictions?"
Interpret results:
- Correct, confident answers → document is self-contained for that question.
- Wrong answer with high confidence → document actively misleads. Highest-priority fix.
- Hedged or "insufficient information" → the document has a gap the author didn't notice. Fill it.
- Sub-agent flags ambiguity the author didn't intend → reword for precision.
Skip for context-dependent docs (brainstorm notes, plan files, internal working docs) where the reader will always have prior context. The sub-agent test only adds value when the real reader has no other channel.
Step 8: Offer Next Action
After changes are complete, ask:
- Refine again - Another review pass
- Review complete - Document is ready
Iteration Guidance
After 2 refinement passes, recommend completion--diminishing returns are likely. If the user wants to continue, allow up to 4 passes total. After 4, stop and report "review converged -- further changes require new direction." Do not continue past 4 even on user request without a fresh framing.
Withdraw what earlier answers already settled. On pass 2 and later, judge each remaining finding against the decisions already made this session before presenting it. If an earlier answer resolves or contradicts it, do not re-raise it: say in one line what the finding was and which answer retired it, then move on, and record it as withdrawn in the summary with the retiring decision named. The distinction that matters -- a withdrawal caused by a user decision (a skip, a defer, an asserted fact) is durable and suppresses the finding on every later pass; a withdrawal caused by a pending fix is provisional, because the fix can fail or land in the wrong place, so a finding that regenerates on the next pass must resurface rather than stay suppressed. Evaluate lazily, at the moment the finding would have been presented; do not rescan after every answer. (Code review carries the same rule -- see ia-code-review on reconciling prior discussions.)
Return control to the caller (workflow or user) after selection.
Constraints
- Fix targeted sections, don't rewrite the whole document. If the structure is fundamentally broken, surface the structural problem and ask for permission to restructure.
- Flag missing sections in the review, but don't add them. The user decides what to include.
- Keep changes minimal. If a paragraph needs tightening, tighten it. Don't expand scope.
- Review inline. No separate review files or metadata sections.
Success Criteria
- Document read and scored on all four quality criteria
- Relevant review lenses activated and checks applied
- Critical improvements identified with specific suggestions
- User presented with clear next-action choice (refine or complete)
- Revised document saved if changes were approved
相关技能
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
为自然搜索排名提供站点审计、内容撰写与竞品分析。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
iliaal 的更多技能
浏览全部技能Laravel 与 PHP 8.4 框架级开发指南:架构、Eloquent、迁移、队列、测试,基于真实踩坑编写。
先核对需求规范再评代码质量,输出按严重度排序的发现,并可切换多 agent 深度评审。
围绕可复现失败信号展开的 7 步根因调试流程,先有失败用例再下修复。
在动手写代码之前,先拿到一份通过评审的设计文档。
编写能验证真实行为的测试:每个用例聚焦单一行为,优先使用真实对象,覆盖静默失败路径。
Tailwind CSS v4 模式速查:CSS 优先配置、@theme 设计令牌、组件变体、v3 迁移修复。