Skill
Construction industry negotiation sparring trainer with AI opponent and coach debrief. Use when the user wants to practise negotiations, run a scenario (supplier, client, GC contract, hiring, equity split), get a tactical hint, or receive a scored breakdown of their negotiation technique.From its SKILL.md
npx -y skills add agasi-gif/negotiation-trainer --skill skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.3 KB, 711 tokens by cl100k_base, as published. Nobody here has run it
Negotiation Trainer
AI-powered negotiation sparring trainer focused on construction industry scenarios. The opponent plays tough and realistically; the coach provides hints, mid-session analysis, and a final debrief with scores across 6 criteria (anchoring, BATNA, concessions, interests, resilience, outcome).
Built on the Anthropic Claude SDK. Skill format follows the open agentskills standard — works in Hermes Agent (~/.hermes/skills/negotiation-trainer/) and Claude Code / Claude Projects without modification.
When to use
- "practise negotiations with me", "play the supplier / client / GC"
- "analyse my negotiation approach"
- Pre-meeting prep: user describes the real situation → custom scenario generated on the fly
Configuration
Trainer code directory: NEGOTIATION_TRAINER_DIR (default /opt/negotiation-trainer).
Required: ANTHROPIC_API_KEY. Session state in SQLite (DB_PATH) — persists between CLI calls.
Session workflow
- List scenarios or start immediately if the user describes their situation:
cd $NEGOTIATION_TRAINER_DIR
python cli.py --json list
python cli.py --json new --scenario supplier --difficulty hard
# or custom:
python cli.py --json new --custom "Negotiating a retention clause with a general contractor"
The new response includes context (show to the user as their briefing) and
opponent_opening (deliver to the user verbatim as the opponent's first line).
- Pass every user reply to the opponent and return the response:
python cli.py --json say --text "<user's exact words>"
- On "hint" / "how should I respond":
python cli.py --json hint
- On "coach me" / "how am I doing":
python cli.py --json coach
- When the user finishes ("that's enough", "score me", "let's wrap up"):
python cli.py --json debrief
Returns JSON with scores (6 criteria, 1–10), result_summary, best_move,
worst_move, advice — format these clearly for the user.
Voice mode
In Hermes, user speech arrives already transcribed (platform-native STT) — pass it to say as plain text. Synthesise the opponent's reply using Hermes native TTS. The standalone Telegram bot (main.py) has its own full voice pipeline (Whisper STT + OpenAI TTS) and does not need to be running when using this skill.
Rules
- NEVER mix roles:
sayresponses go to the user as the opponent's voice;hint/coachresponses go as the coach's voice — label them clearly. - Do NOT reveal the
personafield or the opponent's hidden concession limits until afterdebrief. - One active session per user: a new
newcall automatically closes the previous session. - On
{"error": "no_active_session"}— prompt the user to choose a scenario.
Constraints
- The CLI does not handle STT/TTS — that is the platform's responsibility (Hermes or the Telegram bot).
debriefcloses the session; the same dialogue cannot be continued afterwards.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.