Fpa learn business
Use when starting FP&A work for a new company, onboarding a business into openfpa, or asked to "understand my business / set up a model for us" before any forecasting - produces a durable business profile and generates business-specific skills.From its SKILL.md
npx -y skills add JeffBrines/openfpa --skill fpa-learn-businessAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 7 commands, including `openfpa status <company-root>` and 6 more.
SKILL.md
4.7 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Learn the Business (Phase 0)
Overview
Before scaffolding any model, learn the business. This produces two artifacts: a durable business profile that every other openfpa skill reads first, and - where the standard skills don't fit - bespoke skills/agents generated for this specific company. The toolkit re-tools itself per business instead of forcing a generic template.
Core principle: A forecast is only as good as the business understanding behind it. Encode that understanding once, explicitly, so it grounds everything downstream.
When to use
- A new company is being onboarded into openfpa
- You're asked to "build us a model" / "understand our business" before forecasting
- An existing
.fpa/business-profile.mdis missing or stale
Do not force this workflow when the user asks for a narrow task that can be completed without understanding the whole company.
Workflow
-
Check and initialize the workspace. Run
openfpa status <company-root>. If it is uninitialized, runopenfpa init <company-root> --business-name "<name>". Then runopenfpa doctor <company-root>. The CLI emits JSON. If the console script is unavailable in a source checkout, usepython3 -m pyfpa.cli. -
Inspect local evidence first. Run
openfpa inspect-data <data-root>for every user-supplied folder, then read the relevant financials, operating files, documentation, and existing model code before asking questions. Record each fact withopenfpa intake-record <company-root>, including file references and confidence. Never access an external MCP/API system without the user's approval. -
Ask only what remains unknown. Run
openfpa intake-next <company-root>and ask that related round of at most three questions. After every response, callopenfpa intake-recordwith--source-type user. Direct answers are confirmed immediately. Only ask the user to resolve conflicting or low-confidence inferred facts. -
Repeat short rounds until
pyfpa.intake_ready(intake)is true. Do not ask questions already answered by local evidence or earlier conversation. -
Propose the company architecture. Build a
pyfpa.ArchitectureProposalcovering the model objective, connectors, company-specific model components, generated skills, risks, and validation checks. Callpyfpa.write_onboarding_outputs(intake, workspace, proposal)to write:.fpa/business-profile.md.fpa/decisions/initial-model-architecture.md
-
Stop for approval. Summarize known facts, remaining unknowns, and the proposed architecture. Do not scaffold or generate artifacts until the user approves the proposal.
-
After approval, seed from the portfolio library. If one exists, start the model from what generalized across same-type clients. Priors are seeds; this client's learning loop refines them.
-
Identify gaps the standard skills don't cover, and propose bespoke skills/agents:
- Product company with SKUs → a
sku-profitabilityskill - SaaS → an
arr-waterfall/ cohort-retention skill - Logistics/fleet → a
driver-cost-scorecardskill
- Product company with SKUs → a
-
Generate approved artifacts using the repository's agent operating contract and local skill format, into
skills/generated/(andagents/generated/). Company models and connectors belong inmodels/generated/andconnectors/generated/. Each generated artifact MUST cite the profile facts that justify it and include a focused test or reconciliation check. -
Apply existing corrections. Before forecasting, fold in human corrections:
pyfpa.apply_corrections(cfg, pyfpa.load_corrections('.fpa/corrections')). Route anytype: structuralcorrections through this skill's skill-generation path as pre-ratified proposals (the human already authored them - don't wait for backtest misses).
Guardrails (self-extending, NOT self-executing)
- Generated artifacts go in
generated/namespaces in the client's own repo - never the public openfpa template. - Human review gate: propose each new skill/agent with its rationale and WAIT for approval before writing it.
- No profile fact → no generated skill. Speculation is not a justification.
- Record material generated changes as
pyfpa.Experimentfiles in.fpa/experiments/; preserve rejected and reverted experiments.
Next
After architecture approval, use fpa-scaffold-model to build the runnable model. Consult fpa-cfo-judgment throughout.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.