<essential_principles>
Culture Index measures behavioral traits, not intelligence or skills. There is no "good" or "bad" profile.
<principle name="never-compare-absolutes">
**Never compare absolute trait values between people.**
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?
</principle>
<principle name="survey-vs-job">
**Survey = who you ARE. Job = who you're TRYING TO BE.**
"You can't send a duck to Eagle school." Traits are hardwired—you can only modify behaviors temporarily, at the cost of energy.
- Top graph (Survey Traits): Hardwired by age 12-16. Does not change. Writing with your dominant hand.
- Bottom graph (Job Behaviors): Adaptive behavior at work. Can change. Writing with your non-dominant hand.
Large differences between graphs indicate behavior modification, which drains energy and causes burnout if sustained 3-6+ months.
</principle>
<principle name="distance-interpretation">
**Distance from arrow determines trait strength.**
| 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.
</principle>
<principle name="l-and-i-exception">
**L (Logic) and I (Ingenuity) use absolute values.**
Unlike A, B, C, D, you CAN compare L and I scores directly between people:
- Logic 8 means "High Logic" regardless of arrow position
- Ingenuity 2 means "Low Ingenuity" for anyone
Only these two traits break the "no absolute comparison" rule.
</principle>
</essential_principles>
<input_formats>
JSON (Use if available)
If JSON data is already extracted, use it directly:
python
import json
with open("person_name.json") as f:
profile = json.load(f)
JSON format:
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"
}
}
Note: Trait values are
[absolute, relative_to_arrow]
tuples. Use the relative value for interpretation.
Check same directory as PDF for matching
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:
bash
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 (
or
). 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>
<intake>
Step 0: Do you have JSON or PDF?
- If JSON provided or found: Use it directly (skip extraction)
- Check same directory as PDF for file with matching name
- Check if user provided JSON path
- If only PDF: Run extraction script with flag
bash
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?
- CI Survey JSON → Proceed to Step 2
- CI Survey PDF → Extract first (Step 0), then proceed to Step 2
- Interview transcript only → Go to option 8 (predict traits from interview)
- No data yet → "Please provide Culture Index profile (PDF or JSON) or interview transcript"
Step 2: What would you like to do?
Profile Analysis:
- Interpret an individual profile - Understand one person's traits, strengths, and challenges
- Analyze team composition - Assess gas/brake/glue balance, identify gaps
- Detect burnout signals - Compare Survey vs Job, flag stress/frustration
- Compare multiple profiles - Understand compatibility, collaboration dynamics
- Get motivator recommendations - Learn how to engage and retain someone
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.
</intake>
<routing>
| 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" | Read 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 |
After reading the workflow, follow it exactly.
</routing>
<verification_loop>
After every interpretation, verify:
- Did you use relative positions? Never stated "A is 8" without context
- Did you reference the arrow? All trait interpretations relative to arrow
- Did you compare Survey vs Job? Identified any behavior modification
- Did you avoid value judgments? No traits called "good" or "bad"
- Did you check EU? Energy utilization calculated if both graphs present
Report to user:
- "Interpretation complete"
- Key findings (2-3 bullet points)
- Recommended actions
</verification_loop>
<reference_index>
Primary Traits:
- - A (Autonomy), B (Social), C (Pace), D (Conformity)
Secondary Traits:
- - EU (Energy Units), L (Logic), I (Ingenuity)
Patterns:
- - Behavioral patterns, trait combinations, archetypes
Application:
- - How to motivate each trait type
- - Gas, brake, glue framework
- - Common interpretation mistakes
- - How to engage each pattern and trait type
interview-trait-signals.md
- Signals for predicting traits from interviews
</reference_index>
<workflows_index>
| File | Purpose |
|---|
| Extract profile data from Culture Index PDF to JSON format |
| Analyze single profile, identify archetype, summarize strengths/challenges |
| Assess team balance (gas/brake/glue), identify gaps, recommend hires |
| Compare Survey vs Job, calculate EU utilization, flag risk signals |
| Compare multiple profiles, assess compatibility, collaboration dynamics |
| Define ideal CI traits for a role, identify acceptable patterns and red flags |
| Help managers adjust their style for specific direct reports |
predict-from-interview.md
| Analyze interview transcripts to predict CI traits before survey |
| Assess candidate fit using predicted traits from transcript analysis |
| Design first 90 days based on new hire profile and team composition |
| Understand and address friction between team members using their profiles |
</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:
- Uses relative positions (distance from arrow), never absolute values alone
- Identifies the archetype/pattern correctly
- Highlights 2-3 key strengths based on leading traits
- Notes 2-3 challenges or development areas
- Compares Survey vs Job if both are available
- Provides actionable recommendations
- Avoids value judgments ("good"/"bad")
- Acknowledges Culture Index is one data point, not a complete picture
</success_criteria>