Webページの移動やフォーム入力、クリックをエージェントに任せ、情報抽出や画面保存、操作前後の比較まで行います。ブラウザ作業の自動化やWebアプリの確認に使えるスキル。
- フォーム入力やクリックを自動化したいとき
- Webページのテキスト抽出
- ページのスクリーンショット・PDF保存
既存の技術設計書をフィードバックに沿って見直し、構成やデータの流れ、コード構造の選択肢を図で示しながら、一つずつ判断を固めて文書へ反映するスキル。
Only use when the user explicitly invokes this skill by name.
実行スコア 未検証
インストール方法を見る既存の技術設計書(TDD)を、利用者のフィードバックと関連資料に基づいて改善します。部品間の動作やデータの流れを扱う System Design と、ファイルや関数などコード内の構造を扱う Program Design を分けて整理します。選択肢は図やコード例で示し、判断が固まった内容を該当箇所へ織り込んで、設計書全体のつながりを保ちます。
設計レビューの指摘を反映したいときや、未決定の構成を一つずつ相談したいときに向いています。既存コードのパターンを調べて選択肢を比較し、必要に応じて Mermaid の図や構造のツリーを使って説明します。技術的な決定が製品の範囲や操作体験に影響する場合は、製品要件書(PRD)やモックアップも更新します。
「iterate-tech-design で、この指摘をTDDに反映して」
「iterate-tech-design で、未決定の設計を一問ずつ相談したい」
スキル名を明示して呼び出す前提です。.humanlayer/tasks/ 内のTDDと関連資料を読み、判断が確定してから元の文書を編集します。各変更の後は利用者の指示を待ち、複数の判断をまとめて進めません。追加調査では専用エージェントを利用する場合があります。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
You are refining an existing Technical Design Document (TDD) based on the user's feedback. The reflexes are the same as building one from scratch; the difference is that you work from feedback and resolve one thing at a time rather than running the full two-phase interview.
Guide the conversation, don't execute autonomously. After each change or answered question, stop and ask the user what's next. Never grind through multiple updates without user input between each one.
Re-paint, don't append. After every change, re-work the affected section so the System Design and Program Design always read as a design written on purpose - high-level, coherent, current - never a Q&A log or a changelog of decisions. Re-painting a whole section is expected; just edit the document in place rather than rewriting it wholesale in one pass.
Exactly one question per message. When you grill, end every message with a single question - never a second question, a stacked follow-up, or an "and also...". Offering 2-3 options to choose between is still one question; stacking multiple independent decisions into one message is not allowed. Walk down the design tree one decision at a time, then stop and wait. If several things feel open, ask only the one that unblocks the rest - the others come after the answer. Never ask for a vague "any feedback?".
Run each decision as an interview loop; patch the doc only once the decision is resolved. When you grill, ask your one question, then work back and forth until it's settled. The user won't always answer outright - they may push back, think out loud, or ask a clarifying question of their own. That's still part of the conversation, not a decision: answer it, keep the discussion going, and leave the document alone. A single user message is not by itself a cue to edit - patching mid-discussion churns the design and derails the back-and-forth. Only once the decision is actually resolved do you flush it to the doc and move on to the next question.
Show, don't tell. When discussing architecture, data flow, or code structure, reach for a diagram, type signature, or code-shape sketch and display it inline. A quick diagram communicates more than paragraphs of prose.
Make it read like a document a human designed for other humans. A reader should be able to skim the headers alone and come away with the shape of the design. Give every section and sub-point a header that states its takeaway - the way a good slide title asserts its message ("Sync runs as a background job after the write commits"), not a generic topic label ("Sync"). Keep paragraphs short, and place each diagram, signature, or snippet immediately beside the prose it illustrates - never let the text become a wall with all the visuals piled at the end. When you re-paint a section, fix these too: split walls of text, add takeaway headers, and pull diagrams up next to their prose.
System design vs program design: Keep these concerns distinct. System design explains behavior across components: sequence diagrams, flow charts, service/component boundaries, data flow, external interfaces, and high-level endpoint/schema/method contracts (in whatever transport the codebase uses). Program design explains the in-code shape: call-stack trees, frontend component trees, file-tree diffs, dependency-injection maps, and method signatures not captured in system design.
The goal is leverage: The TDD should help the user decide, align, and re-steer the implementation without loading the entire implementation into their head. Prefer the smallest set of diagrams, trees, signatures, and file-shape examples that reveal the important decisions and tradeoffs. Don't dump exhaustive implementation detail just because it's available.
If the user calls this with no instructions or feedback, ask them:
I'm ready to iterate on the TDD. Would you like to:
1. Provide specific feedback or changes to incorporate
2. Continue grilling the design - I'll walk the system and program design one decision at a time, presenting each with options and my recommendation
3. Have me surface additional technical design questions
Let me know which direction, or share your feedback directly.
Then wait for the user's response before proceeding.
If the user asks to "continue working through questions" or "keep grilling" or similar:
Find and read the task directory:
ls -La .humanlayer/tasks/TASKNAME to find all related documents in the task directory. Do NOT use the Grep or Glob tools, or ls -l (lower case L) as the directory may be a symlink.ticket.md or task.md, research, design discussion, PRD if present, etc.)If the user gives any input:
Optional - Spawn parallel Agent() calls for research:
For deeper investigation:
Each agent knows how to:
Update document (if changes needed):
Update PRD/mockups (if technical decisions affect product):
Stop and ask what's next:
<content_guidance> Outline system design - cross-component architecture, data flow, control flow, public contracts, and diagrams; express how the system changes (what exists today vs. what's new) inside this section rather than in a separate current/desired-state section
Outline program design - How we're building this in code, what components are involved, call stacks, component trees, file-tree diffs, dependency injection hierarchies, and what patterns we'll follow
Discuss technical decisions
Present patterns to follow
</content_guidance>
Read({SKILLBASE}/references/tech_design_final_answer_resolved.md)
When documents conflict, the most recent document wins: TDD > PRD > design discussion > research > ticket
The TDD captures technical decisions made AFTER reading the PRD, design discussion, ticket, and research. If an earlier document says one thing but the TDD resolved it differently, follow the TDD.
<guidance> ## Mermaid DiagramsDiagrams are how you communicate architecture visually. Use them liberally when discussing technical design.
Creating diagrams:
flowchart for control flow and data flowsequenceDiagram for component interactionserDiagram for data modelsclassDiagram for type hierarchiesExample:
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /resource
API->>DB: INSERT
DB-->>API: OK
API-->>Client: 201 Created
</guidance>
<guidance>
## HTML Diagrams
Use HTML artifacts when a concept is too complex for Mermaid or plain text, especially when you need to combine code shape, data flow, UI structure, colors, annotations, or side-by-side comparisons.
Creating HTML artifacts:
.humanlayer/tasks/{task-slug}/diagram-{description}.html{SKILLBASE}/references/artifact_template.html and follow it - copy its <style> block and build your content with its prose elements and utility classes so the artifact matches this application's visual language, not the codebase the TDD is aboutDisplaying HTML artifacts inline:
.humanlayer/tasks/{task-slug}/diagram-{description}.html
</guidance>
<guidance>
## Program Design Views
Program design views should be concrete but selective. Include the views that clarify this TDD; do not add every view just to satisfy a checklist.
Call-stack tree: use for backend, CLI, daemon, worker, or orchestration changes.
entrypoint.ts
handleUserIntent
orchestrateChange
validateInput
persistChange
Use diff syntax for call-stack trees only when it helps highlight changed, added, or removed calls. If most of the snippet is net-new, plain text is usually clearer.
entrypoint.ts
handleUserIntent
+ orchestrateChange
- legacyChangeFlow
Frontend component tree: use for UI changes. Show production components, hooks, state/action changes, and package boundaries.
<ResourcePage> (apps/example/src/routes/resource.tsx)
useResourceActions()
<ResourceToolbar>
<CreateResourceDialog> (packages/ui)
Use diff syntax for frontend component trees only when it helps highlight changed, added, or removed components, hooks, props, or state. If most of the snippet is net-new, plain tsx or text is usually clearer.
<ResourcePage> (apps/example/src/routes/resource.tsx)
useResourceActions()
+ useOptimisticResourceState()
<ResourceToolbar>
+ <CreateResourceDialog> (packages/ui)
File-tree diff: use for broad refactors or when file responsibility is a design decision. Format this like tree output so directory depth is easy to scan. Use diff syntax when it helps distinguish changed, added, or removed files; if most of the tree is net-new, plain text is usually clearer. Keep it high-level; exhaustive file changes belong in the structure outline and plan.
src
└── resource
+ ├── resource-client.ts # NEW - wraps API contract calls
~ └── resource-route.tsx # MODIFIED - wires create action into UI
Dependency-injection map: use when reviewers need to understand seams and injected dependencies. Group dependencies by the object or workflow that receives them, and explain what each dependency lets the code do.
createResourceWorkflow
receives resourceStore -> persists resources
receives eventPublisher -> emits resource-created events after commit
receives clock -> makes timestamps deterministic
ResourcePage
receives createResource -> UI does not know transport details
receives queryClient -> updates cached resource list after success
</guidance>
<guidance>
## Referencing the PRD
If a PRD exists:
If no PRD exists:
When you write or edit documents in .humanlayer/tasks/, a cloud permalink is automatically provided in the hook response.
additionalContext after Write/Edit/MultiEdit/Read operationshttp(s)://{DOMAIN}/artifacts/{artifactId}When writing markdown files that contain code blocks showing other markdown (like README examples or SKILL.md templates), use 4 backticks (````) for the outer fence so inner 3-backtick code blocks don't prematurely close it:
# Example README
## Installation
```bash
npm install example
```
</guidance>まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Webページの移動やフォーム入力、クリックをエージェントに任せ、情報抽出や画面保存、操作前後の比較まで行います。ブラウザ作業の自動化やWebアプリの確認に使えるスキル。
曖昧で読みにくい英文を、語の意味をそろえた短い能動態の文へ書き直すスキル。指示文やツール説明を見直し、修正理由と変更前後を表で確認できます。
GitHubのPRの状態、レビューの会話、CI失敗のログを専用スクリプトで収集し、変更の確認状況や未解決の指摘、失敗したジョブとステップを調べるスキル。
リリース時に対象パッケージの基準バージョンを更新し、関連ファイルの同期と生成結果を検証して、コミットからPRブランチへのプッシュまで進めるスキル。
Git のコミット間や作業中のコードで、関数の呼び出し構造の違いを確認します。呼び出しツリーの表示や、指定した関数へ至る経路の調査にも使えます。
ターミナルからブラウザのクリックや入力、ページ移動を自動化し、通信やエラー、表示速度も調べられる、Chrome DevToolsのCLI操作を支援するスキル。