View, manage, and analyze learned behavioral patterns (feels). CLI-agnostic learning system with confidence scoring.
Manage learned behavioral patterns captured during execution. Feels are project-scoped by default with optional global promotion.
| Command | Purpose |
|---|---|
/feels | List all feels with confidence, domain, scope |
/feels add "description" | Create a manual feel (confidence: 0.7) |
/feels forget <id> | Remove a feel |
/feels promote <id> | Copy a project feel to global scope |
/feels analyze | Run analyzer on observations + usage-data |
/feels observe "note" | Add a manual observation |
/feels status | Summary stats (count, sources, last analyzed) |
Read .abilities/feels/index.yaml and display all feels:
| ID | Confidence | Domain | Trigger | Scope |
|----|------------|--------|---------|-------|
| prefer-tdd | 0.7 | testing | when implementing features | project |
| use-server-actions | 0.6 | architecture | when creating mutations | project |
| always-validate | 0.8 | security | when handling input | global |
Also read ~/.abilities/feels/index.yaml for global feels.
If no feels exist: "No feels yet. Run /feels analyze to extract patterns from your sessions, or /feels add 'pattern' to create one manually."
Claude Code users: Suggest running /insights first to refresh session data.
Create a manual feel. Load references/manual-capture.md for the full pattern.
.abilities/feels/{id}.yaml with confidence 0.7, source: manualRemove a feel by id:
.abilities/feels/{id}.yamlindex.yamlIf id not found, check ~/.abilities/feels/ (global). If global, confirm before deleting.
Copy a project feel to global scope:
.abilities/feels/{id}.yamlscope: global, remove project_id~/.abilities/feels/{id}.yaml~/.abilities/feels/index.yamlRun the feels analyzer. Reads from all available sources:
bash scripts/feels-analyze.sh
If on Claude Code, suggest running /insights first: "For best results, run /insights first to refresh your session data."
To force re-read of all usage-data (reset watermark):
bash scripts/feels-analyze.sh --from-usage-data
Add a manual observation to .abilities/feels/observations.jsonl:
{"ts":"<now>","type":"preference","context":"manual observation","after":"<note>","domain":"workflow","source":"manual"}
Display summary stats:
Feels Status
─────────────
Project feels: 5 (in .abilities/feels/)
Global feels: 2 (in ~/.abilities/feels/)
Observations: 23 (observations.jsonl)
Last analyzed: 2026-03-16
Usage-data: available (last read: 2026-03-16)
Top domains: testing (3), workflow (2), architecture (1), security (1)
Avg confidence: 0.58
If .abilities/feels/ doesn't exist when any subcommand is invoked:
bash scripts/feels-init.sh project
Then proceed with the subcommand.