-
Notifications
You must be signed in to change notification settings - Fork 0
Automate Mode
Automate mode lets the engine pick the right persona for the task. It classifies your work, scores every installed persona, and switches when the domain shifts.
# Turn on for the current project:
frameshift automate on
# With a sensitivity dial (0.0 = stable, 1.0 = responsive):
frameshift automate on --sensitivity 0.7
# Check current state:
frameshift automate status
# Pin the current persona (prevent switching):
frameshift automate lock
# Release the pin:
frameshift automate unlock
# Turn off:
frameshift automate offThe selection pipeline scores four components for each installed persona:
- Language overlap. How well the persona's declared language set matches the languages detected in your project.
-
Lexical match. IDF-weighted token hits between the task description and persona keywords. Anti-keywords (declared in
pack.toml) actively repel selection. - Intent alignment. The engine classifies the task into one of ten intents, then checks which personas declare that intent as primary.
- Capability fit. Whether the persona's required tools, filesystem scope, and network egress requirements match the environment.
Scores blend into a ranked list with confidence values. The top-ranked persona is activated unless the switch controller blocks it.
Ten intents: Implementation, Debugging, Review, Security, Writing, Ops, Testing, Refactoring, Performance, and Design.
Personas declare their primary intents in pack.toml:
[capability_manifest]
primary_intents = ["implementation", "security"]
anti_keywords = ["frontend", "css", "react"]The switch controller prevents thrashing. It applies hysteresis -- a recently-switched persona gets a stability bonus, and rapid back-and-forth switching is damped. The sensitivity dial controls how much hysteresis is applied.
At sensitivity = 0.0, the controller is maximally stable (resists switching). At 1.0, it is maximally responsive (switches freely).
When the engine picks wrong, record the override:
frameshift feedback --auto-pick web-designer --chosen rust --intent debuggingThe engine adjusts per-persona bias for future selections. Feedback entries carry optional intent context and decay over time.
# Show current preference biases:
frameshift prefs show
# Reset all preferences:
frameshift prefs resetYou can score personas without activating one:
# Table output (default):
frameshift select --task "debug a rust compilation error" --library ~/.local/share/frameshift/personas
# JSON output for programmatic use or LLM reranking:
frameshift select --task "debug a rust compilation error" --library ~/.local/share/frameshift/personas --format jsonJSON output includes the full context snapshot (detected languages, frameworks, inferred intent), per-candidate component scores, matched tokens, and rationale.
Every orchestrator decision is logged to the project's orchestrator/ directory. The audit log records what was selected, what was considered, the scores, and why.
Frameshift -- Same model. Different frame.
Getting started
Using Frameshift
Personas
Systems