Negotiation frameworks for technology services agreements, B2B contracts, and professional services deals. Use when reviewing or negotiating tech contracts.
Production-ready negotiation toolkit for technology services agreements, professional services contracts, and B2B transactions. Provides a Three-Position Framework (provider-favorable, balanced, client-favorable) for every major provision, Deal-Size Tactics across 5 tiers, Five-Tier Objection Handling, regulatory leverage arguments, and concession roadmaps. Designed for legal counsel, procurement leads, and sales/deal desk teams negotiating technology contracts from $100K to $10M+.
scripts/negotiation_position_analyzer.py)Analyzes contract text and classifies each provision as provider-favorable, balanced, or client-favorable based on keyword patterns and structural analysis. Generates a position map and recommended negotiation priorities.
# Analyze a contract draft
python scripts/negotiation_position_analyzer.py contract_draft.txt
# JSON output for integration
python scripts/negotiation_position_analyzer.py contract_draft.txt --json
# Analyze from a specific party's perspective
python scripts/negotiation_position_analyzer.py contract_draft.txt --perspective client
scripts/deal_complexity_scorer.py)Takes deal parameters and scores complexity across 7 dimensions. Recommends deal tier (1-5), expected timeline, number of rounds, and key focus areas.
# Score deal complexity from parameters file
python scripts/deal_complexity_scorer.py deal_params.json
# JSON output
python scripts/deal_complexity_scorer.py deal_params.json --json
# Override deal value for quick what-if
python scripts/deal_complexity_scorer.py deal_params.json --deal-value 5000000
| Reference | Purpose |
|---|---|
references/three_position_framework.md | Provider/balanced/client positions for 5 major provisions with deal-size tactics |
references/objection_handling.md | Five-tier objection methodology, prediction matrix, communication templates |
references/regulatory_leverage.md | GDPR, DORA, NIS2, SOX leverage arguments, concession roadmap, industry considerations |
deal_complexity_scorer.py with deal parameters to determine tier, timeline, and focus areasnegotiation_position_analyzer.py on the initial contract to map current positionsthree_position_framework.mdobjection_handling.md for predicted objections based on client typeregulatory_leverage.mdobjection_handling.mdnegotiation_position_analyzer.py on each revised draft| Problem | Cause | Solution |
|---|---|---|
| Analyzer flags everything as "provider-favorable" | Input is a vendor's first draft (expected behavior) | Use --perspective provider to flip the analysis; compare against balanced baseline |
| Complexity scorer returns Tier 5 for a small deal | High regulatory or multi-jurisdictional flags triggered | Review the regulatory and jurisdiction inputs; lower if overestimated |
| Position map shows no IP provisions detected | Contract uses non-standard terminology for IP clauses | Check for terms like "work product," "deliverables ownership," or "background IP" manually |
| Deal timeline estimate seems too short | Scorer does not account for internal approval delays | Add internal review buffer (typically 1-2 weeks per approval level) to the estimated timeline |
| Objection framework doesn't cover a specific pushback | Counterparty raised an atypical demand | Start with Acknowledge tier; frame using closest Market Context example; escalate to Bright Lines if needed |
| Regulatory leverage arguments rejected as irrelevant | Framework doesn't apply to counterparty's jurisdiction | Verify which regulations actually bind each party; remove inapplicable leverage points |
This skill covers:
This skill does NOT cover:
| Anti-Pattern | Why It Fails | Better Approach |
|---|---|---|
| Treating every provision as a Bright Line | Counterparty disengages when everything is non-negotiable | Classify provisions into 4 concession tiers; trade Easy Gives early to build goodwill |
| Skipping deal complexity assessment | Under-preparing for complex deals or over-preparing for simple ones | Always run complexity scorer first to calibrate effort, timeline, and approval requirements |
| Using regulatory leverage when the regulation doesn't apply | Destroys credibility and trust with informed counterparties | Verify applicability before citing any regulation; use the genuine-vs-preference test from the framework |
| Accepting "this is our standard template" at face value | Every template is negotiable; accepting defaults leaves value on the table | Analyze the "standard" template with the position analyzer to identify moveable provisions |
| Negotiating provisions in isolation | Conceding on SLAs without linking to liability caps creates exposure | Use the Three-Position Framework holistically; link related provisions (SLAs to credits to liability) |
scripts/negotiation_position_analyzer.pyAnalyze contract text and classify provisions by negotiation position.