# Bank Proposal Generator

> Generate tailored bank proposals for FinVerge products (NACH, PG, Collect Stack, Collections, SoftPOS, Orchestrate, Connected Banking, BBPS COU, PA-P). Use whenever the user mentions creating, drafting, preparing, or generating any kind of proposal, pitch, deck, or presentation for any bank — HDFC, ICICI, SBI, Axis, Kotak, Yes, IndusInd, Canara, PNB, BoB, Federal, IDBI, RBL, HDFC, any co-operative bank, any RRB — even when the user doesn't explicitly say "proposal". Triggers on phrases like "make a proposal for HDFC", "bank pitch", "bank deck", "draft something for Axis", "we need to pitch ICICI", "presentation for SBI on Collections", "prepare for the Kotak meeting", and similar. Handles product selection from the shared Product KB, compliance language (RBI/NPCI/PCI-DSS), stakeholder-specific framing (CIO, CTO, COO, CRO, Head of Digital, Head of Transaction Banking), bank logo retrieval (local-first, internet fallback with caching), FinVerge branding, and output in DOCX, PPTX, or Canva format.

- Skill: `himanisharrma/bank-proposal-generator` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add himanisharrma/bank-proposal-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/himanisharrma/bank-proposal-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: himanisharrma (https://skillmd.com/u/himanisharrma)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/himanisharrma/bank-proposal-generator

---


# Bank Proposal Generator

A step-by-step guided skill that produces a tailored bank proposal. The skill gathers inputs conversationally, resolves them against a shared Product KB and asset library, and generates the final document in the user's chosen format.

## Direction of the proposal

**Bank proposals always go FinVerge → Bank.** FinVerge is the initiator and seller, inviting the Bank as a partner. The house cover tagline is "Banking Collaborations" — reinforcing partnership framing from slide 1. Do not write proposals as if the Bank is asking FinVerge for a service; write as FinVerge proposing a collaboration opportunity to the Bank.

## When to use

Use this skill for **any request** involving a bank-facing sales document. Examples:
- "Make a proposal for HDFC Bank"
- "Draft a pitch deck for ICICI for Collections"
- "Axis is meeting us next week, need a presentation"
- "Put together something for SBI on NACH and PG"

Do NOT use this skill for non-bank audiences (enterprise merchants, referral partners, direct merchants) — those will have their own dedicated skills in this plugin.

## Core design principle

The skill is designed to be **conversational**. Ask one thing at a time, confirm before proceeding, and only call heavy tools (DOCX/PPTX generation, logo fetching) after all inputs are gathered and confirmed.

If the user provides some inputs upfront (e.g., "Make a PPTX for HDFC on Collections for the CIO"), skip those steps and only ask for what's missing.

## Step 1: Gather bank name

Ask:
> Which bank is this proposal for?

Once received, normalize the name (lowercase, remove "Bank"/"Ltd" suffix for lookup) and note both the display name (e.g., "HDFC Bank") and lookup key (e.g., "hdfc").

Quickly check `assets/logos/INDEX.md` to confirm whether a logo is already cached. Don't fetch yet — just note the status for Step 5.

## Step 2: Gather product selection

Ask:
> Which FinVerge products do you want to include? Here's what's available:
>
> **Ready to sell now:** NACH, Collect Stack, PG 2.0 (digital modes)
> **Enterprise features building:** PG (Pod 1), Collect (Pod 1), Collections (Pod 1)
> **In development:** Collections, SoftPOS, Orchestrate, Connected Banking, BBPS COU, PA-P
>
> You can pick one or multiple.

To see the full list of available products and their readiness status, read `assets/product-kb/INDEX.md` — it includes the product keys you'll use with the KB loader.

**For each selected product, load its content from the plugin-wide shared KB** via the `kb_loader`:

```python
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[3] / "shared"))
from kb_loader import load_public

# Customer-facing facets available for every product:
nach_external   = load_public("nach", "external")    # marketing positioning
nach_features   = load_public("nach", "features")    # capabilities table
nach_pricing    = load_public("nach", "pricing")     # pricing tiers
nach_compliance = load_public("nach", "compliance")  # relevant compliance clauses
```

Valid product keys: `pg`, `nach`, `collect`, `orchestrate`, `kyc`, `merchantos`, `partner-dashboard`, `collections`, `connected-banking`, `bbps-cou`, `pa-p`.

If a product's `external.md` contains `[TO FILL:` markers, that product is **not fully ready for customer proposals** — flag to the user, and either exclude it from the deck or include it with visible gap markers.

**Security guarantee:** the `load_public()` function has a hardcoded whitelist. It can only access `external`, `features`, `pricing`, and `compliance` facets. It **cannot** return internal DELTA4 UBP analysis — that lives in a separate `shared-kb-internal/` directory accessible only via `load_internal()`, which must never be called from customer-facing output code.

## Step 3: Gather stakeholder / audience

Ask:
> Who's the primary audience for this proposal?
>
> - **CIO / CTO** — technical framing (APIs, integrations, security)
> - **COO / Head of Operations** — operational framing (settlement, reconciliation, SLAs)
> - **CRO / Head of Risk & Compliance** — risk framing (RBI, PCI-DSS, audit)
> - **Head of Digital Banking** — customer experience & digital rails
> - **Head of Transaction Banking** — corporate banking, collections
> - **Business / Sales** — revenue impact, volume targets
> - **Mixed / Not sure** — neutral executive framing

Read `references/stakeholder-profiles.md` for what each role cares about. This shapes the emphasis and language in each section.

## Step 4: Gather requirements / context

Ask:
> Any specific requirements, pain points, or context for this bank? (Optional — say "none" to skip)
>
> Examples:
> - "They want to modernize their NACH collections"
> - "Currently using XYZ competitor, we're replacing them"
> - "Focus on the cooperative banking segment"
> - "They flagged concerns about settlement timelines"

This becomes the "Bank Context" section of the proposal. If none, use a generic bank context based on public info.

## Step 5: Gather output format

Ask:
> What format do you want the proposal in?
>
> 1. **PPTX** — slide deck (most common for bank pitches)
> 2. **DOCX** — formal document (for compliance/procurement review)
> 3. **Canva** — designed presentation via Canva MCP (most polished)
> 4. **PDF** — PDF via DOCX or PPTX conversion

Default to PPTX if the user is ambivalent.

## Step 6: Optional inclusions

Ask:
> Anything extra to include? (Optional)
>
> - **Per-product pricing** — pulled from `load_public(product, "pricing")` for each selected product
> - **Cross-product pricing rules** — from `assets/product-kb/pricing-rules.md` (tier logic, discount guardrails)
> - **Revenue sharing terms** — from `assets/product-kb/revenue-sharing.md`
> - **Settlement timelines** — from `assets/product-kb/settlement-timelines.md` (per-payment-mode)
> - **Case studies** — pulled from each selected product's `external.md` "case studies" section (if present)

## Step 7: Confirm and generate

Summarize the inputs and confirm:
> Here's what I'll generate:
> - Bank: **HDFC Bank**
> - Products: **NACH, Collections**
> - Audience: **Head of Transaction Banking**
> - Format: **PPTX**
> - Includes: Pricing, Settlement timelines
>
> Proceed?

Once confirmed, proceed to generation.

## Generation flow

### 1. Resolve bank logo

```
logo_path = check assets/logos/INDEX.md for the normalized bank key
if not found:
    run scripts/fetch_bank_logo.py "<bank name>"
    logo_path = path of newly-downloaded file
```

If `fetch_bank_logo.py` fails (rare), proceed without logo and note it in output gaps.

### 2. Load content sources

- **Company profile** (canonical stats, credentials, awards): `assets/product-kb/finverge-about.md`
- Product data: **`load_public(product, facet)`** from the plugin-wide shared KB (for each selected product, pull `external`, `features`, `pricing`, `compliance`)
- **Deck structure & narrative patterns** (FinVerge house style): `references/deck-patterns.md`
- Stakeholder framing: `references/stakeholder-profiles.md` (relevant section only)
- Compliance language: `references/compliance-clauses.md` (pick clauses relevant to selected products)
- Bank language/tone: `references/bank-language.md`
- Proposal structure: `references/proposal-sections.md`
- Content skeleton: `assets/templates/proposal-template.md`

### 3. Generate draft content

Following `assets/templates/proposal-template.md` as the outline, fill in each section using:
- Bank context (Step 4 input + public bank info if needed)
- Product details (from KB)
- Stakeholder-appropriate language (from profiles)
- Compliance clauses where relevant
- Formal bank tone throughout (no marketing fluff)

Note any `[TO FILL: ...]` placeholders from the KB — include them in the output with a clear "⚠ To be filled by sales team" marker.

### 4. Produce the output file

Depending on format chosen in Step 5:

**For PPTX:** use the `anthropic-skills:pptx` skill. Structure:
- Slide 1: Cover (bank logo + "Proposal for [Bank]" + FinVerge logo)
- Slide 2: Agenda
- Slides 3+: one section per topic from `proposal-sections.md`
- Final slide: Next Steps + Contact

**For DOCX:** use the `anthropic-skills:docx` skill. Format as formal document with:
- Header: bank logo (left) + FinVerge logo (right)
- Cover page, TOC, sections per `proposal-sections.md`
- Footer: "Confidential — [Bank Name]"

**For Canva:** use the Canva MCP (`mcp__04e3e648-...:generate-design-structured`). Pass the structured content as slides with FinVerge brand kit applied.

**For PDF:** generate as DOCX or PPTX first, then convert (LibreOffice headless or Canva export).

### 5. Apply branding

Invoke the `finverge-branding` skill to apply brand colors, typography, and tone. For Canva, apply the FinVerge brand kit directly.

### 6. Save and report

Save to: `~/Downloads/bank-proposals/<bank-key>-<YYYY-MM-DD>/`
- `Proposal.pptx` (or .docx / etc.)
- `gaps.md` — list of `[TO FILL]` items the user needs to complete

Report back:
> Proposal generated: `~/Downloads/bank-proposals/hdfc-2026-04-17/Proposal.pptx`
>
> **Gaps to fill** (3 items):
> 1. NACH pricing tier for Tier-2 banks (in Pricing section)
> 2. Specific settlement SLA commitment (in Operations section)
> 3. Integration timeline estimate (in Next Steps)
>
> Want me to adjust anything?

## Handling edge cases

- **Bank name not recognized:** ask the user to confirm the full legal name. Log the new bank to `INDEX.md`.
- **All selected products have empty KB:** tell the user the KB needs to be filled in first, but offer to generate a structural skeleton anyway.
- **Logo fetch fails:** proceed without logo, note it in gaps.
- **Conflicting product info (e.g., different pricing across files):** flag the conflict and ask the user which is authoritative.

## Reference files (read only when needed)

- `references/deck-patterns.md` — FinVerge house deck structure, visual style, narrative arc
- `references/bank-language.md` — tone, terminology, formal phrasing
- `references/compliance-clauses.md` — RBI, PCI-DSS, NPCI standard clauses
- `references/proposal-sections.md` — section structure and guidance
- `references/stakeholder-profiles.md` — per-role framing guide

Don't load all of them upfront — load only what's needed for the current generation.

## Asset files

**Per-product content:** not here — loaded from the plugin's `shared-kb/` via `kb_loader.load_public()`. See `assets/product-kb/INDEX.md` for the product key list.

**Cross-cutting proposal references (this skill only):**
- `assets/product-kb/finverge-about.md` — company profile (stats, certifications, awards)
- `assets/product-kb/pricing-rules.md` — pricing tier logic + discount guardrails
- `assets/product-kb/settlement-timelines.md` — per-payment-mode settlement cycles
- `assets/product-kb/revenue-sharing.md` — rev-share models for partner arrangements
- `assets/product-kb/INDEX.md` — documentation of the above + pointer to shared-kb/

**Bank logos (shared across the plugin):**
- Cached bank logos live at `../../shared-assets/logos/banks/<bank>.png`
- Use `brand.bank_logo("HDFC Bank")` to resolve the path
- If missing, run `python3 ../../shared/fetch_bank_logo.py "Bank Name"` to download and cache

**Templates:**
- `assets/templates/proposal-template.md` — content skeleton

## Scripts

- `scripts/fetch_bank_logo.py` — downloads and caches a bank logo. Usage:
  ```bash
  python3 scripts/fetch_bank_logo.py "HDFC Bank"
  ```
  Updates `assets/logos/INDEX.md` on success.

