MetodologIA commercial proposal engine — bilingual (ES+EN), multi-format, brand-resolved. Activate whenever the user mentions: proposal, quote, offer, budget for a client, pitch, commercial presentation, "design a service", "handle this request", "adapt for this client", "innovate a service", "white-label for partner", "co-brand with X", "new service variant", or any document intended to sell or scope a MetodologIA service. Operates in THREE MODES: — STANDARD: existing catalog service, derive correct version per audience/segment — INNOVATION: new service or variant designed from canonical building blocks — CATALOG EDIT: add/modify a service or condition without generating a proposal Default output: 10 files per proposal (HTML·DOCX·XLSX·PPTX·MD × ES+EN + verification report). Branding resolved at runtime: own | cobrand | whitelabel. Language: follows user's conversation language; scaffolding is English.
This engine has five layers that always run in order:
Never skip layer 4. Never generate files before layer 4 completes.
Run on every activation before responding:
# Load transversal docs (stop at first match per pattern)
for f in 00-inventario-maestro.md 00-glosario-catalogo.md 00-guia-editorial.md \
00-dod-maestro.md 00-guia-derivacion-versiones.md \
00-resolucion-por-confirmar.md 00-mapa-interdependencias.md; do
[ -f "$f" ] && cat "$f"
done
# Load canonical services (head -80 each to get pricing + scope quickly)
find . -name "canonico.md" -not -path "*/.git/*" | while read f; do
echo "=== $f ===" && head -80 "$f"
done
# Load skill catalog (machine-readable, preferred over .md scan)
[ -f ".claude/skills/metodologia-proposal-engine/catalog/services.yaml" ] && \
cat .claude/skills/metodologia-proposal-engine/catalog/services.yaml
[ -f ".claude/skills/metodologia-proposal-engine/catalog/conditions.yaml" ] && \
cat .claude/skills/metodologia-proposal-engine/catalog/conditions.yaml
# Detect unresolved blockers
grep -r "POR CONFIRMAR" --include="*.md" -l 2>/dev/null | head -10Build a working map:
Decision [2026-03-29, JM]: catalog/ YAML files are the preferred SSOT over .md scanning because they are machine-readable and faster. If both exist and conflict, the canonical .md wins. If no repo files exist, fall back to catalog/services.yaml and references/schemas.md.
Run scripts/input-normalizer.js on the user's raw input. See agents/input-interpreter.md for full protocol.
This layer handles: voice transcription artifacts, vague requests, missing info, contradictory requirements, zero domain vocabulary.
Recovery path dispatch:
Key rule: NEVER BLOCK. Even the worst input produces a complete proposal with smart defaults and clear placeholders. The user iterates, not re-starts.
Load references/worst-case-recovery.md for meta-prompts (MP-01 through MP-06) when input quality < 60%.
Incoming request
→ Is the service clearly in the catalog?
YES → STANDARD MODE
NO / PARTIALLY →
Does it fit a known service type (Workshop/Bootcamp/CW/Program)?
YES → INNOVATION MODE (variant)
NO → INNOVATION MODE (new) + [POR CONFIRMAR] on all pricing
→ Does the user want to add/modify a service or condition?
YES → CATALOG EDIT MODE (read hooks/on-catalog-update.md)Workflow dispatch: After mode selection, load the matching workflow file:
workflows/standard-b2b.mdworkflows/standard-b2c.mdworkflows/innovation-mode.mdworkflows/adversarial-recovery.md first, then re-routeSelect the canonical service that best matches the need.
Read that service's canonico.md fully (not just the head).
Determine audience version using catalog/segments.yaml (see also references/brand-system.md for branding mode):
ejecutiva-b2b.md pattern: formal 3rd-person, business case, ≤25 words/sentenceejecutiva-b2c.md: direct 2nd-person, personal ROI, ≤25 wordscomercial-cliente-b2b.md: narrative hook, benefits, CTAcomercial-cliente-b2c.md: aspirational + concrete, 2nd personcomercial-compras.md: specs, RACI, SLA, full conditions, no marketingusuario-inexperto.md: ≤15 words/sentence, zero jargon, see substitution tableStructure content with Minto Complete (see references/voice-content.md):
Resolve branding: call scripts/brand-resolver.js with the brand_mode input (own | cobrand | whitelabel). See references/brand-system.md for full spec. Assumption [low risk]: if no brand_mode is provided, default to own.
Read references/service-innovation.md before proceeding.
Key rule: new services are composed from canonical building blocks, not invented from scratch. Every module, deliverable, and duration range must trace back to an existing canonical or be explicitly marked [POR CONFIRMAR].
Allowed service types: Workshop (2–4h) | Bootcamp (12–24h) | Consultive Workshop (6–12 × 2h sessions) | Program (8–20 weeks). No new types without JM sign-off.
Required disclaimer in all Innovation Mode outputs:
This is a custom service design proposal. Prices marked [POR CONFIRMAR] are indicative and confirmed before SOW signing. This document does not constitute a delivery commitment or contract.
Read hooks/on-catalog-update.md. It contains the cascade protocol: which derived files to update, in what order, within what SLA (48h).
Run scripts/verify-legal.js on the full content, or execute the checklist manually if the script is unavailable.
Read references/legal-guardrails.md for the full spec. Summary of hard blockers:
| ID | What fails | How to fix |
|---|---|---|
| L1 | Price ≠ canonical | Correct to canonical price |
| L2 | [POR CONFIRMAR] stated as confirmed | Add explicit conditional |
| L3 | Guarantee clause differs from exact wording | Replace with exact clause |
| L4 | Workshop→Bootcamp credit terms wrong | Replace with "100%, 6 months, non-transferable" |
| L5 | Result % promised without "indicative target" wrapper | Add wrapper |
| L6 | Out-of-scope item promised (in canonical's "What it is NOT") | Remove or go to Innovation Mode |
| L7 | Red list word present | Replace (see references/legal-guardrails.md#red-list) |
| L8 | Unconfirmed credit chain stated as fact | Add "subject to current policy — ask your ambassador" |
| L9 | IAC service with B2C price not confirmed | Mark [POR CONFIRMAR] |
| L10 | Fixed USD rate | Add "(indicative rate, subject to variation)" |
For warnings W1–W7 (co-branding, presential, >20 participants, LMS limits, etc.) see references/legal-guardrails.md#warnings.
Produce a verification report before generating any file:
VERIFICATION REPORT
===================
Status: ✅ APPROVED | ⚠️ APPROVED WITH WARNINGS | 🔴 BLOCKED
Blockers fixed: [list or "none"]
Active warnings: [list or "none"]
Brand mode: [own | cobrand | whitelabel]
Partner brand applied: [name or "n/a"]
Language detected: [en | es | both]
Canonical reference: [slug + version + date]
Mode: [STANDARD | INNOVATION | CATALOG EDIT]Only after verification passes. Run scripts/generate-all.js or produce each format manually.
Default output (always, unless user explicitly opts out):
| Format | ES | EN | Notes |
|---|---|---|---|
| HTML | ✓ | ✓ | Responsive, Neo-Swiss Clean, brand-resolved |
| DOCX | ✓ | ✓ | Poppins→Arial (Office compat), Trebuchet body |
| PPTX | ✓ | ✓ | 6 slides minimum |
| XLSX | bilingual | — | Sheet ES + Sheet EN |
| Markdown | ✓ | ✓ | GitHub/Notion/CMS-ready |
| Verification report | ✓ | — | Internal control file |
File naming: propuesta_[company-slug]_[YYYY-MM]_[LANG].[ext]
Output directory: outputs/ (repo) or /mnt/user-data/outputs/ (Claude Code)
White-label branding rule: when brand_mode: whitelabel, ALL MetodologIA visual identity (logo, colors, name) is replaced with partner brand. Methodology content, structure, and quality standards are unchanged. MetodologIA is completely invisible in the output.
Co-brand rule: both logos appear. MetodologIA design system is the base; partner's primary color is used as an accent override for --gold only. Never override navy or typography.
Present files with present_files. Then tell the user:
Load these files only when the situation calls for them:
| File | Load when |
|---|---|
references/brand-system.md | Generating any visual output or resolving branding mode |
references/legal-guardrails.md | Layer 3 verification (always) |
references/voice-content.md | Drafting content (always in Layer 2) |
references/service-innovation.md | Innovation Mode |
references/schemas.md | Checking data shapes, building ProposalData JSON |
catalog/services.yaml | Querying available services |
catalog/conditions.yaml | Querying prices, credits, policies |
catalog/segments.yaml | Audience/segment rules |
agents/legal-reviewer.md | Spawning dedicated legal review subagent |
agents/catalog-manager.md | Adding/modifying catalog entries |
agents/format-generator.md | Parallelizing format generation |
hooks/pre-generate.md | Pre-generation checks |
hooks/post-generate.md | QA after generation |
hooks/on-catalog-update.md | Cascading updates after catalog change |
references/worst-case-recovery.md | Input quality < 60%, adversarial recovery |
agents/input-interpreter.md | Layer 1.5 normalization |
workflows/standard-b2b.md | Standard B2B proposal flow |
workflows/standard-b2c.md | Standard B2C proposal flow |
workflows/innovation-mode.md | Custom service design flow |
workflows/adversarial-recovery.md | Worst-case input recovery flow |
templates/proposal-html.hbs | HTML generation template |
templates/proposal-md.hbs | Markdown generation template |
templates/verification-report.hbs | Verification report template |
Good proposal excerpt (Minto Complete, specific, actionable):
Your operations team spends 40% of its time on reports that AI can generate in minutes. Bootcamp Trabajar Amplificado equips 20 participants with 50+ customized prompts over 20 hours. 90% of participants apply AI within the first week. Schedule your diagnostic session this week — we start in May.
Bad proposal excerpt (generic, no evidence, no CTA):
We offer innovative AI training solutions that will transform your organization and revolutionize your workflows. Our comprehensive program covers everything your team needs. Contact us for more information.
Why: The good version names the client's pain (40% time), the specific deliverable (50+ prompts), evidence (90%), and a one-step CTA. The bad version uses red list words ("transform", "revolutionize"), makes generic claims, and has no actionable CTA.
valid_days expires; flag in verification report.iac/. Handling: explain the service is available through corporate channels; suggest closest B2C alternative from Tier 1..md files exist for Tier 1 services; Tier 2/3 may have incomplete canonicalsopenpyxl; DOCX requires npm docx; PPTX requires npm pptxgenjsverify-legal.js passed: status is APPROVED or APPROVED_WITH_WARNINGS (not BLOCKED)conditions.yamld95817e
Also appears in
since Aug 28, 2026
since Aug 28, 2026
since Aug 28, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.