Install
openclaw skills install @jose-compu/self-improving-negotiationLogs redacted negotiation learnings (concession leaks, BATNA gaps, framing misses, objections, agreement risk). Optional project-scoped reminder hooks. extract-skill.sh is dry-run by default and writes a SKILL.md scaffold only with --write after explicit user approval. Does not accept terms, set pricing, or approve deals. Use when negotiations stall, concessions exceed guardrails, terms are ambiguous, or recurring bargaining patterns emerge.
openclaw skills install @jose-compu/self-improving-negotiationLog 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.
Optional extras (off by default):
extract-skill.sh (dry-run unless --write and the user asked in this session)Promote validated, redacted patterns into playbooks, objection libraries, concession guardrails, BATNA checklists, or deal review templates after a reviewed diff and explicit approval.
Default behavior is local markdown logging and reminders.
It does not:
git cloneextract-skill.sh --writeAlways require explicit human approval for high-impact concessions and for final terms.
Do not log BATNA values, reservation prices, discount floors, confidential customer terms, legal advice, approval tokens, or raw transcripts. Use redacted process-level summaries (what went wrong, what guardrail to add). Keep .learnings/ local or access-controlled; do not commit it until a human has reviewed entries.
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.
| 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; propose a redacted playbook patch after approval |
OpenClaw supports workspace-based skill loading and hook reminders.
Prefer the registry install (no extra clone). This uses the network to ClawHub:
clawdhub install self-improving-negotiation
Manual clone is optional network access to GitHub. Use only if you trust that repository:
git clone https://github.com/jose-compu/self-improving-negotiation.git ~/.openclaw/skills/self-improving-negotiation
~/.openclaw/workspace/
├── AGENTS.md
├── SOUL.md
├── TOOLS.md
├── MEMORY.md
├── memory/
│ └── YYYY-MM-DD.md
└── .learnings/
├── LEARNINGS.md
├── NEGOTIATION_ISSUES.md
└── FEATURE_REQUESTS.md
mkdir -p ~/.openclaw/workspace/.learnings
Then create:
LEARNINGS.mdNEGOTIATION_ISSUES.mdFEATURE_REQUESTS.mdDo not install into ~/.openclaw/hooks/ (user-global). If reminders are needed, keep hooks in this workspace only:
mkdir -p .openclaw/hooks
cp -r hooks/openclaw .openclaw/hooks/self-improving-negotiation
See references/openclaw-integration.md.
For Claude Code, Codex CLI, Copilot, or other assistants:
mkdir -p .learnings
Create the same 3 files in .learnings/.
Add to AGENTS.md, CLAUDE.md, or .github/copilot-instructions.md:
When negotiation patterns are discovered:
.learnings/LEARNINGS.md, .learnings/NEGOTIATION_ISSUES.md, or .learnings/FEATURE_REQUESTS.mdLRN = learningNEG = negotiation issueFEAT = feature requestAppend 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)
---
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
---
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
---
| 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 | 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 |
Format: TYPE-YYYYMMDD-XXX
LRN | NEG | FEAT001) or random (A7B)Examples:
LRN-20260413-001NEG-20260413-A3FFEAT-20260413-002When resolved:
**Status**: pending -> **Status**: resolved### 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_progresswont_fixpromotedpromoted_to_skillLog when these appear:
| 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 |
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 |
**Status**: promoted**Promoted**: negotiation_playbook (or relevant target)Before creating a new entry:
rg "Pattern-Key|concession_leak|batna_weakness|anchor_error|agreement_risk" .learnings/
See AlsoRecurrence-CountLast-SeenWhen importing simplify-and-harden insights:
Pattern-Key as dedupe key.rg "Pattern-Key: <key>" .learnings/LEARNINGS.md
LRN entryPromotion threshold suggestion:
# 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
Use hooks to inject reminders and detect negotiation signals.
Hooks persist across sessions once installed. Keep them project-scoped. Do not install user-level or global hooks. Never use an empty matcher. PostToolUse inspects command output in-process; do not log raw output, secrets, or transcripts.
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "counteroffer|concession|anchor|BATNA|walk-away|term.?sheet",
"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.
Extracted skills are untrusted until a human reviews the generated SKILL.md. Do not keep or publish an extracted skill without explicit user approval.
If a learning is stable and reusable and the user asked to extract a skill in this session, run the helper. Default is dry-run (no files written). Pass --write only after that explicit request.
| 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 |
LRN or NEG../skills/self-improving-negotiation/scripts/extract-skill.sh skill-name
./skills/self-improving-negotiation/scripts/extract-skill.sh skill-name --write
**Status**: promoted_to_skill**Skill-Path**: skills/<skill-name>| 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:
.learnings/ folderLRN, NEG, FEAT)See Also cross-links and reviewer ownership before promotionBefore final recommendation, confirm:
If any check fails, log NEG and pause final recommendation.
.learnings/
.learnings/*.md
!.learnings/.gitkeep
Shared team mode: track .learnings/ only after a human has reviewed entries for pricing strategy, BATNA, legal, and customer-confidential content.
references/examples.mdreferences/hooks-setup.mdreferences/openclaw-integration.mdhttps://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.This skill is standalone-compatible and stackable with other self-improving skills.
.learnings/negotiation/.learnings/INDEX.mdEvery new entry must include:
**Skill**: negotiation
event + matcher + file + 5m_window; max 1 reminder per skill every 5 minutes.Only trigger this skill automatically for negotiation signals such as:
counteroffer|concession|anchor|walk-away|term sheetdeal risk|stakeholder alignment|fallback option|BATNAWhen guidance conflicts, apply:
securityengineeringcodingaimeta as tie-breaker.learnings/negotiation/ in stackable mode..learnings/*.md log files only.AGENTS.md, SOUL.md, TOOLS.md, MEMORY.md, rules, hooks, or generated skills is not a logging write. Show a reviewed diff and apply only after explicit user approval.