Skip to main contentworkstation-layout-designer
Workstation and workspace layout design skill with ergonomic optimization.
الانتقال إلى التثبيت التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
يتجاوز الأمر المباشر Prompt المخصّص للمراجعة. افحص المصدر قبل تشغيله.
npx skills add https://github.com/a5c-ai/babysitter --skill workstation-layout-designerيبقى الأمر في سطر واحد. مرّر أفقيًا لمراجعته كاملًا قبل النسخ.
تفضّل نسخة محلية؟ نزّل الملفات المتاحة حاليًا لدى SkillsMP.
المهن ذات الصلةSOC
استنادا إلى تصنيف SOC المهني
المزيد من هذا المستودع
Reference for querying the Atlas knowledge graph through its MCP tools — the SECONDARY enrichment/comparison layer that adds best-practice context to systems you have ALREADY scanned from your real sources (`az`, repos, dirs). Use when you need to look up nodes, edges, kinds, clusters, stats, or wiki pages in Atlas to compare against your real inventory. (atlas graph, query atlas, atlas mcp, search the graph, graph neighbors, atlas record, atlas kinds, enrichment layer)
Atlas turns your STATED NEED into a real systems atlas by SCANNING your actual sources (Azure via `az`, git repos, local dirs) and process/data mining them, THEN enriching against the Atlas knowledge graph. Use this skill when asked to inventory/map your real systems, scan your cloud + repos + directories, mine the real processes or data they contain, or collect their real constraints/gotchas. (atlas, scan my systems, inventory our azure account, map my repos, real systems atlas, process mining, data mining, collect nuances, system discovery)
assimilate-popular-workflows This skill should be used when the user asks to "find skills in the wild", "assimilate popular workflows", "discover SKILL.md files in repos", "research external skills", "find workflow patterns", "survey the skill landscape", "what skills exist out there", or wants to investigate public repositories for extractable processes, babysitter plugins, and reusable procedural insights. Searches GitHub for SKILL.md files, classifies repos by archetype, and maintains structured research under docs/reference-repos/.
| name | workstation-layout-designer |
| description | Workstation and workspace layout design skill with ergonomic optimization. |
| allowed-tools | Bash(*) Read Write Edit Glob Grep WebFetch |
| metadata | {"author":"babysitter-sdk","version":"1.0.0","category":"ergonomics","backlog-id":"SK-IE-023"} |
| graph | {"domains":["domain:industrial-engineering"],"skillAreas":["skill-area:statistical-analysis","skill-area:organizational-design","skill-area:data-analysis"],"roles":["role:operations-analyst","role:research-engineer"]} |
workstation-layout-designer
You are workstation-layout-designer - a specialized skill for designing ergonomic workstations and workspace layouts.
Overview
This skill enables AI-powered workstation design including:
- Work zone layout (primary, secondary, tertiary)
- Tool and material placement optimization
- Visual field considerations
- Lighting and visibility analysis
- Work surface height recommendations
- Seated vs standing workstation design
- Adjustable workstation specification
- Layout drawing generation
Capabilities
1. Work Zone Layout Design
dataclasses dataclass
typing ,
math
:
name:
frequency:
size:
weight:
requires_precision: =
():
zones = {
: {
: ,
: forward_reach * ,
: ,
: ,
:
},
: {
: ,
: forward_reach * ,
: ,
: ,
:
},
: {
: ,
: forward_reach * ,
: ,
: ,
:
},
: {
: ,
: forward_reach * ,
: ,
: ,
:
}
}
zones
():
assignments = {zone: [] zone zones}
item items:
item.frequency == :
assignments[].append(item)
item.frequency == :
assignments[].append(item) item.requires_precision \
assignments[].append(item)
item.frequency == :
assignments[].append(item)
:
assignments[].append(item)
assignments
from
import
from
import
List
Dict
import
@dataclass
class
WorkItem
str
str
tuple
float
bool
False
def
design_work_zones
forward_reach: float, shoulder_width: float
"""
Design work zone layout based on anthropometric data
"""
"primary"
"description"
"Most frequent use - within easy reach"
"radius"
0.4
"arc"
30
"height_optimal"
"elbow height +/- 4 inches"
"items"
"Continuous and frequent use items"
"secondary"
"description"
"Occasional use - within normal reach"
"radius"
0.65
"arc"
60
"height_optimal"
"shoulder to elbow height"
"items"
"Occasional use items"
"tertiary"
"description"
"Infrequent use - maximum reach"
"radius"
0.9
"arc"
90
"height_optimal"
"any comfortable height"
"items"
"Rarely used items"
"storage"
"description"
"Storage only - outside normal work"
"radius"
1.2
"arc"
180
"height_optimal"
"not critical"
"items"
"Storage, rarely accessed"
return
def
assign_items_to_zones
items: List[WorkItem], zones: dict
"""
Assign work items to appropriate zones
"""
for
in
for
in
if
"continuous"
"primary"
elif
"frequent"
"primary"
if
else
"secondary"
elif
"occasional"
"secondary"
else
"tertiary"
return
2. Tool and Material Placement
def optimize_tool_placement(tools: List[WorkItem], work_area_width: float,
work_area_depth: float, dominant_hand: str = "right"):
"""
Optimize placement of tools in work area
"""
placements = []
sorted_tools = sorted(tools,
key=lambda t: ["continuous", "frequent", "occasional", "rare"].index(t.frequency))
primary_width = work_area_width * 0.4
primary_depth = work_area_depth * 0.3
x_position = 0 if dominant_hand == "right" else work_area_width
direction = 1 if dominant_hand == "right" else -1
current_x = work_area_width / 2
current_y = work_area_depth * 0.2
for tool in sorted_tools:
if tool.frequency in ["continuous", "frequent"]:
zone = "primary"
y = current_y
x = current_x
current_x += (tool.size[0] + 2) * direction
elif tool.frequency == "occasional":
zone = "secondary"
y = work_area_depth * 0.5
x = current_x
else:
zone = "tertiary"
y = work_area_depth * 0.8
x = current_x
placements.append({
"item": tool.name,
"x": round(x, 1),
"y": round(y, 1),
"zone": zone,
"orientation": "handle toward user" if tool.weight > 2 else "any"
})
return placements
3. Visual Field Design
def design_visual_layout(viewing_distance: float, task_type: str):
"""
Design layout considering visual requirements
task_type: "precision", "inspection", "monitoring", "general"
"""
visual_specs = {
"precision": {
"viewing_distance_inches": (10, 16),
"viewing_angle_down": (15, 35),
"illumination_lux": (500, 1000),
"display_tilt": "15-20 degrees toward user",
"notes": "May require task lighting and magnification"
},
"inspection": {
"viewing_distance_inches": (14, 20),
"viewing_angle_down": (15, 30),
"illumination_lux": (750, 1500),
"display_tilt": "Perpendicular to line of sight",
"notes": "Avoid glare on inspected surfaces"
},
"monitoring": {
"viewing_distance_inches": (20, 28),
"viewing_angle_down": (0, 20),
"illumination_lux": (300, 500),
"display_tilt": "Top tilted slightly away",
"notes": "Displays within 30 degrees of center"
},
"general": {
"viewing_distance_inches": (16, 24),
"viewing_angle_down": (0, 30),
"illumination_lux": (300, 500),
"display_tilt": "Adjustable",
"notes": "Standard office requirements"
}
}
specs = visual_specs.get(task_type, visual_specs["general"])
visual_cone = {
"optimal_cone": 15,
"comfortable_cone": 30,
"maximum_cone": 60
}
return {
"specifications": specs,
"visual_cone": visual_cone,
"layout_guidance": generate_visual_layout_guidance(specs, visual_cone)
}
def generate_visual_layout_guidance(specs, cone):
"""Generate specific layout guidance"""
return [
f"Primary displays within {cone['optimal_cone']}° of centerline",
f"Secondary displays within {cone['comfortable_cone']}° of centerline",
f"Viewing distance: {specs['viewing_distance_inches'][0]}-{specs['viewing_distance_inches'][1]} inches",
f"Display tilt: {specs['display_tilt']}",
f"Illumination: {specs['illumination_lux'][0]}-{specs['illumination_lux'][1]} lux"
]
4. Seated vs Standing Workstation
def design_workstation(task_characteristics: dict, duration_hours: float):
"""
Design workstation based on task and duration
task_characteristics:
- precision_required: bool
- force_required: bool
- mobility_required: bool
- visual_demands: str ("high", "medium", "low")
"""
recommendations = {
"posture": None,
"work_surface_height": None,
"chair_specifications": None,
"standing_mat": False,
"sit_stand_option": False
}
if task_characteristics.get('precision_required') and duration_hours > 2:
recommendations["posture"] = "seated"
recommendations["reason"] = "Precision work benefits from stable seated posture"
elif task_characteristics.get('force_required'):
recommendations["posture"] = "standing"
recommendations["reason"] = "Force tasks benefit from standing to use body weight"
elif task_characteristics.get('mobility_required'):
recommendations["posture"] = "standing"
recommendations["reason"] = "Mobility needs favor standing"
elif duration_hours > 4:
recommendations["sit_stand_option"] = True
recommendations["posture"] = "sit-stand"
recommendations["reason"] = "Extended duration benefits from posture variety"
else:
recommendations["posture"] = "seated"
recommendations["reason"] = "Default for moderate duration tasks"
if recommendations["posture"] == "seated":
recommendations["work_surface_height"] = {
"fixed": 29,
"adjustable_range": (24, 32),
"keyboard_tray": "Recommended for computer work"
}
recommendations["chair_specifications"] = {
"seat_height_range": (16, 21),
"seat_depth_range": (15, 18),
"lumbar_support": "Required",
"armrests": "Adjustable, removable preferred"
}
elif recommendations["posture"] == "standing":
recommendations["work_surface_height"] = {
"fixed": 42,
"adjustable_range": (38, 48)
}
recommendations["standing_mat"] = True
recommendations["footrest"] = "Provide for weight shifting"
else:
recommendations["work_surface_height"] = {
"adjustable_range": (24, 48),
"adjustment_type": "Electric preferred for frequent changes"
}
recommendations["chair_specifications"] = {
"type": "Height-adjustable stool with back support",
"seat_height_range": (20, 32)
}
recommendations["standing_mat"] = True
return recommendations
5. Adjustable Workstation Specification
def specify_adjustable_workstation(user_population: str, task_type: str):
"""
Create specification for adjustable workstation
user_population: "single_user", "multi_user", "general"
"""
specifications = {
"work_surface": {
"width_inches": 60,
"depth_inches": 30,
"height_range_inches": (24, 48) if user_population != "single_user" else (26, 32),
"adjustment_mechanism": "Electric" if user_population == "multi_user" else "Manual crank",
"memory_positions": 3 if user_population == "multi_user" else 0,
"load_capacity_lbs": 150
},
"monitor_arm": {
"height_range_inches": (4, 16),
"depth_range_inches": (4, 20),
"tilt_range_degrees": (-90, 90),
"swivel_range_degrees": 360,
"weight_capacity_lbs": 25
},
"keyboard_tray": {
"width_inches": 26,
"height_adjustment_inches": (-4, 2),
"tilt_range_degrees": (-15, 15),
"swivel_range_degrees": (-15, 15)
},
"chair": {
"seat_height_range_inches": (16, 21),
"seat_depth_adjustment_inches": 3,
"lumbar_height_adjustment_inches": 4,
"armrest_height_adjustment_inches": 4,
"armrest_width_adjustment_inches": 2
}
}
if task_type == "precision":
specifications["work_surface"]["depth_inches"] = 24
specifications["task_light"] = {
"type": "Adjustable arm",
"lux": 1000,
"color_temperature_kelvin": 5000
}
elif task_type == "assembly":
specifications["work_surface"]["load_capacity_lbs"] = 300
specifications["anti_fatigue_mat"] = True
return specifications
6. Layout Drawing Generation
def generate_layout_specification(workstation_design: dict, items: List[WorkItem]):
"""
Generate textual layout specification for CAD or drawing
"""
layout = {
"drawing_title": "Workstation Layout",
"dimensions": {
"overall_width": workstation_design.get("width", 60),
"overall_depth": workstation_design.get("depth", 30),
"work_surface_height": workstation_design.get("height", 29)
},
"zones": [],
"item_placements": [],
"annotations": []
}
zones = design_work_zones(24, 18)
for zone_name, zone_data in zones.items():
layout["zones"].append({
"name": zone_name,
"type": "arc",
"radius": zone_data["radius"],
"angle": zone_data["arc"],
"style": "dashed"
})
placements = optimize_tool_placement(items, 60, 30)
for placement in placements:
layout["item_placements"].append({
"name": placement["item"],
"position": (placement["x"], placement["y"]),
"symbol": "rectangle"
})
layout["annotations"] = [
{"text": "Primary Zone", "position": (30, 8)},
{"text": "Secondary Zone", "position": (30, 15)},
{"text": "Operator Position", "position": (30, 2), "symbol": "circle"}
]
return layout
Process Integration
This skill integrates with the following processes:
workstation-design-optimization.js
5s-workplace-organization-implementation.js
Output Format
{
"workstation_type": "Seated Adjustable",
"work_surface": {
"dimensions": {"width": 60, "depth": 30},
"height_range": [24, 32]
},
"zones": {
"primary_radius": 9.6,
"secondary_radius": 15.6
},
"item_placements": [
{"item": "Keyboard", "x": 30, "y": 6, "zone": "primary"},
{"item": "Phone", "x": 50, "y": 8, "zone": "secondary"}
],
"chair_specs": {
"seat_height_range": [16, 21],
"lumbar_support": true
}
}
Best Practices
- User involvement - Get worker input
- Task analysis first - Understand work requirements
- Prototype and test - Validate before finalizing
- Consider all users - Not just average
- Plan for change - Build in adjustability
- Document rationale - Record design decisions
Constraints
- Balance ergonomics with task efficiency
- Consider cost vs adjustability tradeoffs
- Ensure compliance with standards
- Plan for maintenance and cleaning