| name | learning-loop |
| author | 0xabrar |
| description | Compound knowledge across sessions. Plan-tune dual-track psychographic profile (declared vs behavior), retro philosophy that demotes LOC, the keep-or-toss test for learnings. |
Learning loop
How to compound knowledge across sessions, projects, and time.
Source: gstack plan-tune/SKILL.md, retro/SKILL.md, learn/SKILL.md, SKILL.md.
The dual-track psychographic profile
Track two things separately:
- Declared profile โ what you say you want
- Inferred profile โ what your behavior actually shows
Five dimensions, each 0.0โ1.0:
scope_appetite
risk_tolerance
detail_preference
autonomy
architecture_care
Gap-band lexicon:
- <0.1 โ close
- 0.1โ0.3 โ drift
- >0.3 โ mismatch โ "your behavior disagrees with your self-description"
Iron rule
The user decides whether declared is wrong or behavior is wrong. Never auto-update declared from observed gap.
"One-way doors override never-ask" โ destructive / architectural / security questions ALWAYS ask, regardless of preferences.
Calibration gate
20 events + 3 skills + 8 question-ids + 7 days before showing inferred profile. Don't surface a "vibe profile" until you have signal.
Retro philosophy
"Features shipped leads โ what users got. Raw LOC is demoted to context because AI inflates it; ten lines of a good fix is not less shipping than ten thousand lines of scaffold."
Session classification
- 45-min gap = session boundary
- Deep session: 50+ min
- Medium: 20-50 min
- Micro: <20 min ("fire-and-forget")
Fix-ratio flag
>50% fix commits = "ship fast, fix fast" pattern signaling review gaps.
Focus score
% of commits in single most-changed top-level directory. Low score = scattered work.
Retro tone doctrine
"Praise should feel like something you'd actually say in a 1:1 โ specific, earned, genuine. Growth suggestions should feel like investment advice โ 'this is worth your time becauseโฆ' not 'you failed atโฆ'"
"3 Habits for Next Week" โ each must be <5 minutes to adopt.
Never compare teammates negatively.
Six learning types
When capturing a learning, label it:
pattern โ reusable approach
pitfall โ don't-do
preference โ user-stated
architecture โ structural
tool โ tool-specific gotcha
operational โ process / workflow
Four learning sources
observed โ saw it directly
user-stated โ user said it
inferred โ pattern-matched from behavior
cross-model โ both Claude and Codex agree
Confidence honesty
| Source | Confidence |
|---|
| Observed and verified | 8-9 |
| Explicit user statement | 10 |
| Inference | 4-5 |
Don't inflate. A speculation logged at 9 poisons future sessions.
The keep-or-toss test
"Would this insight save time in a future session? Would knowing this save 5+ minutes? If yes, log it."
Don't log:
- Obvious things
- One-time transient errors (network blips, rate limits)
- Things you'll remember anyway
Append-only with latest-wins. Staleness detection via file-existence checks. Conflict detection: same key, different insight = manual review.
Operational self-improvement loop
End every session by reflecting:
- Did you take a wrong approach and have to backtrack?
- Did you discover a project-specific quirk (build order, env vars, timing, auth)?
"A good test: would knowing this save 5+ minutes in a future session? If yes, log it."
Future sessions surface the learnings automatically.
Memory hygiene
Three privacy tiers, opt-in by default:
- Full โ everything allowlisted
- Artifacts-only โ plans, designs, retros, learnings (skip behavioral data like timelines)
- Off
What deliberately doesn't sync:
- Question-log
- Question-preference
Why: "Per-machine UX state. Behavioral data should not travel; durable artifacts (decisions, designs, learnings) should."
Per-remote trust triad
For consultants juggling multiple clients:
read-write โ full sync both ways
read-only โ pull learnings, never push
deny โ totally isolated
Designed for "freelance dev working on Client A in the morning and Client B in the afternoon" โ Client A's insights must not bleed into the brain Client B searches.
Ship velocity, not LOC
"Features shipped leads. LOC is demoted to context because AI inflates it."
When measuring weekly progress:
- โ
"Shipped X features, fixed Y bugs"
- โ "Wrote 10K lines"
The bug fix that's 10 lines beats the scaffold that's 10,000.
Closed-loop principle
Every workflow should generate data the next workflow can consume.
/ship โ ship log
- ship log โ
/retro velocity trends
/retro โ next sprint priorities
- next sprint โ
/ship again
If a workflow doesn't feed the next one, it's a dead end.
Verdict-style retros
Don't summarize. Lead with a verdict:
- โ
"We finally killed the staging-env flake. Shipped 3 features. Took 2 detours we should not have taken."
- โ "This week we worked on..."
A retro that doesn't take a position is a status update with extra steps.