Install
$ agentstack add skill-jeffbrines-openfpa-fpa-capture-correction ✓ 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.
About
Capture a Correction (Operate)
Overview
A human reviewing a forecast is the highest-signal feedback there is - they catch structural errors and domain knowledge the backtest can't see, and catch them now. This skill turns that into durable memory: a typed correction in .fpa/corrections/ that grounds every future forecast.
Core principle: the human is the authority; capture, confirm interpretation once, then it persists. Everything is plain markdown the user owns.
The three correction types
- parametric - a concrete driver fix ("December runs ~2× a normal month"). Becomes
an override (a config path + value) applied to every future forecast via pyfpa.apply_corrections.
- structural - a methodology fix ("you're double-counting deferred revenue"). A
pre-ratified structural proposal (the human authored it) - route it to fpa-learn-business to generate the skill/model change; do NOT wait for backtest misses.
- context - a one-time-item note ("that Q3 spike was a one-off contract"). Annotates so
fpa-cfo-judgment's one-time screen keeps the backtest from "learning" a one-off.
Workflow
- Classify the correction (parametric / structural / context).
- Identify the target - the driver path (e.g.
channels[*].seasonality[11],
working_capital.dio_days), line, or profile area. For parametric, draft the concrete override: {path, value}.
- Write the correction with
pyfpa.save_correction. Setslugto a
- string (e.g. 2026-06-08-december-seasonality) - save_correction uses the whole slug as the filename (.fpa/corrections/.md), so keep the date in it. Include frontmatter (type, target, status, date, override) and a markdown body (**Was off:** … **Correction:** … **Why:** [[…]]), linking to the assumption/profile it corrects with [[wikilinks]].
- Confirm interpretation. Echo back the concrete change ("I'll set December
seasonality to 2.0 on all channels - right?"). Only on confirmation set status: applied.
- Keep
.fpa/MEMORY.mdcurrent - the vault index (see below).
Applying corrections
When building any forecast, pyfpa.apply_corrections(cfg, load_corrections(".fpa/corrections")) folds the applied parametric corrections into the config. The per-client loop refines from there - corrections are seeds, not mandates.
The .fpa/ vault (MEMORY.md index)
Keep a .fpa/MEMORY.md that orients a human, Obsidian, or Claude:
business-profile.md- what we know about the business.corrections/- human corrections (this skill).forecasts/*.snapshot.yaml,scorecard.md- forecast snapshots + backtest track record.learnings.md- accepted model changes.
All plain markdown - open it in Obsidian if you like, but never required.
Guardrails
- Confirm interpretation before
applied. Reversible viastatus(open/applied/superseded). - The backtest monitors applied corrections and may flag a stale one - it never reverts;
the human decides.
Next
Correction captured → fpa-monthly-close / fpa-board-briefing (re-run grounded by it).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JeffBrines
- Source: JeffBrines/openfpa
- License: MIT
- Homepage: https://www.guiderail.io
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.