Install
$ agentstack add skill-jeffbrines-openfpa-fpa-learn-business ✓ 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
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 . If it is uninitialized, run openfpa init --business-name "". Then run openfpa doctor . The CLI emits JSON. If the console script is unavailable in a source checkout, use python3 -m pyfpa.cli.
- Inspect local evidence first. Run
openfpa inspect-datafor
every user-supplied folder, then read the relevant financials, operating files, documentation, and existing model code before asking questions. Record each fact with openfpa intake-record , 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 and ask that related round of at most three questions. After every response, call openfpa intake-record with --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.ArchitectureProposal
covering the model objective, connectors, company-specific model components, generated skills, risks, and validation checks. Call pyfpa.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
- Generate approved artifacts using the repository's agent operating contract and local
skill format, into skills/generated/ (and agents/generated/). Company models and connectors belong in models/generated/ and connectors/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.
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.