agentleFS
eklavyagoyaleklavyagoyal/wingman/skills/setup/SKILL.md

setup

Skill0 starsChanged 2 months agoMITView on GitHub

One-time onboarding - CV, preferences, German level, work authorization, and a work history interview

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use add-voice-transcription, add-discord and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • juancruzmunozalbeloSkill

    add-voice-transcription

    Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.

    Also in 5 projects that use this

  • MicrosoftSkill

    add-discord

    Add Discord bot channel integration via Chat SDK.

    Also in 11 projects that use this

  • MicrosoftSkill

    add-slack

    Add Slack channel integration via Chat SDK.

    Also in 11 projects that use this

  • juancruzmunozalbeloSkill

    add-telegram-swarm

    Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".

    Also in 7 projects that use this

  • +8 more from microsoft

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 171 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Check for real content (not templates) in: resume/, preferences.md, profile.md, contacts.csv, and whether profile.md has a filled German …

    line 25
  2. Very specific:

    Ask for the CV. Accept a file path (copy into DATA_DIR/resume/) or pasted text (save as DATA_DIR/resume/resume.md).

    line 31
  3. Distinctive:

    Ask for German and English levels in CEFR.

    line 51
  4. Very specific:

    Ask for status per shared/references/work-authorization.md.

    line 65
  5. Distinctive:

    If the user does not know their market rate, offer to research it for their title and region rather than letting them name a number blind.

    line 78
  6. Very specific:

    Follow scripts/conduct-interview.md.

    line 107

“Common” is measured: kept by at least 6 in 10 of the 171 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Setup

Priority hierarchy: shared/references/priority-hierarchy.md · Interaction rules: shared/references/interaction.md

Onboarding. Runs once, then every other skill has what it needs. Resolve the data directory per shared/references/data-directory.md; if none exists, this is a fresh install — create it.

Tell the user up front how many steps there are, so they know what they signed up for. Skip every step whose data already exists — never re-ask.

Arguments

  • (none) — full onboarding, only the missing parts
  • interview — just the work history interview
  • german — just the German-specific facts (Step 3), for someone who has a CV and preferences already

Step 0: What is already done

Check for real content (not templates) in: resume/, preferences.md, profile.md, contacts.csv, and whether profile.md has a filled German Application Facts section.

Report what exists, then run only what is missing.

Step 1: CV

Ask for the CV. Accept a file path (copy into DATA_DIR/resume/) or pasted text (save as DATA_DIR/resume/resume.md).

Confirm and summarize what you read: name, most recent role, number of roles, apparent seniority, and any gap over three months — flag those now, because Step 3 needs an explanation for each.

Step 2: Preferences

One open question: target roles, locations, salary, and what to rule out. Save to DATA_DIR/preferences.md with sections for Target Roles, Standort, Vergütung, Must-Haves, Dealbreakers, Nice-to-Haves.

Then confirm the German-market dealbreakers explicitly with AskUserQuestion, because they are not obvious to someone new to the market:

  • Zeitarbeit / Arbeitnehmerüberlassung — acceptable or dealbreaker? Explain what it is first: you are employed by an agency and leased to a client, usually at lower pay. Default: dealbreaker.
  • Öffentlicher Dienst — interested? Explain the tradeoff: TVöD pay bands are fixed and often below private tech, but the security, hours, and pension are materially better. German-only applications.
  • Befristete Verträge — acceptable, or permanent only?

Step 3: German Application Facts

This is the step no other tool has, and everything downstream depends on it. Fill the German Application Facts section of profile.md from shared/templates/profile.md.

3a — Sprachen

Ask for German and English levels in CEFR. If the user is unsure of their German, give them the anchors rather than making them guess blind:

LevelYou can...
A2order food, handle simple routine exchanges
B1hold an everyday conversation, follow a slow meeting
B2work in German with effort, follow meetings, still hunting for words
C1work in German comfortably, argue a position, handle a phone interview
C2near-native

Then say plainly why it matters: this number decides whether Wingman writes your applications in German, and an inflated answer produces a letter you cannot back up in a phone screen. Store the honest level.

3b — Arbeitserlaubnis

Ask for status per shared/references/work-authorization.md. If non-EU:

  • Which permit, valid until when
  • Whether an employer change needs approval
  • For a non-EU degree: check anabin now. Offer to look it up. Finding a recognition problem today is cheap; finding it against a deadline is not.

3c — Verfügbarkeit und Vergütung

Kündigungsfrist, computed earliest start date, Gehaltsvorstellung, and the current package — base, 13th month, bonus, bAV, VWL — in Jahresbrutto throughout. Reference shared/references/de-market.md.

The current package is not optional politeness. evaluate Block E reads it to say whether a role is a step up, lateral, or step down on the total, which is the comparison that actually decides an application. Without it the evaluation can only say "at market" and leave the candidate to do that arithmetic.

The walk-away floor goes in preferences.md, not here — job-search screens against it and evaluate caps the score below it. Write it in one place only.

If the user does not know their market rate, offer to research it for their title and region rather than letting them name a number blind.

3d — Bewerbungspräferenzen

AskUserQuestion, once, stored forever:

  • Foto im Lebenslauf? Give the real tradeoff: expected at Mittelstand and public sector, neutral at corporates, often discouraged at startups and international tech. Legally never required (AGG). No professional photo available → recommend omitting.
  • Geburtsdatum und Staatsangehörigkeit angeben? Optional, increasingly omitted. Recommend omitting unless applying mainly to traditional employers.
  • Default application language — Deutsch / Englisch / decide per posting. Recommend per posting.

3e — Zeugnisse

Ask what they have. Copy files into DATA_DIR/zeugnisse/. Explain that German employers expect Arbeitszeugnisse attached, and that a politely-worded Zeugnis can say something damaging in code — offer to audit each one now with /wingman:zeugnis. Most candidates have never had this done and it changes what they attach.

3f — Lücken

For every gap found in Step 1, get a truthful explanation and record it. Same wording gets reused in every document, so it never contradicts itself.

Step 4: Contacts (optional)

Offer LinkedIn and Xing exports for /wingman:network-scan.

LinkedIn: linkedin.com/mypreferences/d/download-my-data → Connections → they email a ZIP → Connections.csv Xing: Xing has restricted bulk export; if unavailable, skip it — LinkedIn alone is enough for most searches.

Save as DATA_DIR/contacts.csv. Skipping is fine.

Step 5: Work history interview

Follow scripts/conduct-interview.md. Most recent role first, more depth on recent and relevant roles.

Beyond the standard questions, capture the German-specific material:

  • Quantified results — needed for both Lebenslauf bullets and Anschreiben evidence
  • Why each role ended — Germany asks directly, and it must match the Zeugnisse
  • Any German-language working experience, even partial. Real evidence of working German is worth more than a CEFR label.

Save to DATA_DIR/profile.md, preserving the German Application Facts section.

Step 6: Summary

Report what is configured, then what they can run:

Ready.

CV:              [filename]
Preferences:     [target roles, key dealbreakers]
Deutsch:         [level]  -> applications default to [DE/EN/per posting]
Arbeitserlaubnis: [status] [+ anabin result]
Kündigungsfrist: [x] -> earliest start [date]
Gehaltsvorstellung: [x] EUR brutto p. a.
Foto:            [ja/nein]
Zeugnisse:       [n] files [, m audited]
Profile:         [n] roles
Contacts:        [n] imported / skipped

Next:
  /wingman:job-search              find German jobs
  /wingman:evaluate <url>          score one posting
  /wingman:zeugnis                 decode your Arbeitszeugnisse
  /wingman:visa                    check Blue Card / recognition

Response Format

  1. Setup Summary — what was configured
  2. What's Next — the skills now available

Permissions

{ "permissions": { "allow": [
  "Read(~/.wingman/**)", "Write(~/.wingman/**)", "Edit(~/.wingman/**)"
] } }

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.