Quant skills (the learning loop)
How Forven turns backtest results into versioned, confidence-scored quant skills, closes the loop on real outcomes, and feeds the lessons back into strategy creation.
Most retail tools forget every backtest the moment it finishes. Forven does the opposite: it reads each result, extracts what it can defend, and stores it as a quant skill — a versioned, confidence-scored trading insight. Those skills then steer the next round of strategy creation, so the lab gets a little less naive every cycle.
This page is for anyone who wants to understand the learning loop: how a skill is born from a backtest, how its confidence moves, how real strategy outcomes close the loop, how the store feeds back into the agents, and where you can see and steer it.
The Memory Bank page is gone. Earlier builds had a
/memorypage backed by a ChromaDB vector store. That layer was removed in July 2026. It was effectively unused, and SQLite plus theSKILL.mdfiles below were already the real store. The learning loop itself is unchanged. You now reach skills through the API, the MCP tools, and the approvals queue, as described in Where you see skills now.
Forven is a research tool. Quant skills describe patterns observed in historical and simulated data. None of it predicts the future, confidence scores are not forecasts, and nothing here is financial advice.
The loop in one picture
The learning loop runs in the background, end to end:
- A backtest completes.
- Forven decides whether the result is worth analyzing (enough trades to mean something).
- An extraction step reads the metrics and emits either a new candidate hypothesis or an update to an existing skill.
- A candidate hypothesis that accumulates enough corroborating backtests promotes to a full quant skill.
- The skill is read by the agents, steering which strategies get proposed next.
- When a strategy that cited a skill goes live or is retired to the graveyard, its outcome adjusts that skill's confidence — up or down.
- Periodic consolidation archives the dead weight and prunes stale candidates.
Each part is described below.
What a quant skill is
A quant skill is a validated, versioned trading insight, stored as a SKILL.md file under your FORVEN_HOME (the quant-skills/ directory inside ~/.forven). Each skill carries:
- description — what the pattern is, in plain language.
- skill_type — one of
regime,failure,indicator,combo,params. - confidence — a score from
0to1(see confidence below). - evidence — the array of backtests that support it.
- what_works / what_doesnt_work — the actionable do/don't lists the agents read.
- version history — every change, with a diff and a change summary.
Skills are the durable layer of Forven's knowledge. They are deliberately conservative: a pattern does not become a skill on the strength of a single lucky backtest.
Candidate hypotheses: the provisional layer
Before a skill exists, there is a candidate hypothesis — an unconfirmed observation extracted from a backtest. It holds a pattern, an observation, and the list of backtest_ids that support it. A candidate hypothesis is domain knowledge on probation: a hint, not a conclusion.
The candidate hypotheses here are quant-skill observations on their way to becoming skills. They are not ideas — the thesis, mechanism and disproof that strategies are built from — even though older builds called those "hypotheses" too. This page is about the learning store.
How a skill is born
Extraction runs after a backtest, off the critical path so it never blocks the result:
- Worth analyzing? When a backtest completes, Forven checks whether the result is worth reading — it requires at least 10 trades before extracting anything. A two-trade fluke is noise, not a lesson.
- Extract the insight. A structured extraction step reads the backtest metrics and decides on one of three actions:
- update_skill — the pattern matches an existing skill. Forven appends the new backtest to the evidence, recomputes confidence, bumps the version, and rewrites
SKILL.mdwith a new history row. - new_hypothesis — the pattern is novel. Forven stores a new candidate hypothesis with its pattern, observation, and
backtest_id. Subsequent similar backtests increment its count. - skip — an unremarkable result, ignored.
- update_skill — the pattern matches an existing skill. Forven appends the new backtest to the evidence, recomputes confidence, bumps the version, and rewrites
- Run in the background. Extraction is submitted to a background thread, so backtest completion is never delayed by it.
Promotion: candidate → skill
A candidate hypothesis promotes to a full quant skill once it accumulates three supporting backtests (PROMOTION_THRESHOLD = 3). At that point Forven:
- deletes the candidate hypothesis file,
- writes a new
SKILL.mdandevidence.json, - records a
quant_skills_historyrow.
Promotion is automatic when the count reaches the threshold. An operator can also call force_promote_hypothesis() to promote a candidate immediately, regardless of count — useful when you already trust an observation and want it influencing strategy creation now.
A candidate hypothesis is provisional by design. Three backtests is a floor, not a guarantee of truth — it is the minimum evidence before an observation is allowed to steer future work.
Confidence: how trust moves
A skill's confidence is a single 0–1 score for how reliable it is. It is not set once and frozen; it moves as evidence arrives and as real strategies succeed or fail.
Two forces drive it:
- Evidence recency. Confidence is weighted toward recent evidence. A supporting result's weight decays from
1.0down toward0.3over roughly 90 days, so a skill that earned its standing two years ago does not coast on stale wins. Consistency matters too: evidence where the Sharpe held above0.5counts as positive corroboration. - Real outcomes. When a strategy that cited a skill goes live or fails, the result nudges the skill's confidence: roughly +3% on a success, −5% on a failure, and
0on a neutral outcome. Failures cost more than successes pay — the asymmetry is deliberate, because a pattern that breaks in practice should lose standing faster than it gained it.
Higher confidence weights a skill more heavily in what the agents see. Lower confidence eventually sends it to consolidation.
Closing the loop: skill outcomes
The most important part of the loop is the part most tools skip: checking whether a remembered insight actually helped.
Forven runs outcome closure when a strategy changes stage in one of two ways:
- Positive — it is promoted to Live (
live_graduated). - Negative — it is archived or rejected from the gauntlet, paper, or live.
Two moves never count: an untestable archive (it says nothing about the skill) and a stage change you force by hand (that is your judgment, not the skill's). For a qualifying move, Forven:
- Looks up the cited skills in that strategy's task chain — the skills the agent named when it registered the strategy.
- Writes a
skill_outcome_eventsrow recording the outcome and the confidence delta. - Rewrites the skill's
SKILL.mdwith a new version and a history row.
Outcome closure is idempotent on the (skill_name, strategy_id, triggered_by) tuple: re-running it for the same outcome is a no-op (INSERT OR IGNORE), so a skill's confidence is adjusted exactly once per strategy per trigger. There is no double-counting.
This is the discipline that keeps the store honest. A pattern that looked brilliant in one backtest but kept producing strategies that died in the gauntlet or faded in paper will quietly lose confidence, no matter how good it once looked.
Confidence movement is illustrative of a skill's track record inside Forven's own tests — not a forecast. A high-confidence skill is one that has held up so far, not a promise it will keep working.
Feeding back into strategy creation
Skills are not a passive archive. They are read every time an agent runs a task — including the Strategy Developer's strategy-creation tasks, where it writes an idea and builds strategies from it.
Each agent's context includes a Learned knowledge block: get_ideation_context(regime) pulls the top five skills by confidence — filtered to the current market regime where one applies, or general otherwise — with their what_works / what_doesnt_work lists. The agent is told to cite any skill that informs a strategy it registers (cited_skills), which is what lets real outcomes adjust that skill later.
This is what makes the loop a loop: every backtest can teach a skill, and every skill can shape the next strategy.
Diversity, not just confidence
Confidence alone could push the lab into an echo chamber — endlessly re-proposing whatever family is currently winning. A separate strategy diversity guard, also in every agent's context, counters that:
- Saturation. It flags families that make up too large a share of recent strategies and asks for something else.
- Outcomes. Over the last 90 days, it counts per family how many strategies were attempted and how many survived — and a strategy survives only when its closed paper trades made money. Reaching paper is not survival: passing the gates did not predict forward results, and steering by gate passes taught agents to fit the gates. A family with at least 8 attempts and no survivors is listed as a dead region; families with survivors are listed with their record.
- Fair counting. Strategies archived as untestable (broken code, missing data, never trading) are not counted as attempts; they say nothing about the family.
The guard is a sibling mechanism to the learning loop rather than part of it. See ideas for how strategy creation works.
Consolidation and pruning
Left alone, any learning store sprawls into near-duplicates and dead entries. A periodic consolidation job keeps it tight:
- Archive low-value skills. A skill that has stayed below
0.3confidence across 20 or more samples is archived — it had its chance and did not earn its keep. - Prune stale candidates. Candidate hypotheses that never reached the promotion threshold are pruned after about 90 days (
CONFIDENCE_DECAY_DAYS).
Consolidation runs as a weekly scheduler job (Quant Skills Consolidation, Sunday evening). You can also trigger it on demand with POST /api/quant-skills/consolidation. Treat it as permanent: archives and prunes are not reversible.
The store on disk and over HTTP
Skills live as files under FORVEN_HOME, and the same data is exposed through the local API for the UI. The store is plain enough to inspect directly.
# Where the learning store lives (defaults to ~/.forven)
$env:FORVEN_HOME
# Skills are SKILL.md files under quant-skills/, candidate hypotheses under _hypotheses/,
# and archived skills under _archived/The local HTTP API surfaces the store in tiers, so you can list cheaply and drill in only when needed. These routes are operator-gated: open on a keyless localhost, and they require the operator key once one is set.
| Method & path | What it returns |
|---|---|
GET /api/quant-skills | Summary list per skill. Filter with regime, skill_type, min_confidence (default 0.5), and limit (default 10). |
GET /api/quant-skills/{name} | Full skill detail. |
GET /api/skills/{name}/section/{section} | One slice: what_works, what_doesnt_work, evidence, metadata, or history. |
GET /api/skills/{name}/history · /diff | Version history, and a diff between two versions (from_version, to_version). |
GET /api/skills/{name}/outcomes | Outcome events for the skill: outcome, confidence delta, before and after. Paged with limit and offset. |
GET /api/skills/declining | Skills whose confidence fell recently (days, limit). |
GET /api/quant-skills/hypotheses | Pending candidate hypotheses with their supporting-backtest count. |
POST /api/quant-skills/hypotheses/{id}/promote | Promote a candidate to a skill. |
DELETE /api/quant-skills/hypotheses/{id} | Dismiss a candidate. |
GET /api/quant-skills/stats | Store statistics. |
POST /api/quant-skills/consolidation | Run consolidation now. |
DELETE /api/quant-skills/{name} | Archive a skill. |
Where you see skills now
With the Memory Bank page retired, skills surface in four places:
- In the agents' context. Every agent task pulls the top skills for the current regime automatically. This is the main way skills do their job.
- Over MCP. An external agent connected through the MCP server calls
forven_get_quant_skillsto load priors before designing a strategy, the same call the Drop Zone loop recommends as step two. - In the approvals queue. When the brain synthesizes a better wording for a skill from outcome closure, it cannot rewrite the file directly. It queues a skill update proposal that you review and approve on the Approvals page, and only then is the
SKILL.mdrewritten. - On disk and over HTTP. The files under
FORVEN_HOME/quant-skills/and the API routes above are the full, auditable store.
Steps: inspect a skill
-
List skills with their confidence and sample counts:
Invoke-RestMethod http://127.0.0.1:8003/api/quant-skills -
Read one skill's do/don't lists, evidence, and version history with
GET /api/quant-skills/{name}andGET /api/skills/{name}/history. -
Check how real strategies have moved its confidence with
GET /api/skills/{name}/outcomes. -
Review pending candidate observations with
GET /api/quant-skills/hypotheses, and promote one early withPOST /api/quant-skills/hypotheses/{id}/promoteif you already trust it.
What you'll see
A list of skills sortable by confidence, and per skill its do/don't lists, its evidence, a version history with diffs, and outcome events tied to real strategies. A candidate hypothesis shows its backtest count climbing toward the promotion threshold of three.
The brain's working notes are separate
Skills are shared, long-lived knowledge. The brain also keeps a short, private working note that it carries between decision cycles. You can read and edit it on the Brain page under Working Notes. That note is the orchestrator's scratchpad, not part of the learning store.
Caveats
- Skills can be wrong. A low-confidence skill is a hint, not a conclusion. Trust rises only as out-of-sample evidence and real outcomes accumulate.
- Confidence describes the past. It reflects how a pattern has performed in Forven's backtests and simulations; it does not predict performance.
- Promotion is a floor, not proof. Three backtests is the minimum to promote a candidate, not a certificate of truth.
- Consolidation is permanent. Archiving and pruning are not reversible — review before you run them.
- This is beta software. The thresholds and deltas above are the current defaults and can change.
Forven is a research tool. The quant-skills loop describes a research process, not predicted performance. Past survival of a strategy is not predictive of future results, and nothing here is financial advice.
Related
Evolution & recalibration
How Forven advances surviving strategies through the pipeline, keeps the agents from minting the same idea over and over, and re-tunes parameters when the market regime shifts — only when a backtest proves the change is better.
Scheduler & jobs
The Forven scheduler — the 47 built-in background jobs that drive strategy creation, testing, trading, data and maintenance; where to see them on Agents → Schedules, what each system mode lets run, and how to pause or re-time them.