소스 정보
- 저장소
- tomevault-io/skills-registry
- 최근 소스 활동
- 2026년 7월 19일 15:30
- 감지된 SKILL.md 언어
- 영어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill beevibe-team-mesh-negotiation명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | beevibe-team-mesh-negotiation |
| description | > Use when this capability is needed. |
You're either initiating a negotiation, responding to one, or handling its escalation. Each role has its own protocol below.
negotiate is for situations where there's STAKE on both sides and resolving requires back-and-forth. Common confusions:
ask (no rounds, no stake)check_work_status (DB read; no session spawn)report_blockercreate_taskIf none of those fit and the disagreement is real, negotiate is correct.
negotiate)You're proposing something to a peer. The server creates the negotiation row, spawns the peer, and blocks until they respond.
If your negotiation pertains to a specific task you're working on (the common case — you're negotiating WHILE making progress on a task), pass task_id to negotiate:
negotiate(peer_id, proposal, task_id="<your_current_task_id>")
This stamps the negotiation row's task_id so:
Omit task_id only when negotiating about something orthogonal to your current task (rare — usually means you should reconsider whether negotiate is the right tool).
Be specific:
Phrase as: "I propose X because Y; what do you think?"
A specific proposal gets a specific response. Vague proposals get vague counters and burn rounds.
A counter is data, not opposition. Each round, identify:
Iterate toward something that addresses their signal while you keep YOUR non-negotiables.
After 2-3 rounds, if the peer's counter addresses your concerns, accept. Don't max out rounds for the sake of "winning" — burning turns has cost (tokens, time, peer capacity).
respond_negotiate(neg_id, 'accept', "Agreed. Proceeding with <chosen plan>.") — terminal; the negotiation is closed.
After accept returns, immediately persist the decision so future sessions don't re-litigate:
save_memory("Negotiation about <topic> with <peer> resolved with <chosen approach> because <rationale>.", "decision")
Then continue your task with the agreed plan.
reject is rare and terminal — use it only when no version of the proposal is workable from your side and there is no path forward via counter. Examples: the proposal would violate a hard constraint you can't move (compliance, capacity, ownership boundary) AND the peer's framing leaves no room to refactor it.
If you find yourself reaching for reject, first ask: would a counter that surfaces my hard constraint move the conversation forward? If yes, counter. If no:
respond_negotiate(neg_id, 'reject', "Cannot proceed because <hard constraint>. Suggest <alternative path / different peer / different tool>.")
After reject:
save_memory("Rejected negotiation about <topic> with <peer> because <hard constraint>. Suggested <alternative>.", "decision")report_blocker so your parent can revise scope.If you and the peer are circling around the same root disagreement (different priorities, different data interpretation), don't burn the remaining rounds. Call escalate_to_humans early — humans review faster on fresh context. See references/escalation-triggers.md.
Server hard-caps at 5 rounds (per-agent configurable). On round N+1 attempt you get:
{ error: "MAX_ROUNDS_EXCEEDED", ... }
Stop and call escalate_to_humans immediately:
escalate_to_humans(
negotiation_id,
summary, // ONE shared problem statement, neutral phrasing
proposals, // 2-3 concrete options (yours + concession + radical fallback)
open_questions, // things YOU don't know that humans might
)
After this returns, exit your session — the human will resolve and the executor will re-dispatch you with the resolution.
mesh_capacity_exceeded means peer is busy, NOT stuck. Don't escalate. Pivot to other parts of your task that don't depend on this negotiation, OR retry later. Only call report_blocker if the negotiation is on the critical path and waiting isn't acceptable.
<negotiation> intent)Your session was spawned because another agent called negotiate(target=YOU, ...). Intent shape:
<mesh-negotiate negotiation_id="neg_abc" from="team_X" round="1">
<their proposal>
</mesh-negotiate>
<context type="negotiation_round">
Read the proposal, search relevant context if needed, and respond with
respond_negotiate(negotiation_id, decision, message). Decisions: counter,
accept, reject.
</context>
Before responding, gather signal:
search_context for memory facts on the topicget_task if the proposal references a task you're not aware ofcheck_work_status to assess your own capacityThis is multi-round; the peer is blocked. Take 1-2 minutes to think; don't take 30.
respond_negotiate(neg_id, decision, message[, counter_proposal])
accept → terminal; you agreereject → terminal; you decline (rare; usually use counter to keep the conversation alive)counter → MUST include a specific counter-proposal in counter_proposal. Vague counters waste rounds.A counter BLOCKS your session until the peer's next reply (or until they accept/reject/escalate).
If you've countered 2+ times and the peer keeps offering similar things, escalation is likely. Make your final counter your BEST — if the peer escalates without your strongest concession on record, the human review is incomplete.
escalated sentinel handlingWhen your blocked respond_negotiate returns:
{ decision: 'escalated', escalation_id: 'esc_xyz', message: '...' }
The peer escalated. You did NOT initiate; you must NOT call escalate_to_humans (initiator-only). Call:
add_to_escalation(escalation_id, proposals, open_questions)
summary arg — the initiator already set it (immutable)proposals should DIFFER from initiator's where you actually disagree. Don't mirror.open_questions — things in YOUR domain humans should know about that the initiator didn't captureAfter this returns, exit your session.
When the human resolves the escalation, both sides receive a fresh dispatch with next_dispatch_context.kind === 'post_escalation'. Intent shape:
<context type="post_escalation" role="initiator|counterparty">
A negotiation about this task was resolved by a human reviewer.
Resolution: <chosen proposal title> — <description>
Additional guidance: <notes if any>
<role-specific guidance>
</context>
<task id="..."/>
Continue your task with the resolution as guidance. Don't re-negotiate — the human's call is final. Update memory if you learned something:
save_memory("Negotiation about <X> resolved with <Y> approach because <Z>", "decision")
Then continue work; eventually update_progress(done) and exit.
You have no original task to continue (you were a peer in someone else's negotiation). The platform created a SYNTHETIC task for you with the post-escalation context. Steps:
save_memory the resolution (same as initiator)update_progress(synthetic_task_id, 'done', "Acknowledged escalation resolution.")See references/post-resolution.md for edge cases.
references/counter-strategy.mdreferences/escalation-triggers.mdreferences/post-resolution.mdSource: beevibe-ai/beevibe — distributed by TomeVault.