First-party
Below is the complete skill definition this hub loads when the skill is triggered — what the agent sees as its instructions, verbatim and unabridged.
# IMI Brand Strategy Framework
This skill teaches the AI to diagnose brand health, identify growth levers, and build
brand strategies the way IMI's senior strategists do — with funnel rigour, competitive
context, and recommendations tied to specific interventions.
---
## The IMI Brand Funnel
The brand funnel is IMI's primary diagnostic framework for brand health:
```
AWARENESS ──→ CONSIDERATION ──→ PREFERENCE ──→ LOYALTY
│ │ │ │
│ │ │ └── Repeat purchase, NPS, advocacy
│ │ └── First choice, willing to pay premium
│ └── Would consider purchasing/using
└── Knows the brand exists (aided or unaided)
```
### Funnel Metrics
| Stage | Metric | Definition | Healthy Range (varies by category) |
|---|---|---|---|
| Awareness | Unaided awareness | Spontaneously names the brand | Category leader: 40-70% |
| Awareness | Aided awareness | Recognises brand when shown | 80-95% for established brands |
| Consideration | Consideration | Would consider purchasing | 30-60% of aware |
| Preference | Preference / First Choice | Brand is #1 or #2 choice | 15-35% of considerers |
| Loyalty | Repeat purchase intent | Would buy again | 60-80% of purchasers |
| Loyalty | NPS | Net Promoter Score | Category-dependent |
### Funnel Conversion Rates
The diagnostic power of the funnel is in the CONVERSION RATES between stages:
```
Awareness → Consideration conversion = Consideration % / Awareness % × 100
Consideration → Preference conversion = Preference % / Consideration % × 100
Preference → Loyalty conversion = Loyalty % / Preference % × 100
```
**Diagnostic interpretation:**
- Low Awareness → Consideration: The brand is known but not relevant. Problem is positioning or messaging.
- Low Consideration → Preference: Consumers consider the brand but prefer competitors. Problem is differentiation or value proposition.
- Low Preference → Loyalty: Consumers prefer the brand but don't stay. Problem is experience, price, or availability.
### Funnel SQL
```sql
WITH funnel AS (
SELECT
brand_id,
brand_name,
wave_id,
SUM(CASE WHEN metric = 'AIDED_AWARENESS' AND response_value >= 1 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'AIDED_AWARENESS' THEN resp_weight ELSE 0 END) * 100 AS awareness,
SUM(CASE WHEN metric = 'CONSIDERATION' AND response_value >= 4 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'CONSIDERATION' THEN resp_weight ELSE 0 END) * 100 AS consideration,
SUM(CASE WHEN metric = 'PREFERENCE' AND response_value = 1 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'PREFERENCE' THEN resp_weight ELSE 0 END) * 100 AS preference,
SUM(CASE WHEN metric = 'NPS' AND response_value >= 9 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'NPS' THEN resp_weight ELSE 0 END) * 100 AS promoter_pct,
SUM(CASE WHEN metric = 'NPS' AND response_value <= 6 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'NPS' THEN resp_weight ELSE 0 END) * 100 AS detractor_pct
FROM brand_tracking_responses btr
JOIN brands b ON btr.brand_id = b.brand_id
WHERE study_id = :study_id
GROUP BY brand_id, brand_name, wave_id
)
SELECT
brand_name,
wave_id,
ROUND(awareness, 1) AS awareness,
ROUND(consideration, 1) AS consideration,
ROUND(preference, 1) AS preference,
ROUND(consideration / NULLIF(awareness, 0) * 100, 1) AS aw_to_con_conversion,
ROUND(preference / NULLIF(consideration, 0) * 100, 1) AS con_to_pref_conversion,
ROUND(promoter_pct - detractor_pct, 0) AS nps
FROM funnel
ORDER BY brand_name, wave_id;
```
---
## The 12 Growth Levers
IMI identifies 12 specific levers that brands can pull to drive growth. Every brand strategy
recommendation should map to one or more of these levers:
### Penetration Levers (Get more people to buy)
1. **Increase awareness** — More people know the brand exists
2. **Improve consideration** — More aware consumers would consider buying
3. **Strengthen relevance** — Brand is relevant to more occasions/need states
4. **Expand availability** — Brand is physically/digitally easier to find
### Frequency Levers (Get existing buyers to buy more)
5. **Increase usage occasions** — Brand is used in more situations
6. **Strengthen habit** — Brand becomes the default/automatic choice
7. **Improve experience** — Better product/service drives repeat
8. **Cross-sell/up-sell** — Existing buyers try more from the portfolio
### Value Levers (Get buyers to pay more / cost less to acquire)
9. **Build premium perception** — Brand justifies a higher price point
10. **Strengthen trust** — Reduce risk perception, increase confidence
11. **Drive advocacy** — Turn buyers into recommenders (NPS, WOM)
12. **Reduce acquisition cost** — More efficient marketing spend
### Mapping Metrics to Levers
| Metric Movement | Most Likely Lever(s) | Recommended Action |
|---|---|---|
| Awareness declining | Lever 1 | Increase media weight or distinctiveness |
| Consideration flat despite high awareness | Lever 2, 3 | Reposition or clarify value proposition |
| Preference losing to competitor | Lever 9, 10 | Investigate trust, price perception, differentiation |
| NPS declining | Lever 7, 10, 11 | Diagnose experience failures, trust erosion |
| Repeat purchase declining | Lever 6, 7 | Habit disruption or experience problem |
---
## Trust Drivers Framework
Trust is the single most important moderating variable in the brand funnel. Low trust
blocks every conversion point.
### IMI's Trust Architecture
```
FUNCTIONAL TRUST
├── Product quality / reliability
├── Value for money
├── Consistent experience
└── Availability / accessibility
EMOTIONAL TRUST
├── Understands me / my needs
├── Shares my values
├── Authentic / genuine
└── Acts in my interest (not just profit)
SOCIAL TRUST
├── People like me use this brand
├── Recommended by people I trust
├── Good reputation in the community
└── Transparent about practices
```
### Trust Diagnostic SQL
```sql
SELECT
brand_id,
trust_dimension,
trust_attribute,
ROUND(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100, 1
) AS trust_t2b,
ROUND(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100 -
LAG(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100
) OVER (PARTITION BY brand_id, trust_attribute ORDER BY wave_id),
1) AS change_vs_prev_wave
FROM brand_trust_responses
WHERE study_id = :study_id
GROUP BY brand_id, trust_dimension, trust_attribute, wave_id
ORDER BY brand_id, trust_dimension, change_vs_prev_wave ASC;
```
---
## NPS Diagnostics
NPS alone is a lagging indicator. IMI's approach is to diagnose the DRIVERS of NPS movement.
### NPS Decomposition
```
NPS = % Promoters (9-10) - % Detractors (0-6)
```
**When NPS drops, ask:**
1. Did promoters decrease, or did detractors increase? (Different problems)
2. Which demographic segment drove the change?
3. What are detractors saying in open-ends? (Theme analysis)
4. Is the drop brand-specific or category-wide?
### Python: NPS Driver Analysis
```python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
import numpy as np
def nps_driver_analysis(df, attribute_cols, nps_col='nps_score'):
"""
Identify which brand attributes most strongly predict NPS group membership.
df: DataFrame with respondent-level data
attribute_cols: list of brand attribute T2B columns
nps_col: column containing NPS score (0-10)
"""
df['nps_group'] = pd.cut(df[nps_col], bins=[-1, 6, 8, 10],
labels=['Detractor', 'Passive', 'Promoter'])
# Binary: Promoter vs non-Promoter
df['is_promoter'] = (df['nps_group'] == 'Promoter').astype(int)
X = df[attribute_cols].fillna(0)
y = df['is_promoter']
model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X, y)
importance = pd.DataFrame({
'attribute': attribute_cols,
'importance': model.feature_importances_
}).sort_values('importance', ascending=False)
return importance
```
---
## Brand Health Wave-Over-Wave Diagnostic Process
When a brand metric moves between waves, follow this diagnostic sequence:
```
Step 1: DATA QUALITY — Is the movement real?
□ Check sample composition comparability (demographics, weights)
□ Check for extreme weight outliers
□ Run significance test on the change given base sizes
□ Check methodology consistency (same questionnaire, same fielding approach)
Step 2: COMPETITIVE CONTEXT — Is it brand-specific?
□ Did competitors move too? (category-level shift vs. brand-specific)
□ Did the category as a whole shift? (macro effect)
□ Is there a new entrant disrupting the market?
Step 3: FUNNEL DIAGNOSIS — Where in the funnel is the break?
□ Which conversion rate changed most?
□ Is the problem at the top (awareness/consideration) or bottom (preference/loyalty)?
□ Map the break to the 12 Growth Levers
Step 4: SEGMENT DIAGNOSIS — Who changed?
□ Which demographic segments drove the movement?
□ Is it a specific cohort (e.g., Gen Z) or broad-based?
□ Did heavy users or light users change?
Step 5: DRIVER DIAGNOSIS — Why did it change?
□ Which trust dimensions or brand attributes moved in the same direction?
□ What do open-ends reveal?
□ Was there a market event (PR crisis, competitor launch, price change)?
Step 6: RECOMMENDATION — What should the client do?
□ Map the diagnosis to specific Growth Levers
□ Recommend interventions tied to the identified cause
□ Size the opportunity (how much could be recovered?)
```
---
## Output Templates
### Template: Brand Health Diagnostic
```markdown
## Brand Health Diagnostic: [Brand Name]
**Study:** [name] | **Wave:** [n] vs [n-1] | **Market:** [country]
**Base:** n=[n] per wave
### Funnel Summary
| Stage | Wave N-1 | Wave N | Change | Sig? |
|---|---|---|---|---|
| Aided Awareness | X% | X% | +/-Xpts | Y/N |
| Consideration | X% | X% | +/-Xpts | Y/N |
| Preference | X% | X% | +/-Xpts | Y/N |
| NPS | +X | +X | +/-X | Y/N |
### Funnel Conversion Rates
| Conversion | Wave N-1 | Wave N | Change |
|---|---|---|---|
| Awareness → Consideration | X% | X% | +/-Xpts |
| Consideration → Preference | X% | X% | +/-Xpts |
### Diagnosis
**Where is the break?** [Funnel stage and conversion point]
**Who changed?** [Demographic/segment identification]
**Why?** [Root cause with evidence]
**Competitive context:** [Brand-specific vs category-wide]
### Growth Lever Recommendation
| Lever | Action | Expected Impact | Priority |
|---|---|---|---|
| [Lever name] | [Specific action] | [Estimated impact] | HIGH/MED/LOW |
### Essential Insight
[One sentence: the minimum effective intervention to reverse the decline / sustain growth]
```
### Template: Brand Growth Strategy
```markdown
## Brand Growth Strategy: [Brand Name]
**Objective:** [Growth target]
**Time horizon:** [period]
### Current Funnel Position
[Funnel chart with conversion rates]
### Primary Growth Levers (ranked by impact potential)
1. **[Lever]** — [Why this lever, what evidence, what action]
2. **[Lever]** — [Why this lever, what evidence, what action]
3. **[Lever]** — [Why this lever, what evidence, what action]
### Measurement Plan
| KPI | Current | Target | Measurement Frequency |
|---|---|---|---|
### Essential Insight
[One sentence: the most efficient path to the growth target]
```
---
## Common Pitfalls
1. **Reporting funnel metrics without conversion rates.** Absolute numbers tell you levels;
conversion rates tell you where the funnel breaks. Always report both.
2. **Assuming NPS tells the whole story.** NPS is a lagging indicator. By the time NPS drops,
something broke upstream. Always diagnose the drivers.
3. **Ignoring competitive context.** A 3-point consideration decline that matches competitors
is a category effect, not a brand problem. Different diagnosis, different solution.
4. **Recommending awareness-building when the problem is below the funnel.** If awareness is
high but conversion is low, more awareness spend is wasted money. Match the lever to the break.
5. **Treating all trust dimensions equally.** Functional trust (product quality) and emotional
trust (shares my values) require different interventions. Diagnose which type is eroding.
---
## Cross-Skill References
- For SQL queries over tracking databases → `imi-rag-sql-intelligence`
- For audience segmentation within tracking data → `imi-segmentation-engine`
- For Pulse™ passion point profiling of brand audiences → `imi-pulse-intelligence`
- For Say/Do gap when preference doesn't convert → `imi-say-do-gap`
- For writing up brand health diagnostics → `imi-client-deliverable`
---
*Built for IMI International's Local AI — grounded in 50+ years of brand tracking and
growth strategy across 200+ client partners.*
*Purpose: Insight. Method: Rigour. Outcome: Profit.*
## AXE MCP Server Integration
Every skill in the AXE Skills Hub runs with access to the **AXE MCP Server** — giving it the full fleet intelligence toolkit automatically. No setup required; tools are available in any AXE-powered session.
### Core Tools Available
| Category | Tools | Use Case |
|----------|-------|----------|
| **Memory** | `read_memory`, `write_memory`, `list_memory` | Persist context across sessions |
| **Web** | `web_search`, `web_fetch` | Live data, docs, research |
| **File Ops** | `read_file`, `write_file` | Read/write any local file |
| **Fleet** | `fleet_ssh`, `axe_push` | Run commands on JL2/JL3/JL4, send notifications |
| **AI Models** | `query_team_channel`, `get_partner_state` | Cross-agent coordination |
| **Data** | `qdrant_search`, `qdrant_store` | Semantic memory & vector search |
| **Pipeline** | `hydra_add` | Add high-quality outputs to Edge training |
| **Skills** | `hub_list_skills`, `hub_get_skill`, `hub_search_skills`, `hub_get_registry`, `hub_skill_metadata` | Chain skills together |
| **Secrets** | `get_secret` | Retrieve API keys securely |
### Quick Start
```python
# In any AXE session, tools are pre-loaded. Example chaining:
# 1. Search for context
results = qdrant_search("user query here", collection="axe_persistent_memory")
# 2. Fetch live data if needed
content = web_fetch("https://docs.example.com/api")
# 3. Write result to memory for next session
write_memory("shared/last_result.md", output)
# 4. Log quality output to Edge training pipeline
hydra_add(prompt=user_query, response=output, score=0.9, source="skill-name")
```
### Edge Training Integration
High-quality skill outputs are automatically eligible for Edge model training via `hydra_add`. When a response scores ≥0.85 in evals, pipe it to the Hydra pipeline to compound Edge's knowledge. This is how skills make Edge smarter over time.
```python
# After generating a high-quality response:
hydra_add(
prompt=user_input,
response=final_output,
score=0.9, # eval score
source="skill-name" # tracks provenance
)
```This skill teaches the AI to diagnose brand health, identify growth levers, and build
brand strategies the way IMI's senior strategists do — with funnel rigour, competitive
context, and recommendations tied to specific interventions.
The brand funnel is IMI's primary diagnostic framework for brand health:
AWARENESS ──→ CONSIDERATION ──→ PREFERENCE ──→ LOYALTY
│ │ │ │
│ │ │ └── Repeat purchase, NPS, advocacy
│ │ └── First choice, willing to pay premium
│ └── Would consider purchasing/using
└── Knows the brand exists (aided or unaided)
| Stage | Metric | Definition | Healthy Range (varies by category) |
|---|---|---|---|
| Awareness | Unaided awareness | Spontaneously names the brand | Category leader: 40-70% |
| Awareness | Aided awareness | Recognises brand when shown | 80-95% for established brands |
| Consideration | Consideration | Would consider purchasing | 30-60% of aware |
| Preference | Preference / First Choice | Brand is #1 or #2 choice | 15-35% of considerers |
| Loyalty | Repeat purchase intent | Would buy again | 60-80% of purchasers |
| Loyalty | NPS | Net Promoter Score | Category-dependent |
The diagnostic power of the funnel is in the CONVERSION RATES between stages:
Awareness → Consideration conversion = Consideration % / Awareness % × 100
Consideration → Preference conversion = Preference % / Consideration % × 100
Preference → Loyalty conversion = Loyalty % / Preference % × 100
Diagnostic interpretation:
WITH funnel AS (
SELECT
brand_id,
brand_name,
wave_id,
SUM(CASE WHEN metric = 'AIDED_AWARENESS' AND response_value >= 1 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'AIDED_AWARENESS' THEN resp_weight ELSE 0 END) * 100 AS awareness,
SUM(CASE WHEN metric = 'CONSIDERATION' AND response_value >= 4 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'CONSIDERATION' THEN resp_weight ELSE 0 END) * 100 AS consideration,
SUM(CASE WHEN metric = 'PREFERENCE' AND response_value = 1 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'PREFERENCE' THEN resp_weight ELSE 0 END) * 100 AS preference,
SUM(CASE WHEN metric = 'NPS' AND response_value >= 9 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'NPS' THEN resp_weight ELSE 0 END) * 100 AS promoter_pct,
SUM(CASE WHEN metric = 'NPS' AND response_value <= 6 THEN resp_weight ELSE 0 END) /
SUM(CASE WHEN metric = 'NPS' THEN resp_weight ELSE 0 END) * 100 AS detractor_pct
FROM brand_tracking_responses btr
JOIN brands b ON btr.brand_id = b.brand_id
WHERE study_id = :study_id
GROUP BY brand_id, brand_name, wave_id
)
SELECT
brand_name,
wave_id,
ROUND(awareness, 1) AS awareness,
ROUND(consideration, 1) AS consideration,
ROUND(preference, 1) AS preference,
ROUND(consideration / NULLIF(awareness, 0) * 100, 1) AS aw_to_con_conversion,
ROUND(preference / NULLIF(consideration, 0) * 100, 1) AS con_to_pref_conversion,
ROUND(promoter_pct - detractor_pct, 0) AS nps
FROM funnel
ORDER BY brand_name, wave_id;
IMI identifies 12 specific levers that brands can pull to drive growth. Every brand strategy
recommendation should map to one or more of these levers:
| Metric Movement | Most Likely Lever(s) | Recommended Action |
|---|---|---|
| Awareness declining | Lever 1 | Increase media weight or distinctiveness |
| Consideration flat despite high awareness | Lever 2, 3 | Reposition or clarify value proposition |
| Preference losing to competitor | Lever 9, 10 | Investigate trust, price perception, differentiation |
| NPS declining | Lever 7, 10, 11 | Diagnose experience failures, trust erosion |
| Repeat purchase declining | Lever 6, 7 | Habit disruption or experience problem |
Trust is the single most important moderating variable in the brand funnel. Low trust
blocks every conversion point.
FUNCTIONAL TRUST
├── Product quality / reliability
├── Value for money
├── Consistent experience
└── Availability / accessibility
EMOTIONAL TRUST
├── Understands me / my needs
├── Shares my values
├── Authentic / genuine
└── Acts in my interest (not just profit)
SOCIAL TRUST
├── People like me use this brand
├── Recommended by people I trust
├── Good reputation in the community
└── Transparent about practices
SELECT
brand_id,
trust_dimension,
trust_attribute,
ROUND(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100, 1
) AS trust_t2b,
ROUND(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100 -
LAG(
SUM(CASE WHEN response_value IN (4,5) THEN resp_weight ELSE 0 END) /
SUM(resp_weight) * 100
) OVER (PARTITION BY brand_id, trust_attribute ORDER BY wave_id),
1) AS change_vs_prev_wave
FROM brand_trust_responses
WHERE study_id = :study_id
GROUP BY brand_id, trust_dimension, trust_attribute, wave_id
ORDER BY brand_id, trust_dimension, change_vs_prev_wave ASC;
NPS alone is a lagging indicator. IMI's approach is to diagnose the DRIVERS of NPS movement.
NPS = % Promoters (9-10) - % Detractors (0-6)
When NPS drops, ask:
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
import numpy as np
def nps_driver_analysis(df, attribute_cols, nps_col='nps_score'):
"""
Identify which brand attributes most strongly predict NPS group membership.
df: DataFrame with respondent-level data
attribute_cols: list of brand attribute T2B columns
nps_col: column containing NPS score (0-10)
"""
df['nps_group'] = pd.cut(df[nps_col], bins=[-1, 6, 8, 10],
labels=['Detractor', 'Passive', 'Promoter'])
# Binary: Promoter vs non-Promoter
df['is_promoter'] = (df['nps_group'] == 'Promoter').astype(int)
X = df[attribute_cols].fillna(0)
y = df['is_promoter']
model = RandomForestClassifier(n_estimators=200, random_state=42)
model.fit(X, y)
importance = pd.DataFrame({
'attribute': attribute_cols,
'importance': model.feature_importances_
}).sort_values('importance', ascending=False)
return importance
When a brand metric moves between waves, follow this diagnostic sequence:
Step 1: DATA QUALITY — Is the movement real?
□ Check sample composition comparability (demographics, weights)
□ Check for extreme weight outliers
□ Run significance test on the change given base sizes
□ Check methodology consistency (same questionnaire, same fielding approach)
Step 2: COMPETITIVE CONTEXT — Is it brand-specific?
□ Did competitors move too? (category-level shift vs. brand-specific)
□ Did the category as a whole shift? (macro effect)
□ Is there a new entrant disrupting the market?
Step 3: FUNNEL DIAGNOSIS — Where in the funnel is the break?
□ Which conversion rate changed most?
□ Is the problem at the top (awareness/consideration) or bottom (preference/loyalty)?
□ Map the break to the 12 Growth Levers
Step 4: SEGMENT DIAGNOSIS — Who changed?
□ Which demographic segments drove the movement?
□ Is it a specific cohort (e.g., Gen Z) or broad-based?
□ Did heavy users or light users change?
Step 5: DRIVER DIAGNOSIS — Why did it change?
□ Which trust dimensions or brand attributes moved in the same direction?
□ What do open-ends reveal?
□ Was there a market event (PR crisis, competitor launch, price change)?
Step 6: RECOMMENDATION — What should the client do?
□ Map the diagnosis to specific Growth Levers
□ Recommend interventions tied to the identified cause
□ Size the opportunity (how much could be recovered?)
## Brand Health Diagnostic: [Brand Name]
**Study:** [name] | **Wave:** [n] vs [n-1] | **Market:** [country]
**Base:** n=[n] per wave
### Funnel Summary
| Stage | Wave N-1 | Wave N | Change | Sig? |
|---|---|---|---|---|
| Aided Awareness | X% | X% | +/-Xpts | Y/N |
| Consideration | X% | X% | +/-Xpts | Y/N |
| Preference | X% | X% | +/-Xpts | Y/N |
| NPS | +X | +X | +/-X | Y/N |
### Funnel Conversion Rates
| Conversion | Wave N-1 | Wave N | Change |
|---|---|---|---|
| Awareness → Consideration | X% | X% | +/-Xpts |
| Consideration → Preference | X% | X% | +/-Xpts |
### Diagnosis
**Where is the break?** [Funnel stage and conversion point]
**Who changed?** [Demographic/segment identification]
**Why?** [Root cause with evidence]
**Competitive context:** [Brand-specific vs category-wide]
### Growth Lever Recommendation
| Lever | Action | Expected Impact | Priority |
|---|---|---|---|
| [Lever name] | [Specific action] | [Estimated impact] | HIGH/MED/LOW |
### Essential Insight
[One sentence: the minimum effective intervention to reverse the decline / sustain growth]
## Brand Growth Strategy: [Brand Name]
**Objective:** [Growth target]
**Time horizon:** [period]
### Current Funnel Position
[Funnel chart with conversion rates]
### Primary Growth Levers (ranked by impact potential)
1. **[Lever]** — [Why this lever, what evidence, what action]
2. **[Lever]** — [Why this lever, what evidence, what action]
3. **[Lever]** — [Why this lever, what evidence, what action]
### Measurement Plan
| KPI | Current | Target | Measurement Frequency |
|---|---|---|---|
### Essential Insight
[One sentence: the most efficient path to the growth target]
conversion rates tell you where the funnel breaks. Always report both.
something broke upstream. Always diagnose the drivers.
is a category effect, not a brand problem. Different diagnosis, different solution.
high but conversion is low, more awareness spend is wasted money. Match the lever to the break.
trust (shares my values) require different interventions. Diagnose which type is eroding.
imi-rag-sql-intelligenceimi-segmentation-engineimi-pulse-intelligenceimi-say-do-gapimi-client-deliverable*Built for IMI International's Local AI — grounded in 50+ years of brand tracking and
growth strategy across 200+ client partners.*
*Purpose: Insight. Method: Rigour. Outcome: Profit.*
Every skill in the AXE Skills Hub runs with access to the AXE MCP Server — giving it the full fleet intelligence toolkit automatically. No setup required; tools are available in any AXE-powered session.
| Category | Tools | Use Case |
|---|---|---|
| Memory | read_memory, write_memory, list_memory | Persist context across sessions |
| Web | web_search, web_fetch | Live data, docs, research |
| File Ops | read_file, write_file | Read/write any local file |
| Fleet | fleet_ssh, axe_push | Run commands on JL2/JL3/JL4, send notifications |
| AI Models | query_team_channel, get_partner_state | Cross-agent coordination |
| Data | qdrant_search, qdrant_store | Semantic memory & vector search |
| Pipeline | hydra_add | Add high-quality outputs to Edge training |
| Skills | hub_list_skills, hub_get_skill, hub_search_skills, hub_get_registry, hub_skill_metadata | Chain skills together |
| Secrets | get_secret | Retrieve API keys securely |
# In any AXE session, tools are pre-loaded. Example chaining:
# 1. Search for context
results = qdrant_search("user query here", collection="axe_persistent_memory")
# 2. Fetch live data if needed
content = web_fetch("https://docs.example.com/api")
# 3. Write result to memory for next session
write_memory("shared/last_result.md", output)
# 4. Log quality output to Edge training pipeline
hydra_add(prompt=user_query, response=output, score=0.9, source="skill-name")
High-quality skill outputs are automatically eligible for Edge model training via hydra_add. When a response scores ≥0.85 in evals, pipe it to the Hydra pipeline to compound Edge's knowledge. This is how skills make Edge smarter over time.
# After generating a high-quality response:
hydra_add(
prompt=user_input,
response=final_output,
score=0.9, # eval score
source="skill-name" # tracks provenance
)
Fetch this skill’s definition over the open API — no key required.
curl -s /v1/skills/imi-brand-strategy