Deep Socratic interview for interior design projects — gathers crystal-clear design requirements with ambiguity scoring before executing the design workflow. Use when starting a new design project, when requirements are vague, or when the user says "interview", "hỏi kỹ", "tư vấn chi tiết", "phỏng vấn thiết kế".
Adapts the deep-interview methodology (Socratic questioning + mathematical ambiguity gating) specifically for interior design projects. Instead of generic software dimensions, scores clarity across 6 design-specific dimensions. Instead of bridging to code execution, bridges to the pandaConcept design workflow (/design-consult → /mood-board → /generate-prompt → /render).
Jumping straight to /generate-prompt or /render with vague requirements ("làm phòng khách đẹp") produces wasted renders and prompt iterations. This skill ensures crystal-clear design intent BEFORE spending API credits on rendering.
brief.md is emptynotes.md shows repeated mismatches/design-consult or /generate-prompt directly/edit-design/style-guide/style-guide internally when asking style-related questions — offer specific style options, not open-ended "what style?"$ARGUMENTS!ls projects/${PROJECT_NAME}/brief.md 2>/dev/null && echo "HAS_BRIEF=true" || echo "HAS_BRIEF=false"
!ls projects/${PROJECT_NAME}/rooms.md 2>/dev/null && echo "HAS_ROOMS=true" || echo "HAS_ROOMS=false"
!ls projects/${PROJECT_NAME}/style-config.yaml 2>/dev/null && echo "HAS_STYLE_CONFIG=true" || echo "HAS_STYLE_CONFIG=false"
!ls projects/${PROJECT_NAME}/notes.md 2>/dev/null && echo "HAS_NOTES=true" || echo "HAS_NOTES=false"
!ls projects/${PROJECT_NAME}/references/*.{jpg,jpeg,png,webp} 2>/dev/null && echo "HAS_REFERENCE=true" || echo "HAS_REFERENCE=false"
!ls projects/${PROJECT_NAME}/references/preprocessed/semantic_analysis.json 2>/dev/null && echo "HAS_SEMANTIC=true" || echo "HAS_SEMANTIC=false"
No PROJECT_NAME specified?
└── Ask which project, or create new one from .template/
HAS_BRIEF=true AND brief has content?
└── EXISTING PROJECT — read all files, pre-fill known dimensions, skip clear questions.
HAS_SEMANTIC=true?
└── Read semantic_analysis.json — pre-score Space, Style, Material dimensions from Gemini data.
This can jump ambiguity from 100% to ~40% instantly.
HAS_REFERENCE=true AND HAS_SEMANTIC=false?
└── Suggest running /preprocess-room first — Gemini Vision analysis dramatically reduces interview rounds.
brief.md (if exists) — pre-fill known answers, skip already-clear dimensionsrooms.md (if exists) — know which rooms are definedstyle-config.yaml (if exists) — know if style/colors/materials are already setnotes.md (if exists) — know previous feedback to avoid repeating mistakessemantic_analysis.json (if exists) — pre-fill Space, Style, Material dimensions from Gemini datastate_write(mode="design-interview"):{
"active": true,
"current_phase": "design-interview",
"state": {
"interview_id": "<uuid>",
"project_name": "<name or null>",
"initial_idea": "<user input>",
"has_existing_brief": false,
"rounds": [],
"current_ambiguity": 1.0,
"threshold": 0.2,
"dimension_scores": {
"space": 0.0,
"style": 0.0,
"material_color": 0.0,
"function": 0.0,
"mood_lighting": 0.0,
"provider": 0.0
},
"design_entities": [],
"challenge_modes_used": [],
"pre_filled_from_brief": []
}
}
Bắt đầu phỏng vấn thiết kế. Tôi sẽ hỏi từng câu để hiểu rõ ý tưởng trước khi tạo prompt hay render. Sau mỗi câu trả lời, bạn sẽ thấy điểm clarity. Chúng ta sẽ bắt đầu workflow khi ambiguity giảm xuống dưới 20%.
Ý tưởng: "{initial_idea}" Project: {project_name or "chưa có — sẽ tạo mới"} Ambiguity: 100%
Pre-fill optimization: If existing project files already answer some dimensions (e.g., style-config.yaml has primary_style: "japandi"), pre-score those dimensions and skip questions about them. Announce what was pre-filled:
Đã đọc từ project files: style = Japandi, colors = earth tones. Sẽ tập trung hỏi những phần chưa rõ.
Repeat until ambiguity ≤ threshold OR user exits early.
| Dimension | Weight | What It Measures |
|---|---|---|
| Space Clarity | 20% | Room type, dimensions, layout, architectural features (windows, ceiling, columns) |
| Style Clarity | 25% | Design style, era, fusion preferences, style-specific vocabulary |
| Material & Color Clarity | 20% | Color palette (primary/secondary/accent), materials, textures, finishes |
| Functional Clarity | 15% | Purpose, occupants, lifestyle, budget range, furniture to keep/add |
| Mood & Lighting Clarity | 10% | Atmosphere, lighting (natural/artificial), time of day, sensory experience |
| Provider & Output Clarity | 10% | Which AI providers, quality expectations, camera angles, render count |
ambiguity = 1 - (space × 0.20 + style × 0.25 + material_color × 0.20 + function × 0.15 + mood_lighting × 0.10 + provider × 0.10)
Target the dimension with the LOWEST clarity score. Question styles per dimension:
| Dimension | Question Style | Example |
|---|---|---|
| Space | "Mô tả không gian..." | "Phòng khách khoảng bao nhiêu m²? Có cửa sổ lớn không? Trần cao hay thấp?" |
| Style | "Về phong cách..." (offer specific options from /style-guide) | "Bạn thích sự ấm cúng của Scandinavian, sự tinh tế của Japandi, hay vẻ sang trọng của Art Deco? Tôi có thể show đặc điểm từng style." |
| Material & Color | "Về chất liệu và màu sắc..." | "Bạn muốn tông màu ấm (gỗ, be, terracotta) hay lạnh (xám, trắng, xanh)? Có chất liệu nào bạn đặc biệt thích hoặc muốn tránh?" |
| Function | "Về công năng..." | "Ai sống trong nhà? Có trẻ nhỏ, thú cưng không? Cần khu vực làm việc trong phòng không?" |
| Mood & Lighting | "Về không khí..." | "Bạn muốn cảm giác gì khi bước vào phòng? Ấm cúng như quán café, thoáng đãng như resort, hay tối giản yên tĩnh?" |
| Provider | "Về output..." | "Bạn muốn render với provider nào? Cần bao nhiêu góc chụp? Budget cho API calls?" |
Important: When asking about style, always reference /style-guide internally and present specific options with brief descriptions — never ask open-ended "bạn muốn style gì?"
Use AskUserQuestion:
Round {n} | Focusing: {weakest_dimension_vi} | Ambiguity: {score}%
{question}
Provide contextually relevant clickable options + free-text.
After each answer, score all 6 dimensions (0.0-1.0):
Scoring criteria per dimension:
/style-guide?Track design entities across rounds (analogous to ontology in deep-interview):
Entity types for interior design:
furniture: sofa, dining table, bookshelf, bed...material: marble, oak wood, linen, brass...color: specific colors with hex codesstyle-element: specific style keywords (e.g., "tatami", "shiplap", "arches")spatial-feature: window, column, ceiling beam, alcove...Track stability across rounds — converging entities = the design vision is solidifying.
Round {n} complete.
| Dimension | Score | Weight | Weighted | Gap |
|-----------|-------|--------|----------|-----|
| Space | {s} | 20% | {w} | {gap or "Clear"} |
| Style | {s} | 25% | {w} | {gap or "Clear"} |
| Material & Color | {s} | 20% | {w} | {gap or "Clear"} |
| Function | {s} | 15% | {w} | {gap or "Clear"} |
| Mood & Lighting | {s} | 10% | {w} | {gap or "Clear"} |
| Provider & Output | {s} | 10% | {w} | {gap or "Clear"} |
| **Ambiguity** | | | **{score}%** | |
**Design palette:** {entity_count} elements | Stability: {ratio}%
{score <= threshold ? "Clarity đạt! Sẵn sàng bắt đầu design workflow." : "Câu tiếp sẽ hỏi về: {weakest_vi}"}
Bạn nói thích {style}, nhưng mô tả của bạn nghe giống {alternative_style} hơn. Hãy xem sự khác biệt: {style} có {characteristics_A}, còn {alternative} có {characteristics_B}. Bạn nghiêng về bên nào?
Uses /style-guide data to challenge — not random, but evidence-based from the style catalog.
Nếu giảm budget một nửa, phần nào bạn sẽ giữ nguyên và phần nào sẵn sàng thay đổi? Điều này giúp tôi hiểu đâu là yếu tố quan trọng nhất.
Chúng ta đã nói về nhiều chi tiết. Nhưng nếu chỉ chọn MỘT từ để mô tả căn phòng lý tưởng, từ đó là gì? (ấm cúng? sang trọng? tự nhiên? thoáng đãng?)
When ambiguity ≤ threshold:
If no project exists, create from template:
cp -r projects/.template/ projects/<project-name>/
brief.mdFill the brief template with interview findings:
rooms.mdFor each room discussed:
style-config.yamlFill with concrete values:
primary_style, secondary_stylecolor_palette with hex codesmaterials listlighting mood and time of dayphotography settingsproviders preferencesSave full interview record to .omc/specs/design-interview-{slug}.md:
# Design Interview Spec: {project_name}
## Metadata
- Interview ID: {uuid}
- Rounds: {count}
- Final Ambiguity: {score}%
- Generated: {timestamp}
## Clarity Breakdown
| Dimension | Score | Weight | Weighted |
|-----------|-------|--------|----------|
| Space | {s} | 20% | {w} |
| Style | {s} | 25% | {w} |
| Material & Color | {s} | 20% | {w} |
| Function | {s} | 15% | {w} |
| Mood & Lighting | {s} | 10% | {w} |
| Provider & Output | {s} | 10% | {w} |
| **Ambiguity** | | | **{score}%** |
## Design Vision
{crystal-clear summary of the design intent}
## Design Palette (Entities)
| Element | Type | Details | Source Round |
|---------|------|---------|-------------|
| {name} | {type} | {description} | Round {n} |
## Assumptions Exposed
| Assumption | Challenge | Resolution |
|------------|-----------|------------|
| {assumption} | {how challenged} | {what decided} |
## Interview Transcript
<details>
<summary>Full Q&A ({n} rounds)</summary>
...
</details>
Present execution options via AskUserQuestion:
Spec hoàn tất (ambiguity: {score}%). Project files đã được cập nhật. Bạn muốn tiếp tục thế nào?
/design-consult → /mood-board → /generate-prompt → /render
Action: Invoke /design-consult with the project name. The brief, rooms, and style-config are already filled — design-consult will use them to produce a comprehensive design brief, then chain to mood-board and prompt generation.
Best for: First-time renders, complex multi-room projects.
/generate-prompt → /render
Action: Invoke /generate-prompt with style + room + provider from the interview spec.
Best for: When interview already covered everything in detail, single-room projects.
/mood-board → /generate-prompt → /render
Action: Invoke /mood-board with style + room from interview.
Best for: When client wants to "feel" the space before committing to renders.
/edit-design → /render
Action: Invoke /edit-design with reference images from projects/<name>/references/.
Best for: When interview was about modifying an existing design (reference images provided).
Go back to Phase 2 for more clarity.
Save the project files only. User will return later to render.
IMPORTANT: On execution selection, invoke the chosen skill via Skill(). The design-interview is a requirements agent, not a rendering agent.
/design-consult — the natural next step after interview. Takes the filled brief.md and produces a comprehensive design brief./mood-board — when the client wants atmospheric visualization before rendering./generate-prompt — skip straight to prompts when all details are crystal clear./render — final execution step, sends prompts to AI providers./style-guide — referenced internally during style questions. Essential for offering informed style options./edit-design — if the interview reveals this is an edit (reference image + changes), redirect here./refine — after first renders, if results need iteration./compare-models — after multi-provider renders, compare outputs.style-config.yaml already has primary_style: "japandi", don't ask about style. Pre-fill and move on./style-guide.