interpreting-culture-index by trailofbits/skills
npx skills add https://github.com/trailofbits/skills --skill interpreting-culture-index<essential_principles>
Culture Index 衡量的是行为特质,而非智力或技能。不存在“好”或“坏”的档案。
0-10 的刻度只是一把尺子。重要的是与红色箭头的距离(总体平均值位于第 50 百分位数)。箭头位置会根据 EU 在不同调查之间变动。
箭头移动的原因: 较高的 EU 分数会导致箭头向右移动;较低的 EU 会导致箭头向左移动。这并不影响有效性——我们始终测量的是相对于箭头所在位置的距离。
错误:“Dan 的自主性比 Jim 高,因为他的 A 是 8 而 Jim 是 5” 正确:“Dan 比他的箭头高 +3 个百分位数;Jim 比他的箭头高 +1 个百分位数”
始终要问:箭头在哪里,点距离箭头有多远?
“你不能送一只鸭子去老鹰学校。” 特质是天生的——你只能暂时改变行为,并且需要消耗能量。
图表之间存在巨大差异表明行为发生了改变,如果持续 3-6 个月以上,会消耗能量并导致倦怠。
| 距离 | 标签 | 百分位数 | 解释 |
|---|---|---|---|
| 在箭头上 | 规范性 | 第 50 位 | 灵活,视情况而定 |
| ±1 个百分位数 | 倾向性 | ~第 67 位 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 更容易改变 |
| ±2 个百分位数 | 明显 | ~第 84 位 | 明显的差异 |
| ±4+ 个百分位数 | 极端 | ~第 98 位 | 天生的,强迫性的,可预测的 |
关键见解: 每 2 个百分位数的距离 = 1 个标准差。
极端特质能带来极端结果,但更难改变,且与普通人更难产生共鸣。
与 A、B、C、D 不同,你可以直接比较人与人之间的 L 和 I 分数:
只有这两个特质打破了“不能绝对比较”的规则。
</essential_principles>
<input_formats>
JSON(如果可用则使用)
如果 JSON 数据已提取,请直接使用:
import json
with open("person_name.json") as f:
profile = json.load(f)
JSON 格式:
{
"name": "Person Name",
"archetype": "Architect",
"survey": {
"eu": 21,
"arrow": 2.3,
"a": [5, 2.7],
"b": [0, -2.3],
"c": [1, -1.3],
"d": [3, 0.7],
"logic": [5, null],
"ingenuity": [2, null]
},
"job": { "..." : "same structure as survey" },
"analysis": {
"energy_utilization": 148,
"status": "stress"
}
}
注意:特质值是 [绝对值, 相对于箭头的值] 元组。使用相对值进行解读。
检查与 PDF 相同目录下是否有匹配的 .json 文件,或者询问用户是否已提取 JSON。
PDF 输入(必须先提取)
⚠️ 切勿使用视觉估计来获取特质值。 视觉估计的错误率高达 20-30%。
当提供 PDF 时:
检查 JSON 是否已存在(与 PDF 相同目录,或询问用户)
如果不存在,运行带验证的提取脚本:
uv run {baseDir}/scripts/extract_pdf.py --verify /path/to/file.pdf [output.json]
目视确认验证摘要与 PDF 匹配
使用提取的 JSON 进行解读
如果未安装 uv: 停止并指导用户安装它(brew install uv 或 pip install uv)。不要回退到视觉识别。
PDF 视觉识别(仅作参考)
视觉识别仅可用于验证提取的值看起来是否合理,不可用于提取特质分数。
</input_formats>
步骤 0:你拥有 JSON 还是 PDF?
如果提供了或找到了 JSON: 直接使用(跳过提取)
.json 文件如果只有 PDF: 使用 --verify 标志运行提取脚本
uv run {baseDir}/scripts/extract_pdf.py --verify /path/to/file.pdf [output.json]
如果提取失败: 报告错误,不要回退到视觉识别
步骤 1:你拥有什么数据?
步骤 2:你想做什么?
档案分析:
招聘与候选人: 6. 定义招聘档案 - 确定某个职位的理想 CI 特质 7. 指导管理者管理直接下属 - 根据双方档案调整管理风格 8. 根据面试预测特质 - 分析面试记录以估计 CI 特质 9. 面试复盘 - 根据预测的特质评估候选人匹配度
团队发展: 10. 规划入职 - 根据新员工和团队档案设计前 90 天 11. 调解冲突 - 利用双方档案理解两个人之间的摩擦
请提供档案数据(JSON 或 PDF)并选择一个选项,或描述你的需求。
| 回应 | 工作流 |
|---|---|
| "extract", "parse pdf", "convert pdf", "get json from pdf" | workflows/extract-from-pdf.md |
| 1, "individual", "interpret", "understand", "analyze one", "single profile" | workflows/interpret-individual.md |
| 2, "team", "composition", "gaps", "balance", "gas brake glue" | workflows/analyze-team.md |
| 3, "burnout", "stress", "frustration", "survey vs job", "energy", "flight risk" | workflows/detect-burnout.md |
| 4, "compare", "compatibility", "collaboration", "multiple", "two profiles" | workflows/compare-profiles.md |
| 5, "motivate", "engage", "retain", "communicate" | 直接阅读 references/motivators.md |
| 6, "hire", "hiring profile", "role profile", "recruit", "what profile for" | workflows/define-hiring-profile.md |
| 7, "manage", "coach", "1:1", "direct report", "manager" | workflows/coach-manager.md |
| 8, "transcript", "interview", "predict traits", "guess", "estimate", "recording" | workflows/predict-from-interview.md |
| 9, "debrief", "should we hire", "candidate fit", "proceed", "offer" | workflows/interview-debrief.md |
| 10, "onboard", "new hire", "integrate", "starting", "first 90 days" | workflows/plan-onboarding.md |
| 11, "conflict", "friction", "mediate", "not working together", "clash" | workflows/mediate-conflict.md |
| "conversation starters", "how to talk to", "engage with" | 直接阅读 references/conversation-starters.md |
阅读工作流后,请严格遵循。
<verification_loop>
每次解读后,请验证:
向用户报告:
</verification_loop>
<reference_index>
领域知识(位于 references/):
主要特质:
primary-traits.md - A(自主性)、B(社交性)、C(节奏)、D(顺从性)次要特质:
secondary-traits.md - EU(能量单位)、L(逻辑)、I(创造力)模式:
patterns-archetypes.md - 行为模式、特质组合、原型原型深度档案(archetype-*.md):
archetype-administrator.md - 管理者(高 A、高 B、低 C、中 D)archetype-coordinator.md - 协调者(低 A、高 B、中 C、低 D)archetype-craftsman.md - 工匠(低 A、低 B、高 C、高 D)archetype-daredevil.md - 冒险家(高 A、低 B、低 C、低 D)archetype-debater.md - 辩论者(中 A、中-高 B、低 C、高 D)archetype-facilitator.md - 促进者(低 A、中 B、中 C、低 D)archetype-influencer.md - 影响者(低 A、高 B、低 C、低 D)archetype-operator.md - 操作者(低 A、低 B、高 C、中-高 D)archetype-persuader.md - 说服者(高 A、高 B、低 C、低 D)archetype-philosopher.md - 哲学家(低 A、低 B、高 C、低 D)archetype-rainmaker.md - 造雨者(高 A、高 B、低 C、低 D)archetype-scholar.md - 学者(高 A、低 B、低 C、高 D)archetype-socializer.md - 社交家(低 A、高 B、低 C、低 D)archetype-specialist.md - 专家(低 A、低 B、高 C、中 D)archetype-technical-expert.md - 技术专家(低 A、低 B、高 C、低 D)archetype-traditionalist.md - 传统主义者(低 A、低 B、高 C、高 D)archetype-trailblazer.md - 开拓者(高 A、中 B、中 C、低 D)应用:
motivators.md - 如何激励每种特质类型team-composition.md - Gas、brake、glue 框架anti-patterns.md - 常见的解读错误conversation-starters.md - 如何与每种模式和特质类型互动interview-trait-signals.md - 从面试中预测特质的信号</reference_index>
<workflows_index>
工作流(位于 workflows/):
| 文件 | 目的 |
|---|---|
extract-from-pdf.md | 从 Culture Index PDF 中提取档案数据到 JSON 格式 |
interpret-individual.md | 分析单个档案,识别原型,总结优势/挑战 |
analyze-team.md | 评估团队平衡(gas/brake/glue),识别差距,推荐招聘 |
detect-burnout.md | 比较调查图表与工作图表,计算 EU 利用率,标记风险信号 |
compare-profiles.md | 比较多个档案,评估兼容性、协作动态 |
define-hiring-profile.md | 定义某个职位的理想 CI 特质,识别可接受的模式和危险信号 |
coach-manager.md | 帮助管理者针对特定的直接下属调整其风格 |
predict-from-interview.md | 分析面试记录以在调查前预测 CI 特质 |
interview-debrief.md | 使用从记录分析中预测的特质评估候选人匹配度 |
plan-onboarding.md | 根据新员工档案和团队构成设计前 90 天 |
mediate-conflict.md | 利用团队成员档案理解和解决摩擦 |
</workflows_index>
<quick_reference>
特质颜色:
| 特质 | 颜色 | 衡量内容 |
|---|---|---|
| A | 栗色 | 自主性、主动性、自信 |
| B | 黄色 | 社交能力、互动需求 |
| C | 蓝色 | 节奏/耐心、紧迫感 |
| D | 绿色 | 顺从性、对细节的关注 |
| L | 紫色 | 逻辑、情绪处理 |
| I | 青色 | 创造力、创新性 |
能量利用率公式:
Utilization = (Job EU / Survey EU) × 100
70-130% = 健康
>130% = 压力(倦怠风险)
<70% = 挫折(离职风险)
Gas/Brake/Glue:
| 角色 | 特质 | 功能 |
|---|---|---|
| Gas | 高 A | 增长、冒险、推动结果 |
| Brake | 高 D | 质量控制、风险规避、完成工作 |
| Glue | 高 B | 人际关系、士气、文化 |
分数精度:
| 数值 | 精度 | 示例 |
|---|---|---|
| 特质(A,B,C,D,L,I) | 整数 0-10 | 0, 1, 2, ... 10 |
| 箭头位置 | 十分位 | 0.4, 2.2, 3.8 |
| 能量单位(EU) | 整数 | 11, 31, 45 |
</quick_reference>
<success_criteria>
一个解读良好的 Culture Index 档案:
</success_criteria>
每周安装量
1.1K
代码仓库
GitHub 星标数
3.9K
首次出现
2026年1月19日
安全审计
安装于
claude-code963
opencode920
gemini-cli903
codex897
cursor878
github-copilot846
<essential_principles>
Culture Index measures behavioral traits, not intelligence or skills. There is no "good" or "bad" profile.
The 0-10 scale is just a ruler. What matters is distance from the red arrow (population mean at 50th percentile). The arrow position varies between surveys based on EU.
Why the arrow moves: Higher EU scores cause the arrow to plot further right; lower EU causes it to plot further left. This does not affect validity—we always measure distance from wherever the arrow lands.
Wrong : "Dan has higher autonomy than Jim because his A is 8 vs 5" Right : "Dan is +3 centiles from his arrow; Jim is +1 from his arrow"
Always ask: Where is the arrow, and how far is the dot from it?
"You can't send a duck to Eagle school." Traits are hardwired—you can only modify behaviors temporarily, at the cost of energy.
Large differences between graphs indicate behavior modification, which drains energy and causes burnout if sustained 3-6+ months.
| Distance | Label | Percentile | Interpretation |
|---|---|---|---|
| On arrow | Normative | 50th | Flexible, situational |
| ±1 centile | Tendency | ~67th | Easier to modify |
| ±2 centiles | Pronounced | ~84th | Noticeable difference |
| ±4+ centiles | Extreme | ~98th | Hardwired, compulsive, predictable |
Key insight: Every 2 centiles of distance = 1 standard deviation.
Extreme traits drive extreme results but are harder to modify and less relatable to average people.
Unlike A, B, C, D, you CAN compare L and I scores directly between people:
Only these two traits break the "no absolute comparison" rule.
</essential_principles>
<input_formats>
JSON (Use if available)
If JSON data is already extracted, use it directly:
import json
with open("person_name.json") as f:
profile = json.load(f)
JSON format:
{
"name": "Person Name",
"archetype": "Architect",
"survey": {
"eu": 21,
"arrow": 2.3,
"a": [5, 2.7],
"b": [0, -2.3],
"c": [1, -1.3],
"d": [3, 0.7],
"logic": [5, null],
"ingenuity": [2, null]
},
"job": { "..." : "same structure as survey" },
"analysis": {
"energy_utilization": 148,
"status": "stress"
}
}
Note: Trait values are [absolute, relative_to_arrow] tuples. Use the relative value for interpretation.
Check same directory as PDF for matching .json file, or ask user if they have extracted JSON.
PDF Input (MUST EXTRACT FIRST)
⚠️ NEVER use visual estimation for trait values. Visual estimation has 20-30% error rate.
When given a PDF:
Check if JSON already exists (same directory as PDF, or ask user)
If not, run extraction with verification:
uv run {baseDir}/scripts/extract_pdf.py --verify /path/to/file.pdf [output.json]
Visually confirm the verification summary matches the PDF
Use the extracted JSON for interpretation
If uv is not installed: Stop and instruct user to install it (brew install uv or pip install uv). Do NOT fall back to vision.
PDF Vision (Reference Only)
Vision may be used ONLY to verify extracted values look reasonable, NOT to extract trait scores.
</input_formats>
Step 0: Do you have JSON or PDF?
If JSON provided or found: Use it directly (skip extraction)
.json file with matching nameIf only PDF: Run extraction script with --verify flag
uv run {baseDir}/scripts/extract_pdf.py --verify /path/to/file.pdf [output.json]
If extraction fails: Report error, do NOT fall back to vision
Step 1: What data do you have?
Step 2: What would you like to do?
Profile Analysis:
Hiring & Candidates: 6. Define hiring profile - Determine ideal CI traits for a role 7. Coach manager on direct report - Adjust management style based on both profiles 8. Predict traits from interview - Analyze interview transcript to estimate CI traits 9. Interview debrief - Assess candidate fit based on predicted traits
Team Development: 10. Plan onboarding - Design first 90 days based on new hire and team profiles 11. Mediate conflict - Understand friction between two people using their profiles
Provide the profile data (JSON or PDF) and select an option, or describe what you need.
| Response | Workflow |
|---|---|
| "extract", "parse pdf", "convert pdf", "get json from pdf" | workflows/extract-from-pdf.md |
| 1, "individual", "interpret", "understand", "analyze one", "single profile" | workflows/interpret-individual.md |
| 2, "team", "composition", "gaps", "balance", "gas brake glue" | workflows/analyze-team.md |
| 3, "burnout", "stress", "frustration", "survey vs job", "energy", "flight risk" | workflows/detect-burnout.md |
| 4, "compare", "compatibility", "collaboration", "multiple", "two profiles" | workflows/compare-profiles.md |
| 5, "motivate", "engage", "retain", "communicate" |
After reading the workflow, follow it exactly.
<verification_loop>
After every interpretation, verify:
Report to user:
</verification_loop>
<reference_index>
Domain Knowledge (in references/):
Primary Traits:
primary-traits.md - A (Autonomy), B (Social), C (Pace), D (Conformity)Secondary Traits:
secondary-traits.md - EU (Energy Units), L (Logic), I (Ingenuity)Patterns:
patterns-archetypes.md - Behavioral patterns, trait combinations, archetypesArchetype Deep Profiles (archetype-*.md):
archetype-administrator.md - The Administrator (High A, High B, Low C, Mid D)archetype-coordinator.md - The Coordinator (Low A, High B, Mid C, Low D)archetype-craftsman.md - The Craftsman (Low A, Low B, High C, High D)archetype-daredevil.md - The Daredevil (High A, Low B, Low C, Low D)archetype-debater.md - The Debater (Mid A, Mid-High B, Low C, High D)archetype-facilitator.md - The Facilitator (Low A, Mid B, Mid C, Low D)archetype-influencer.md - The Influencer (Low A, High B, Low C, Low D)archetype-operator.md - The Operator (Low A, Low B, High C, Mid-High D)archetype-persuader.md - The Persuader (High A, High B, Low C, Low D)Application:
motivators.md - How to motivate each trait typeteam-composition.md - Gas, brake, glue frameworkanti-patterns.md - Common interpretation mistakesconversation-starters.md - How to engage each pattern and trait typeinterview-trait-signals.md - Signals for predicting traits from interviews</reference_index>
<workflows_index>
Workflows (in workflows/):
| File | Purpose |
|---|---|
extract-from-pdf.md | Extract profile data from Culture Index PDF to JSON format |
interpret-individual.md | Analyze single profile, identify archetype, summarize strengths/challenges |
analyze-team.md | Assess team balance (gas/brake/glue), identify gaps, recommend hires |
detect-burnout.md | Compare Survey vs Job, calculate EU utilization, flag risk signals |
compare-profiles.md | Compare multiple profiles, assess compatibility, collaboration dynamics |
define-hiring-profile.md |
</workflows_index>
<quick_reference>
Trait Colors:
| Trait | Color | Measures |
|---|---|---|
| A | Maroon | Autonomy, initiative, self-confidence |
| B | Yellow | Social ability, need for interaction |
| C | Blue | Pace/Patience, urgency level |
| D | Green | Conformity, attention to detail |
| L | Purple | Logic, emotional processing |
| I | Cyan | Ingenuity, inventiveness |
Energy Utilization Formula:
Utilization = (Job EU / Survey EU) × 100
70-130% = Healthy
>130% = STRESS (burnout risk)
<70% = FRUSTRATION (flight risk)
Gas/Brake/Glue:
| Role | Trait | Function |
|---|---|---|
| Gas | High A | Growth, risk-taking, driving results |
| Brake | High D | Quality control, risk aversion, finishing |
| Glue | High B | Relationships, morale, culture |
Score Precision:
| Value | Precision | Example |
|---|---|---|
| Traits (A,B,C,D,L,I) | Integer 0-10 | 0, 1, 2, ... 10 |
| Arrow position | Tenths | 0.4, 2.2, 3.8 |
| Energy Units (EU) | Integer | 11, 31, 45 |
</quick_reference>
<success_criteria>
A well-interpreted Culture Index profile:
</success_criteria>
Weekly Installs
1.1K
Repository
GitHub Stars
3.9K
First Seen
Jan 19, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code963
opencode920
gemini-cli903
codex897
cursor878
github-copilot846
NestJS专家服务 | 企业级TypeScript后端开发与架构设计
1,000 周安装
安全代码卫士:AI驱动的安全编码指南与最佳实践,防止SQL注入、XSS攻击
1,000 周安装
ESLint迁移到Oxlint完整指南:JavaScript/TypeScript项目性能优化工具
1,000 周安装
Chrome CDP 命令行工具:轻量级浏览器自动化,支持截图、执行JS、无障碍快照
1,000 周安装
Sanity内容建模最佳实践:结构化内容设计原则与无头CMS指南
1,000 周安装
AI Sprint规划器 - 敏捷团队Scrum迭代计划工具,自动估算故事点与容量管理
1,000 周安装
Read references/motivators.md directly |
| 6, "hire", "hiring profile", "role profile", "recruit", "what profile for" | workflows/define-hiring-profile.md |
| 7, "manage", "coach", "1:1", "direct report", "manager" | workflows/coach-manager.md |
| 8, "transcript", "interview", "predict traits", "guess", "estimate", "recording" | workflows/predict-from-interview.md |
| 9, "debrief", "should we hire", "candidate fit", "proceed", "offer" | workflows/interview-debrief.md |
| 10, "onboard", "new hire", "integrate", "starting", "first 90 days" | workflows/plan-onboarding.md |
| 11, "conflict", "friction", "mediate", "not working together", "clash" | workflows/mediate-conflict.md |
| "conversation starters", "how to talk to", "engage with" | Read references/conversation-starters.md directly |
archetype-philosopher.md - The Philosopher (Low A, Low B, High C, Low D)archetype-rainmaker.md - The Rainmaker (High A, High B, Low C, Low D)archetype-scholar.md - The Scholar (High A, Low B, Low C, High D)archetype-socializer.md - The Socializer (Low A, High B, Low C, Low D)archetype-specialist.md - The Specialist (Low A, Low B, High C, Mid D)archetype-technical-expert.md - The Technical Expert (Low A, Low B, High C, Low D)archetype-traditionalist.md - The Traditionalist (Low A, Low B, High C, High D)archetype-trailblazer.md - The Trailblazer (High A, Mid B, Mid C, Low D)| Define ideal CI traits for a role, identify acceptable patterns and red flags |
coach-manager.md | Help managers adjust their style for specific direct reports |
predict-from-interview.md | Analyze interview transcripts to predict CI traits before survey |
interview-debrief.md | Assess candidate fit using predicted traits from transcript analysis |
plan-onboarding.md | Design first 90 days based on new hire profile and team composition |
mediate-conflict.md | Understand and address friction between team members using their profiles |