From lt-offers
Creates and edits business offers on the lenne.tech Offers platform (angebote.lenne.tech). Knows all 16 content block types, offer lifecycle (draft/sent/viewed/template), custom HTML with Tailwind CSS and NuxtUI components (via rich-component block). Activates when working with offers, content blocks, or the Offers API. Uses MCP tools (offers-api) for all CRUD operations.
npx claudepluginhub lennetech/claude-code --plugin lt-offersThis skill uses the workspace's default tool permissions.
This skill enables Claude Code to create, optimize, and manage business offers on the lenne.tech Offers platform via MCP tools.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
This skill enables Claude Code to create, optimize, and manage business offers on the lenne.tech Offers platform via MCP tools.
| User Intent | Correct Skill |
|---|---|
| Create/edit offers via MCP | THIS SKILL |
| Develop the offers codebase (API/Frontend) | generating-nest-servers / developing-lt-frontend |
| Deploy offers infrastructure | devops |
Works closely with:
generating-nest-servers — For backend development on the offers APIdeveloping-lt-frontend — For frontend development on the offers appAll offer operations go through the offers-api MCP server. The connection uses OAuth 2.1 with automatic browser-based login. No API keys or tokens needed.
The default MCP endpoint is https://api.angebote.lenne.tech/mcp (production). When working inside the offers project repository, the project-level .mcp.json overrides this to http://localhost:3000/mcp for local development.
Available MCP Tools:
add_offer_source — Add a source (text/link/file) to an offercreate_from_template — Create offer from templatecreate_knowledge — Create a knowledge base entrycreate_offer — Create new offer (returns offer + access code)delete_knowledge — Delete a knowledge base entrydelete_offer — Delete offer permanentlyduplicate_offer — Clone offer with new slug + access codegenerate_snippet — Generate sharing text with link + access codeget_global — Get global block with versionsget_knowledge — Get a knowledge base entry with full contentget_offer — Get offer with all content blocks (globals auto-resolved)get_offer_analytics — Get offer analytics (views, downloads, scroll depth, dwell time)get_offer_context — Get full AI context (knowledge + globals + optional offer/sources)get_offer_sources — Get all sources for an offerlist_globals — List reusable global content blockslist_knowledge — List knowledge base entrieslist_offers — List offers (with optional status filter)list_templates — List template offersmark_draft — Reset to draft (sent → draft)mark_sent — Mark offer as sent (draft → sent)remove_offer_source — Remove a source from an offerupdate_knowledge — Update a knowledge base entryupdate_offer — Update offer fields and content blocksupload_knowledge_file — Upload file to knowledge entry (base64)upload_offer_source_file — Upload file as offer source (base64)${CLAUDE_SKILL_DIR}/reference/content-blocks.md — All 16 block types with schemas${CLAUDE_SKILL_DIR}/reference/offer-model.md — Offer model and status lifecycle${CLAUDE_SKILL_DIR}/reference/knowledge-base.md — Knowledge base schema and categories${CLAUDE_SKILL_DIR}/reference/custom-html-guide.md — HTML + Tailwind + NuxtUI guide${CLAUDE_SKILL_DIR}/reference/best-practices.md — Content structure and examplesget_offer_context → Company knowledge + global blocksadd_offer_source / upload_offer_source_filecreate_offerget_offer / update_offermark_sent → generate_snippetget_offer with the offer IDupdate_offer with improved content blocksThis feature is exclusively for lenne.tech developers. Before evaluating reusable blocks, silently run git config user.email and check if the result contains @lenne.tech. If not, skip this entire section without any mention — the user must not see any hint of this feature.
command -v git >/dev/null 2>&1 && git config user.email 2>/dev/null | grep -q '@lenne.tech'
@lenne.tech email → skip silently@lenne.tech email → proceed with reusable block evaluationDuring offer creation or optimization, evaluate whether any content block could be useful across multiple offers (e.g., company introduction, standard team section, recurring FAQ, legal disclaimers, standard CTA). If so:
list_globals MCP toolglobal-ref block pointing to the new global ID via update_offerThe offers platform repository is hosted at: https://gitlab.lenne.tech/intern/offers
Workflow:
~/code/lenneTech/offers, ~/projects/offers, or use find / locate)git clone https://gitlab.lenne.tech/intern/offersgenerating-nest-servers / developing-lt-frontend skills for codebase changesUse get_offer_analytics to check how an offer performs. In Claude Desktop, an interactive dashboard with KPI cards, charts, and download stats renders directly in the chat.
get_offer_analytics with the offer IDupdate_offer with optimized blocks| Metric | Interpretation |
|---|---|
totalViews | How many times the offer was opened |
avgScrollDepth | How far customers scroll (< 50% = content needs restructuring) |
avgTimeOnPage | Engagement level (< 30s = not reading, > 5min = very engaged) |
pdfDownloadCount | PDF saves (high = serious interest) |
attachmentDownloads | Per-file download tracking |
timeToFirstViewHours | Response time after sharing |
pricing-table block for prices, not inline textfileId values. No file upload via MCP yet.order from 0)visible: true unless intentionally hiddenvalidUntil date is set if offer has an expiration