Self-Improving Negotiation Skill
Log negotiation learnings, negotiation issues, and feature requests to markdown files for continuous improvement. Capture preparation gaps, framing misses, concession leakage, weak BATNA posture, recurring objections, escalation mistakes, contract-term ambiguity, and agreement quality risk.
Promote validated patterns into:
- negotiation playbooks
- objection libraries
- concession guardrails
- BATNA checklists
- deal review templates
Safety Posture
This skill is documentation and reminder guidance only.
It does not:
- auto-accept terms
- commit pricing
- execute legal/financial approvals
- finalize agreements
Always require explicit human approval for high-impact concessions and for final terms.
First-Use Initialisation
Before logging, ensure .learnings/ exists in project/workspace root. Create missing files only:
mkdir -p .learnings
[ -f .learnings/LEARNINGS.md ] || printf "# Negotiation Learnings\n\nNegotiation strategy insights, framing improvements, BATNA lessons, concession tactics, objection handling patterns, escalation learnings, and agreement quality improvements.\n\n**Categories**: concession_leak | batna_weakness | framing_miss | objection_handling_gap | escalation_misalignment | value_articulation_gap | anchor_error | agreement_risk\n**Areas**: preparation | discovery | framing | bargaining | concessions | closing | stakeholder_alignment | escalation | contract_terms | follow_up\n\n---\n" > .learnings/LEARNINGS.md
[ -f .learnings/NEGOTIATION_ISSUES.md ] || printf "# Negotiation Issues Log\n\nNegotiation failures, concession breakdowns, unresolved redlines, escalation misalignment, and agreement quality risks.\n\n---\n" > .learnings/NEGOTIATION_ISSUES.md
[ -f .learnings/FEATURE_REQUESTS.md ] || printf "# Feature Requests\n\nNegotiation tooling, preparation automation, objection support, BATNA planning, concession controls, and agreement-risk analysis capabilities.\n\n---\n" > .learnings/FEATURE_REQUESTS.md
Never overwrite existing files.
Quick Reference
| Situation | Action |
|---|
| Concession made without reciprocal value | Log NEG in .learnings/NEGOTIATION_ISSUES.md category concession_leak |
| BATNA undefined or weak | Log NEG category batna_weakness in preparation |
| Opening anchor failed or drifted | Log LRN category anchor_error |
| Same objection repeated across deals | Log LRN category objection_handling_gap |
| Escalation executed to wrong owner/timing | Log NEG category escalation_misalignment |
| Redline unresolved at close stage | Log NEG category agreement_risk |
| Value reframing improved movement | Log LRN category value_articulation_gap |
| Clause ambiguity discovered | Log NEG category agreement_risk in contract_terms |
| Workflow/tooling needed | Log FEAT in .learnings/FEATURE_REQUESTS.md |
| Pattern repeats 3+ times | Link entries and promote to permanent asset |
OpenClaw Setup (Recommended)
OpenClaw supports workspace-based skill loading and hook reminders.
Install
clawdhub install self-improving-negotiation
Manual clone:
git clone https://github.com/jose-compu/self-improving-negotiation.git ~/.openclaw/skills/self-improving-negotiation
Workspace Structure
~/.openclaw/workspace/
├── AGENTS.md
├── SOUL.md
├── TOOLS.md
├── MEMORY.md
├── memory/
│ └── YYYY-MM-DD.md
└── .learnings/
├── LEARNINGS.md
├── NEGOTIATION_ISSUES.md
└── FEATURE_REQUESTS.md
Create learning files in OpenClaw workspace
mkdir -p ~/.openclaw/workspace/.learnings
Then create:
LEARNINGS.md
NEGOTIATION_ISSUES.md
FEATURE_REQUESTS.md
Optional Hook
cp -r hooks/openclaw ~/.openclaw/hooks/self-improving-negotiation
openclaw hooks enable self-improving-negotiation
See references/openclaw-integration.md.
Generic Setup (Other Agents)
For Claude Code, Codex CLI, Copilot, or other assistants:
mkdir -p .learnings
Create the same 3 files in .learnings/.
Suggested instruction block
Add to AGENTS.md, CLAUDE.md, or .github/copilot-instructions.md:
When negotiation patterns are discovered:
- Log to
.learnings/LEARNINGS.md, .learnings/NEGOTIATION_ISSUES.md, or .learnings/FEATURE_REQUESTS.md
- Review recurring items weekly
- Promote reusable patterns to:
- negotiation playbooks
- objection libraries
- concession guardrails
- BATNA checklists
- deal review templates
Entry Types
LRN = learning
NEG = negotiation issue
FEAT = feature request
Logging Formats
Learning Entry [LRN-YYYYMMDD-XXX]
Append to .learnings/LEARNINGS.md:
## [LRN-YYYYMMDD-XXX] category
**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: preparation | discovery | framing | bargaining | concessions | closing | stakeholder_alignment | escalation | contract_terms | follow_up
### Summary
One-line negotiation learning.
### Details
What happened, why it mattered, and what to improve.
### Negotiation Context
**Trigger / Objection:**
> Quote or paraphrase
**Response Used:**
> Action, phrase, offer, or decision
**Outcome:**
advanced | stalled | rejected | escalated | closed
### Suggested Action
Concrete change to framing, concession strategy, BATNA prep, or escalation.
### Metadata
- Source: transcript_review | negotiation_debrief | legal_review | pricing_review | post_mortem
- Negotiation Type: procurement | renewal | enterprise_new_logo | partner | vendor | internal_budget
- Counterparty Role: procurement | legal | finance | exec | ops | technical
- Related Issues: NEG-YYYYMMDD-XXX
- Tags: tag1, tag2
- See Also: LRN-YYYYMMDD-XXX
- Pattern-Key: framing.anchor_drift (optional)
- Recurrence-Count: 1 (optional)
- First-Seen: YYYY-MM-DD (optional)
- Last-Seen: YYYY-MM-DD (optional)
---
Negotiation Issue Entry [NEG-YYYYMMDD-XXX]
Append to .learnings/NEGOTIATION_ISSUES.md:
## [NEG-YYYYMMDD-XXX] issue_type
**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: preparation | discovery | framing | bargaining | concessions | closing | stakeholder_alignment | escalation | contract_terms | follow_up
### Summary
Brief description of failure/risk.
### Context
- **Stage**: current stage
- **Counterparty**: role/team
- **Cycle Day**: days from first commercial exchange
### What Happened
Sequence of events and where the issue surfaced.
### Root Cause
Preparation gap, weak BATNA, framing miss, concession error, approval gap, or term ambiguity.
### Impact
- Margin/pricing impact range
- Timeline impact
- Business/legal risk impact
### Prevention
Guardrails, scripts, checklists, escalation path changes.
### Metadata
- Trigger: deadlock | repeated_objection | scope_creep | concession_exceeded_threshold | batna_not_defined | approval_missing | term_ambiguity | redline_unresolved
- Related Files: path/to/debrief.md
- See Also: NEG-YYYYMMDD-XXX
---
Feature Request Entry [FEAT-YYYYMMDD-XXX]
Append to .learnings/FEATURE_REQUESTS.md:
## [FEAT-YYYYMMDD-XXX] capability_name
**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: preparation | discovery | framing | bargaining | concessions | closing | stakeholder_alignment | escalation | contract_terms | follow_up
### Requested Capability
Tooling or workflow enhancement needed.
### User Context
Why this is needed and what friction it removes.
### Complexity Estimate
simple | medium | complex
### Suggested Implementation
Practical implementation suggestion.
### Metadata
- Frequency: first_time | recurring
- Related Features: existing_feature_name
---
Categories
| Category | Use When |
|---|
concession_leak | Concession granted without reciprocal value |
batna_weakness | BATNA undefined, unrealistic, or not actionable |
framing_miss | Value narrative fails to move negotiation |
objection_handling_gap | Repeated objection lacks effective response |
escalation_misalignment | Escalation timing/owner path is wrong |
value_articulation_gap | Team cannot connect terms to measurable value |
anchor_error | Anchor too weak/strong or abandoned prematurely |
agreement_risk | Final terms contain ambiguity or unresolved risk |
Area Tags
| Area | Scope |
|---|
preparation | BATNA setup, approval limits, stakeholder map |
discovery | Interests, constraints, hidden blockers |
framing | Value framing and anchor setup |
bargaining | Offer-counteroffer strategy |
concessions | Give-get discipline and thresholds |
closing | Final package shaping and confirmation |
stakeholder_alignment | Internal/external decision alignment |
escalation | Escalation path and timing |
contract_terms | Clauses, redlines, obligations, ambiguity |
follow_up | Recaps, unresolved items, next-round prep |
ID Generation
Format: TYPE-YYYYMMDD-XXX
- TYPE:
LRN | NEG | FEAT
- YYYYMMDD: date
- XXX: sequential (
001) or random (A7B)
Examples:
LRN-20260413-001
NEG-20260413-A3F
FEAT-20260413-002
Resolve Workflow
When resolved:
- Update
**Status**: pending -> **Status**: resolved
- Add resolution block:
### Resolution
- **Resolved**: 2026-04-13T14:30:00Z
- **Action Taken**: Added concession guardrail and approval checklist
- **Notes**: Applied successfully in two subsequent negotiations
Additional statuses:
in_progress
wont_fix
promoted
promoted_to_skill
Detection Triggers
Log when these appear:
Deadlock
- No movement after 2+ rounds
- Repeated counters without new rationale
- Decision timeline slips with no clear blocker
Repeated Objections
- Same objection in 3+ negotiations
- Existing response script fails repeatedly
- Objection appears across multiple stakeholder roles
Scope Creep
- New obligations added after pricing alignment
- Added deliverables without compensating terms
- Late-stage requirement expansion
Concession Exceeded Threshold
- Discount/term concession above approved band
- Multiple micro-concessions exceed policy combined
- Concession offered before reciprocal commitment
BATNA Not Defined
- No walk-away threshold
- No fallback path
- BATNA not costed/timed
Approval Missing
- Concession offered without required approval
- Decision made on verbal approval only
- Approval owner unclear late in cycle
Term Ambiguity
- Clause supports conflicting interpretations
- Undefined SLA/penalty terms
- Renewal/termination trigger unclear
Redline Unresolved
- Open legal comments at close stage
- Internal and external redline versions diverge
- "To be clarified later" language remains
Priority Guidelines
| Priority | When to Use | Example |
|---|
critical | High-impact unresolved risk or unauthorized concession | Liability term unresolved at close; major concession without approval |
high | Recurring pattern with material impact | BATNA absent in enterprise cycles; repeated deadlocks |
medium | Single-cycle issue with contained impact | One objection flow underperforming |
low | Minor improvement or documentation cleanup | Non-critical wording updates |
Promotion Targets
When patterns are validated and reusable, promote to:
| Target | What to Promote |
|---|
| Negotiation playbooks | End-to-end tactics across stages |
| Objection libraries | Reusable objection-response flows |
| Concession guardrails | Give-get rules and approval thresholds |
| BATNA checklists | Preflight criteria and walk-away readiness |
| Deal review templates | Structured post-negotiation reviews |
Promotion Criteria
- Pattern recurs at least 3 times
- Countermeasure verified in real outcomes
- Useful across contexts (not one-off)
- Non-obvious and operationally important
Promotion Workflow
- Distill learning into concise asset.
- Add asset to target repository/document.
- Update source entry:
**Status**: promoted
**Promoted**: negotiation_playbook (or relevant target)
Recurring Pattern Detection
Before creating a new entry:
- Search existing patterns:
rg "Pattern-Key|concession_leak|batna_weakness|anchor_error|agreement_risk" .learnings/
- If related entry exists:
- add
See Also
- increase
Recurrence-Count
- update
Last-Seen
- Raise priority if recurrence continues.
- Identify systemic fix:
- framing issue -> playbook update
- objection issue -> objection library
- concession issue -> guardrail policy
- BATNA issue -> checklist hard gate
- term issue -> contract review template
Simplify/Harden Feed
When importing simplify-and-harden insights:
- Use
Pattern-Key as dedupe key.
- Search for key:
rg "Pattern-Key: <key>" .learnings/LEARNINGS.md
- Existing key:
- increment recurrence
- update dates
- link related entries
- New key:
- create
LRN entry
- set source to simplify-and-harden
Promotion threshold suggestion:
- recurrence >= 3
- appears in 2+ negotiation contexts
- appears within 90 days
Periodic Review
When to review
- Before high-stakes negotiation rounds
- After deadlock or failed escalation
- Weekly for active deals
- Monthly for pattern consolidation
- Before quarter-end closes
Quick checks
# Pending entries
rg "Status\\*\\*: pending" .learnings/*.md | wc -l
# High and critical issues
rg -n "Priority\\*\\*: high|Priority\\*\\*: critical" .learnings/NEGOTIATION_ISSUES.md
# BATNA issues
rg -n "batna_weakness|BATNA" .learnings/*.md
# Concession leaks
rg -n "concession_leak|concession" .learnings/*.md
# Agreement risk
rg -n "agreement_risk|term_ambiguity|redline_unresolved" .learnings/NEGOTIATION_ISSUES.md
Review actions
- Resolve addressed issues
- Promote validated patterns
- Merge duplicates with links
- Tighten concession thresholds
- Refresh BATNA checklist
- Update escalation matrix
Best Practices
- Define BATNA, reservation point, and walk-away before first offer.
- Anchor on value and risk reduction, not only price.
- Trade every concession for reciprocal value.
- Avoid stacking concessions in one round.
- Keep approval ownership explicit before offering exceptions.
- Treat ambiguous terms as active risk.
- Capture objection wording precisely for reuse.
- Escalate with clear decision owner and deadline.
- Log outcomes the same day while context is fresh.
- Promote recurring patterns quickly.
Hook Integration (Opt-In)
Use hooks to inject reminders and detect negotiation signals.
Example configuration
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "./skills/self-improving-negotiation/scripts/activator.sh" }
]
}
],
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "./skills/self-improving-negotiation/scripts/error-detector.sh" }
]
}
]
}
}
Hook behavior is reminder-only; no execution of agreement or approval actions.
See references/hooks-setup.md.
Automatic Skill Extraction
If a learning is stable and reusable, extract a new skill.
Criteria
| Criterion | Requirement |
|---|
| Recurring | Appears in 3+ negotiations |
| Verified | Improvement proven in outcomes |
| Non-obvious | Practical experience required |
| Broad | Useful across contexts |
| Requested | User/team asked for standardization |
Workflow
- Select candidate
LRN or NEG.
- Run extraction helper:
./skills/self-improving-negotiation/scripts/extract-skill.sh skill-name --dry-run
./skills/self-improving-negotiation/scripts/extract-skill.sh skill-name
- Fill TODO placeholders.
- Update source entry:
**Status**: promoted_to_skill
**Skill-Path**: skills/<skill-name>
- Validate in fresh session.
Multi-Agent Support
| Agent | Activation | Detection |
|---|
| Claude Code | Hook scripts | Automatic |
| Codex CLI | Hook scripts | Automatic |
| GitHub Copilot | Instruction guidance | Manual |
| OpenClaw | Workspace + hooks | Automatic reminders |
Coordination rules:
- Use one canonical
.learnings/ folder
- Use stable IDs (
LRN, NEG, FEAT)
- Add
See Also cross-links and reviewer ownership before promotion
Agreement Quality Gate
Before final recommendation, confirm:
- BATNA is still valid
- concessions are reciprocal
- approvals are documented
- redlines are resolved
- ambiguous clauses are removed
If any check fails, log NEG and pause final recommendation.
Gitignore Options
.learnings/
.learnings/*.md
!.learnings/.gitkeep
Shared team mode: do not ignore .learnings/.
References
references/examples.md
references/hooks-setup.md
references/openclaw-integration.md
- Clone URL:
https://github.com/jose-compu/self-improving-negotiation.git
Skill, hooks, and scripts are reminder-only controls; they never approve concessions, accept terms, commit pricing, execute approvals, or finalize agreements. Human approval remains required for high-impact concessions and final terms.
Stackability Contract (Standalone + Multi-Skill)
This skill is standalone-compatible and stackable with other self-improving skills.
Namespaced Logging (recommended for 2+ skills)
- Namespace for this skill:
.learnings/negotiation/
- Keep current standalone behavior if you prefer flat files.
- Optional shared index for all skills:
.learnings/INDEX.md
Required Metadata
Every new entry must include:
**Skill**: negotiation
Hook Arbitration (when 2+ skills are enabled)
- Use one dispatcher hook as the single entrypoint.
- Dispatcher responsibilities: route by matcher, dedupe repeated events, and rate-limit reminders.
- Suggested defaults: dedupe key =
event + matcher + file + 5m_window; max 1 reminder per skill every 5 minutes.
Narrow Matcher Scope (negotiation)
Only trigger this skill automatically for negotiation signals such as:
counteroffer|concession|anchor|walk-away|term sheet
deal risk|stakeholder alignment|fallback option|BATNA
- explicit negotiation intent in user prompt
Cross-Skill Precedence
When guidance conflicts, apply:
security
engineering
coding
ai
- user-explicit domain skill
meta as tie-breaker
Ownership Rules
- This skill writes only to
.learnings/negotiation/ in stackable mode.
- It may read other skill folders for cross-linking, but should not rewrite their entries.