programmer-personality-quiz
SKILL.md
程序员人格测试技能
概述
这是一个情境式心理测试技能,通过 30 道职场情境题,分析程序员的工作风格、协作习惯、压力应对等维度,生成个性化的人设报告。
核心理念:
- 不是"你有病吗",而是"遇到这事儿你怎么反应"
- 像玩游戏一样做题,结果还能懂自己
- 纯 AI 对话交互,不依赖任何平台
适用场景:
- 团队建设活动
- 自我认知探索
- 团队相互了解
- 招聘参考(辅助工具)
文件索引
| 文件 | 说明 |
|---|---|
SKILL.md |
技能说明文档(本文件) |
questions.json |
30 道题目数据(含维度、选项、计分) |
测试维度
| 维度 | 含义 | 题号 | 高分特征 |
|---|---|---|---|
| 决断力 | 危机时能否快速决策 | 1-6 | 果断、不甩锅 |
| 协作性 | 团队合作意愿 | 7-12 | 乐于助人、善沟通 |
| 规范性 | 代码/工作习惯 | 13-18 | 细节控、文档到位 |
| 成长性 | 学习意愿 | 19-24 | 紧跟新技术 |
| 抗压性 | 压力下的表现 | 25-30 | 能坚持、会沟通 |
使用方式
AI 对话模式(唯一方式)
触发方式: 用户说"我想测测程序员人设"或"测测我的人格"
交互流程:
-
AI 开场
好的!程序员人格测试共 30 道题,没有对错之分,按第一反应选择。 我们开始吧! 第 1 题 [决断力] 线上突发 bug,用户投诉,你第一反应是? A. 立刻回滚到上个版本 B. 先看日志定位问题 C. 拉群叫上同事一起看 D. 通知产品/客服"正在处理" 请回答 A/B/C/D -
用户逐题作答 — AI 记录答案并继续下一题
-
30 题完成后自动生成报告
核心逻辑
1. 计分规则
每题选项对应分数(2-5 分),6 题一维度,满分 30 分。
分数档位:
- 高分(≥20 分):该维度特质明显
- 中分(15-19 分):该维度表现中等
- 低分(<15 分):该维度特质较弱
2. 人设生成
根据 5 个维度分数组合,生成 16 种人设:
| 决断力 | 协作性 | 规范性 | 成长性 | 抗压性 | 人设名称 | Emoji |
|---|---|---|---|---|---|---|
| 高 | 高 | 高 | 高 | 高 | 六边形战士 | 🦸 |
| 高 | 低 | 高 | 高 | 中 | 技术大神 | 🧙 |
| 高 | 中 | 低 | 中 | 高 | 救火队长 | 🚒 |
| 低 | 低 | 低 | 低 | 低 | 躺平达人 | 🐌 |
| 中 | 中 | 高 | 高 | 高 | 卷王之王 | 🤖 |
| 高 | 高 | 中 | 中 | 中 | 团队核心 | 🌟 |
| 中 | 高 | 中 | 中 | 中 | 协调者 | 🤝 |
| 低 | 高 | 中 | 中 | 中 | 稳健派 | 🐢 |
| 高 | 低 | 中 | 中 | 中 | 独狼 | 🦅 |
| 中 | 中 | 低 | 高 | 中 | 艺术家 | 🎨 |
| 中 | 中 | 高 | 低 | 中 | 执行者 | 📋 |
| 低 | 中 | 中 | 高 | 中 | 学者 | 📚 |
| 高 | 中 | 中 | 低 | 高 | 实干家 | 💪 |
| 中 | 低 | 中 | 中 | 低 | 生活家 | 🏖️ |
| 低 | 低 | 高 | 中 | 中 | 守门员 | 🛡️ |
| 中 | 中 | 中 | 中 | 中 | 普通人 | 😐 |
3. 报告结构
# 🎭 你的程序员人设:{人设名称}
## 📊 五维雷达图
(ASCII 条形图展示各维度分数)
## 💬 性格分析
(根据人设和分数生成描述)
## 💡 发展建议
- 适合的场景
- 需要注意的地方
- 下一步行动
## 🎮 趣味匹配
- 最佳搭档
- 避免组合
- 天敌
## 📈 同类占比
(该人设在技术团队中的大致比例)
实现要点
状态管理
AI 需要维护测试状态:
current_question: 当前题号(1-30)answers: 用户答案字典{"1": "B", "2": "A", ...}dimension_scores: 各维度分数(计算后)
计分算法
def calculate_scores(answers, questions_data):
scores = {"决断力": 0, "协作性": 0, "规范性": 0, "成长性": 0, "抗压性": 0}
for q_id, answer in answers.items():
question = questions_data["questions"][q_id]
dimension = question["dimension"]
score = question["scoring"][answer]
scores[dimension] += score
return scores
人判定逻辑
def get_level(score):
if score >= 20: return "高"
elif score >= 15: return "中"
else: return "低"
def get_personality_type(scores):
levels = tuple(get_level(scores[d]) for d in ["决断力", "协作性", "规范性", "成长性", "抗压性"])
return PERSONALITY_MAP[levels] # 查表返回人设
隐私说明
本技能承诺:
- ✅ 数据仅用于生成报告
- ✅ 不存储用户答案
- ✅ 不分享给第三方
- ✅ 用户可随时删除报告
数据流向:
用户答题 → AI 临时记录 → 生成报告 → 会话结束即清除
版本历史
v1.1.0 (2026-04-03)
- ✅ 移除飞书依赖,纯 AI 对话
- ✅ 删除测试文件和 Python 脚本
- ✅ 修复第 22 题重复问题
- ✅ 添加文件索引
- ✅ 简化为单一交互模式
v1.0.0 (2026-04-03)
- 初始版本
- 30 道情境题
- 16 种人设
测测你是哪种程序员,找到属于你的职场定位! 🎯