Install
$ agentstack add skill-lifesight-lifesight-lifesight-calibration ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Lifesight Calibration — Learn the Workspace Once
The Lifesight skills are universal — the same files ship to every customer. Nothing about a specific account is baked into them. This skill is how a universal skill set adapts to one account: it inspects the live workspace once and writes a small lifesight-workspace-profile that the router, core, rendering, and every persona spoke then read. Skills stay universal; the profile is the only per-customer artifact.
Follow lifesight-core operating rules throughout (one heavy call per turn, clean errors, no leaks).
When to run
- No
lifesight-workspace-profileexists yet for the active workspace. - The user explicitly asks to set up / calibrate / recalibrate.
- The active workspace just changed (the profile is per-workspace).
- Channels or models in a response don't match the profile (drift — refresh it).
If a current profile already exists and matches the active workspace, don't re-run — just use it.
What to inspect (cheap calls only)
All of these are light tools — no flood risk. Run them in this order:
- Confirm the workspace.
list_workspaces→ note the active workspace name/id. - Discover models.
list_models→ capture every model (name, KPI) and which
is the default/recommended. If zero models, stop and tell the user to set a default scenario in the platform UI — calibration can't complete without one.
- Learn the channels + spend scale in one call. `getcurrentbudget(default
model)` returns the per-channel current spend. This gives you (a) the real raw channel columns for this account and (b) the rough total spend scale. This is the cheapest way to learn the channel set — do NOT run a heavy optimization just to discover channels.
That's it for inspection. Don't pull historical row data or run optimizations during calibration — you only need the structure, not the analysis.
Build the channel map
For every raw channel column returned, derive a clean display name using the universal rule in lifesight-rendering (drop the metric affix, Title-Case, expand known abbreviations, preserve funnel qualifiers). Record both the raw token and the display name so other skills never have to guess.
Write the profile
Write lifesight-workspace-profile.md (in the user's project for Claude Code; see Persistence below for other surfaces). Use this format:
# Lifesight Workspace Profile
workspace: ()
calibrated:
default_model: —
models:
- — [default]
- —
## Channel map (raw → display)
=
=
...
## Scale
approx_total_spend: # for formatting + sanity checks
currency:
## Guardrails (customer-defined — confirm with the user; leave blank if unset)
iroas_floor: # don't recommend scaling channels below this
max_channel_change: # cap per-channel reallocation
locked_channels: # never recommend changing these
default_objective:
## Persona default
primary_user:
Keep it short — it's a config, not a report. Confirm the guardrails with the user rather than inventing them; an empty guardrails block is fine and means "ask before applying constraints."
Persistence by surface
- Claude Code / filesystem present → write the file as above; it persists.
- Claude.ai desktop (MCP only, no filesystem) → you can't write a file. Instead,
present the profile to the user and offer to save it to their project memory / custom instructions, or simply re-derive it at the start of each session (the inspection above is cheap). Never block on persistence — runtime re-derivation is always an acceptable fallback.
Hand back
Once written, summarize in one or two lines and route on:
> "Calibrated to : channels, default model (), > ~ total spend. Guardrails are unset — want to set an iROAS floor or > per-channel caps before we optimize?"
Then continue to whatever the user actually came to do (via the router).
What calibration never does
- It never runs a heavy optimization just to learn the workspace —
get_current_budget
is enough.
- It never invents guardrails or numbers — it reads real data and asks for the rest.
- It never writes account-specific values into the universal skill files — only into
the profile artifact.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lifesight
- Source: lifesight/lifesight
- License: MIT
- Homepage: https://lifesight.io/mcp
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.