Skip to main content

neuroskill-evidence

Implicit evidence collection, personal effectiveness tracking, and data-driven recommendation engine for NeuroSkill. Defines the standardised px: label schema, automatic before/after measurement, outcome scoring, personal protocol ranking, life-event labeling, and evidence-driven selection rules. Loaded whenever the LLM runs a protocol, suggests an intervention, tracks habits, or the user asks what works for them.

Aller à l'installation

Informations de source

Dépôt
NeuroSkill-com/skills
Dernière activité de la source
2 avril 2026 à 04:48
Langue détectée de SKILL.md
anglais
Étoiles
13
Forks
5

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
neuroskill-evidence
description
Implicit evidence collection, personal effectiveness tracking, and data-driven recommendation engine for NeuroSkill. Defines the standardised px: label schema, automatic before/after measurement, outcome scoring, personal protocol ranking, life-event labeling, and evidence-driven selection rules. Loaded whenever the LLM runs a protocol, suggests an intervention, tracks habits, or the user asks what works for them.
# NeuroSkill Evidence Collection *(This skill defines how the LLM silently collects, aggregates, and uses evidence about what actually helps each person. Every other skill that delivers an intervention, tracks a habit, or makes a recommendation should follow these rules.)* --- ## Core Principle **Every intervention is a natural experiment.** The EEG headband is already running. The baseline already exists. The post-state will arrive automatically. All the LLM needs to do is snapshot, label, and remember. The user should NEVER be asked: "Can I label this?" or "Should I measure the outcome?" Just do it. The labeling and measurement are invisible infrastructure. The only thing the user sees are the insights that emerge over time. **The goal is population-of-one science.** Not "does box breathing reduce stress in general?" but "does box breathing reduce stress for YOU, at THIS time of day, in THIS context, compared to THESE alternatives?" --- ## Who Uses This Skill Every skill that does any of the following MUST follow the evidence collection rules: | Skill | How it uses evidence | |---|---| | **neuroskill-protocols** | Label every protocol execution (start + end + deltas). Rank protocols by personal effectiveness. Select proven winners. | | **neuroskill-hooks** | Label hook trigger events. Track whether the user acted on the hook and whether it helped. Tune thresholds from real outcomes. | | **neuroskill-streaming** | Label calibration sessions. Track TTS-guided protocol outcomes. | | **neuroskill-sessions** | Correlate session-level metrics with labeled interventions. Identify which sessions had protocols and which didn't. | | **neuroskill-search** | Use `px:` labels to find past interventions and correlate with neural similarity search results. | | **neuroskill-labels** | The evidence system IS the label system. All `px:` labels flow through `label` and `search_labels`. | | **neuroskill-sleep** | Label evening routines. Correlate sleep architecture with pre-sleep interventions. | | **neuroskill-dnd** | Label DND activations. Track whether protected focus periods produced better outcomes. | | **neuroskill-screenshots** | Correlate screen content (apps, sites) with brain state changes when labeled. | | **neuroskill-llm** | The LLM is the evidence engine — it creates labels, queries them, aggregates, and recommends. | | **neuroskill-recipes** | Recipes can incorporate evidence queries for automation scripts. | --- ## Standardised Label Schema ### Prefix System All evidence labels use the `px:` prefix (protocol/experience execution): | Prefix | Meaning | Example | |---|---|---| | `px:start:<name>` | Intervention began | `px:start:box_breathing` | | `px:end:<name>` | Intervention ended | `px:end:box_breathing` | | `px:note:<name>` | Observation (no start/end pair) | `px:note:poor_sleep` | | `px:skip:<name>` | Offered but declined | `px:skip:kapalabhati` | | `px:auto:<name>` | Auto-triggered by hook | `px:auto:stress_alert` | The `px:` prefix makes all evidence data instantly queryable: ```json {"command": "search_labels", "args": {"query": "px:end", "k": 50}} {"command": "search_labels", "args": {"query": "px:end:box_breathing", "k": 20}} {"command": "search_labels", "args": {"query": "px:start", "k": 50, "mode": "context"}} ``` ### Context Format The `context` field uses pipe-separated `key=value` pairs for machine-parseable structured data: ``` modality=breath | trigger=high_bar | bar=0.72 | stress_index=68 | relaxation=0.31 | focus=0.45 | hr=78 | mood=0.40 | faa=-0.03 | rmssd=26 ``` ### Required Fields **Start label context — always include:** | Field | Description | Example | |---|---|---| | `modality` | Intervention type | `breath`, `tactile`, `cognitive`, `visual`, `movement`, `auditory`, `passive_physio`, `music`, `dietary`, `relational`, `environmental` | | `trigger` | EEG trigger that prompted this | `high_bar`, `low_focus`, `low_rmssd`, `high_drowsiness`, `low_mood`, `high_cognitive_load`, `user_request` | | `bar` | Beta/Alpha Ratio at start | `0.72` | | `stress_index` | Stress index at start | `68` | | `relaxation` | Relaxation score at start | `0.31` | | `focus` | Focus score at start | `0.45` | | `hr` | Heart rate at start | `78` | | `mood` | Mood score at start | `0.40` | | `faa` | Frontal Alpha Asymmetry at start | `-0.03` | | `rmssd` | HRV (RMSSD) at start | `26` | **End label context — always include (in addition to the above at end-state):** | Field | Description | Example | |---|---|---| | `duration_min` | Duration in minutes | `5` | | `delta_bar` | Change in BAR | `-0.24` | | `delta_stress` | Change in stress_index | `-26` | | `delta_relaxation` | Change in relaxation | `+0.27` | | `delta_focus` | Change in focus | `+0.07` | | `delta_hr` | Change in heart rate | `-10` | | `delta_mood` | Change in mood | `+0.15` | | `delta_faa` | Change in FAA | `+0.04` | | `delta_rmssd` | Change in RMSSD | `+12` | | `outcome` | Overall result | `positive`, `neutral`, `negative` | ### Outcome Determination Outcome is based on the **target metric** for the intervention's trigger: | Trigger | Target metric | Positive if | Negative if | |---|---|---|---| | `high_bar` / stress | `bar`, `stress_index` | Dropped ≥ 10% or ≥ 0.05 abs | Rose ≥ 10% | | `low_focus` | `focus` | Rose ≥ 10% or ≥ 0.05 abs | Dropped ≥ 10% | | `low_relaxation` | `relaxation` | Rose ≥ 10% or ≥ 0.05 abs | Dropped ≥ 10% | | `low_mood` | `mood`, `faa` | Rose ≥ 10% or ≥ 0.05 abs | Dropped ≥ 10% | | `high_cognitive_load` | `cognitive_load` | Dropped ≥ 10% or ≥ 0.05 abs | Rose ≥ 10% | | `low_rmssd` / low HRV | `rmssd` | Rose ≥ 10% or ≥ 3 ms abs | Dropped ≥ 10% | | `high_drowsiness` | `wakefulness` | Rose ≥ 10% or ≥ 0.05 abs | Dropped ≥ 10% | | `high_headache` | `headache_index` | Dropped ≥ 10% or ≥ 5 abs | Rose ≥ 10% | | `user_request` | User's stated goal | Ask user or infer from context | — | | All other | Neutral unless clear change | — | — | If target metric change is between thresholds → `neutral`. ### Full Label Examples **Starting a protocol:** ```json {"command": "label", "args": { "text": "px:start:box_breathing", "context": "modality=breath | trigger=high_bar | bar=0.72 | stress_index=68 | relaxation=0.31 | focus=0.45 | hr=78 | mood=0.40 | faa=-0.03 | rmssd=26" }} ``` **Ending a protocol (success):** ```json {"command": "label", "args": { "text": "px:end:box_breathing", "context": "modality=breath | trigger=high_bar | duration_min=5 | bar=0.48 | stress_index=42 | relaxation=0.58 | focus=0.52 | hr=68 | mood=0.55 | faa=0.01 | rmssd=38 | delta_bar=-0.24 | delta_stress=-26 | delta_relaxation=+0.27 | delta_focus=+0.07 | delta_hr=-10 | delta_mood=+0.15 | delta_faa=+0.04 | delta_rmssd=+12 | outcome=positive" }} ``` **Noting a life event:** ```json {"command": "label", "args": { "text": "px:note:caffeine_intake", "context": "type=coffee | bar=0.45 | focus=0.52 | stress_index=38 | hr=72 | mood=0.55" }} ``` **User declined a suggestion:** ```json {"command": "label", "args": { "text": "px:skip:kapalabhati", "context": "reason=breath_averse | trigger=low_wakefulness | offered_alternative=cold_water_face" }} ``` **Hook auto-triggered:** ```json {"command": "label", "args": { "text": "px:auto:stress_alert", "context": "hook=Stress Auto-Protocol | distance=0.089 | bar=0.78 | stress_index=72 | suggested=ear_massage" }} ``` --- ## Measurement Flow ### For Formal Protocols (mandatory, every time) ``` 1. BEFORE — Snapshot & Label ├─ {"command": "status"} → capture baseline metrics ├─ Store baseline in working memory for this conversation └─ {"command": "label", "args": {"text": "px:start:<protocol>", "context": "..."}} 2. DURING — Monitor (optional, per protocol) ├─ Poll status every 30–60s for live feedback if appropriate └─ Label notable moments: {"text": "px:note:alpha_spike_during_body_scan"} 3. AFTER — Snapshot, Compute, Label (30–60 seconds post-protocol, let metrics settle) ├─ {"command": "status"} → capture post-state ├─ Compute deltas (after − before) for all core metrics ├─ Determine outcome (positive / neutral / negative per rules above) ├─ {"command": "label", "args": {"text": "px:end:<protocol>", "context": "..."}} └─ Report to user (brief, natural language — see Surfacing Rules) 4. REMEMBER — Store in working memory └─ "This person did box_breathing. Outcome: positive. delta_bar: -0.24." Use this to inform future suggestions in this conversation. ``` ### For Life Events (implicit, when mentioned) When the user mentions any of the following, silently label it: | User says / does | Label | Follow-up measurement | |---|---|---| | "I had coffee" / "drinking tea" | `px:note:caffeine_intake` | Check `focus`, `bar` at +30 min and +60 min if still in conversation. Label `px:note:caffeine_effect_30m` with deltas. | | "Going for a walk" / "just walked" | `px:start:walk` → later `px:end:walk` | Snapshot mood, engagement, stress before and after. | | "Just ate" / "having lunch" | `px:note:meal` | Check `drowsiness`, `focus` at +30 min. Label `px:note:post_meal_30m`. | | "Bad sleep" / "slept poorly" | `px:note:poor_sleep` | Snapshot today's baseline. Correlate with `sleep` command data. | | "Great sleep" | `px:note:good_sleep` | Same — build sleep-to-performance correlation. | | "In a meeting" / "meeting starting" | `px:note:meeting_start` | Check `stress_index`, `cognitive_load` after if still talking. | | "Meeting done" | `px:note:meeting_end` | Snapshot post-meeting state. | | "Just exercised" / "gym done" | `px:note:exercise_end` | Snapshot full metrics — exercise is a powerful intervention. | | "Feeling anxious" / "stressed out" | `px:note:subjective_stress` | Correlate with EEG data — how well does their self-report match their metrics? | | "Feeling great" / "good mood" | `px:note:subjective_positive` | Same — validate or contrast with EEG. | | App switch visible in `status` | `px:note:app_context` with `status → apps.top_24h` | Correlate screen content with brain state over time. | | "Taking a break" | `px:start:break` → later `px:end:break` | Measure recovery: how much did metrics improve? | | User declines a protocol | `px:skip:<protocol>` with reason | Track preference patterns — what do they avoid and why? | **Rules for life-event labeling:** - Only label what the user explicitly mentions or what's clearly visible in API data. - NEVER infer ("you sound upset" → don't label unless they said it). - Keep labels factual, not interpretive. - Don't label every message — only intervention-like events. ### For Hook Triggers When a hook fires (visible in `listen` events or `hooks_log`): ```json {"command": "label", "args": { "text": "px:auto:stress_alert", "context": "hook=Stress Auto-Protocol | distance=0.089 | bar=0.78 | stress_index=72 | suggested=ear_massage | user_acted=pending" }} ``` If the user follows up with a protocol → label normally and link: ```json {"command": "label", "args": { "text": "px:start:ear_massage",
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub