Proposal

gasserane/personal-skills/skills/proposal

by gasseranea22368a1505356d9815ee7aa7ffd65f0afeb5badNo licenseListed Oct 9, 2026Updated Oct 9, 2026

Generate a donor proposal pack (CERV first) with the full MEL stack: intake, a fixed roster delegated to Vi (evidence-synthesis, toc-builder, indicator-designer, the gender and safeguarding lens specialists, proposal-architect), then the seven-artefact branded pack with the AI-disclosure colophon. Use when Ane builds a grant proposal or runs '/proposal --donor cerv'; donor is an argument so Gates/OSF/UN are later --donor values. Does not fill Part A portal forms, submit, or sign off finance/legal. Distinct from donor-proposal-scoring (scores a written proposal) and implementation-pack (post-award).

AI-generated overview

Generates a donor proposal pack with a fixed MEL roster, coherence checks and branded artefacts for grant submissions.

What it does
Loads a donor profile, runs a hybrid intake that never invents project-specific values, and delegates a fixed roster of sub-agents to produce needs analysis, theory of change, indicators, gender and safeguarding reviews, and MEL sections. It validates the architect handback for shape and coherence before emitting a seven-artefact branded pack plus a README control sheet. It adds an AI-disclosure colophon and reports the pack path, manifest, coherence report, criteria-coverage map, compliance findings and remaining placeholder count.
When to use it
Use when building a grant proposal pack, by default for the CERV donor, or when running the proposal command with a donor argument. It is not for filling Part A portal forms, submitting, or signing off finance and legal matters.
Requirements
Requires the ane_package Python modules for profile loading, handback validation and pack building, donor profile JSON files, and the referenced wiki concept documents. It delegates to sub-agents and may use a committed agent mirror on the web. It ships no scripts of its own and needs no credentials.

/proposal — donor proposal pack generator

You generate a fundable, donor-faithful proposal pack and hand standalone IPPF-branded artefacts to a project manager who owns them with no AI dependency. You are the Ann-style front-half: intake, roster, delegation. Vi executes.

Arguments

  • --donor <name> (default cerv). Maps to ane_package/proposals/donor_profiles/<name>.json.
  • Optional concept-brief path. If given, read it. If absent, run the intake below.

Step 1 — Load the donor profile

Run the profile loader (do not hand-parse the JSON):

python
from ane_package.proposals.config import load_profileprofile = load_profile("cerv")  # or the --donor value

State the locked parameters back to Ane: page limit, award-criteria split, funding type, indirect rate, co-financing rate.

Step 2 — Intake (hybrid; never invent)

If a concept-brief path was supplied, read it. Otherwise ask Ane, in one batched message, for the real inputs: project objective and needs; target call ID; partners/consortium; work-package outline; duration; any known indicators or ToC. Do NOT invent any project-specific value. If Ane cannot supply a value, it stays [PM: insert X] in the pack (factual-reliability rule).

Step 3 — Build the fixed CERV roster and delegate to Vi

Hand Vi this fixed roster (the CERV flow is deterministic; the roster does not vary by run):

  1. evidence-synthesis — needs analysis and justification (Relevance).
  2. toc-builder — the change pathway.
  3. indicator-designer — the indicator set.
  4. gender-transformative-assessor — gender findings (always spawned; scores in Quality/Impact).
  5. safeguarding-reviewer — do-no-harm gate (always spawned).
  6. proposal-architect — draft MEL sections, coherence check, criteria map, lens integration, compliance; returns the handback JSON.
  7. qa-reviewer — final gate.

Pass Vi: the loaded profile parameters, the intake inputs, a ## Standing instructions block (audience tier, voice, visual identity, plain-language layer), and the ## P1 wiki context block if available. On the web, Vi spawns these from the committed .claude/agents/ mirror.

Step 4 — Validate the architect handback

Take proposal-architect's handback JSON. Validate and coherence-check it before building:

python
from ane_package.proposals.architect_io import validate_handback, check_coherencedata = validate_handback(profile, handback)        # raises HandbackError on a bad shapereport = check_coherence(data.get("logframe"), data.get("workplan"), data.get("budget"))

If validate_handback raises, or report.ok is false, send Vi back to proposal-architect once with the specific break (report.issues). Do not build an incoherent pack.

Step 5 — Emit the pack

python
from ane_package.proposals.pack import build_packmanifest = build_pack(profile, out_dir, data=data)

The pack carries the seven artefacts plus a README control sheet, all IPPF-branded. Apply mel_wiki/wiki/concepts/edit-preservation-protocol.md when target file exists — if the output folder already holds an edited pack, treat Ane's content as canonical and edit scope-bounded, do not regenerate from scratch.

Step 6 — Disclosure and scope boundary

  • Add the AI-disclosure colophon per mel_wiki/wiki/concepts/ai-use-in-publications.md. AI is never an author.
  • State the scope boundary explicitly to Ane: Part A portal forms are filled in-portal; submission, binding co-financing, final budget sign-off, and legal eligibility/PIC-PADOR registration are owned by finance, legal, and the authorising officer — not by this skill.

Output

Return the pack folder path, the manifest, the coherence report, the criteria-coverage map, and the compliance findings. Surface any [PM: insert X] count so Ane sees what the PM must still complete.

Source and attribution

Source:gasserane/personal-skillsinskills/proposalat commita22368a

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal