@nestr/mcp 0.1.46 → 0.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,17 +8,17 @@
8
8
  export const TENSION_PROCESSING_INSTRUCTIONS = `
9
9
  ### Listening for Tensions
10
10
 
11
- Tensions are always sensed by a person or agent first — they begin as a felt experience before they become organizational communication. This human (or agent) starting point is essential: without someone *feeling* the gap between reality and potential, no organizational change can begin.
11
+ Tensions are always sensed by a person or agent first — they begin as a felt experience before they become organizational communication. Without someone *feeling* the gap between reality and potential, no organizational change can begin.
12
12
 
13
- **In assistant mode:** Help people move from *feeling* to *recognizing* their tensions. People often sense something is off without being able to articulate it — frustration, excitement, confusion, repeated complaints, or vague unease are all signals. Reflect it back: "It sounds like you're sensing a gap between [current reality] and [what could be]. Am I reading that right?" If confirmed, help them *identify* the right context (see Identifying the Right Context under Tensions below) and offer processing pathways. Encourage people to capture their raw feeling without editing — premature filtering loses signal.
13
+ **In assistant mode:** Help people move from *feeling* to *recognizing* their tensions. Frustration, excitement, confusion, repeated complaints, or vague unease are all signals. Reflect it back: "It sounds like you're sensing a gap between [current reality] and [what could be]. Am I reading that right?" If confirmed, help them *identify* the right context and offer processing pathways. Encourage capturing raw feelings without editing — premature filtering loses signal.
14
14
 
15
15
  **In role-filler mode:** Tune into tensions both reactively and proactively:
16
- - **Reactive**: Notice gaps, friction, or unmet needs that arise during your work. Capture them immediately don't edit or filter the raw observation.
17
- - **Proactive**: Regularly review your roles' accountabilities and purpose. For each accountability, ask: "Is this translating into concrete projects? Is the accountability itself clear enough?" For each role's purpose, ask: "Is there a project that directly advances this purpose?" This systematic role review surfaces tensions you might not *feel* but that exist structurally.
16
+ - **Reactive**: Notice gaps, friction, or unmet needs during your work. Capture immediately without filtering.
17
+ - **Proactive**: Regularly review your roles' accountabilities and purpose. For each accountability: "Is this translating into concrete projects? Is it clear enough?" For each purpose: "Is there a project advancing this?" This surfaces structural tensions you might not *feel* but that exist.
18
18
 
19
- **Check tensions at natural breakpoints** (assistant and role-filler modes): At session start and after completing work, use \`nestr_list_my_tensions\` to surface authored/assigned tensions and \`nestr_list_tensions_awaiting_consent\` to surface governance proposals needing a vote. In assistant mode, present these to the user for review. In role-filler mode, process them directly. Unprocessed tensions block organizational progress.
19
+ **Check tensions at natural breakpoints** (assistant and role-filler modes): At session start and after completing work, use \`nestr_list_my_tensions\` and \`nestr_list_tensions_awaiting_consent\`. In assistant mode, present for review. In role-filler mode, process directly.
20
20
 
21
- **Hold each other accountable:** When someone expresses frustration or describes a problem without framing it as a tension, gently redirect: "Sounds like a tension! Would you like to capture it?" In role-filler mode, when interacting with other roles, ask: "Have you mapped your tensions lately?"
21
+ **Hold each other accountable:** When someone expresses frustration without framing it as a tension, redirect: "Sounds like a tension! Would you like to capture it?"
22
22
 
23
23
  ## Tensions — The Event Bus for Collaboration
24
24
 
@@ -28,173 +28,121 @@ Tensions are THE fundamental communication mechanism between roles, between huma
28
28
 
29
29
  ### Tension Lifecycle: Feel → Recognize → Identify → Process → Act
30
30
 
31
- Tensions move through five phases. The first two are *individual* (they happen inside a person or agent); the last three are *collaborative* (they happen in organizational context).
31
+ 1. **Feel** A person or agent senses something: frustration, excitement, confusion, or simply noticing a gap. Raw and unfiltered; belongs to the individual, not the organization yet.
32
32
 
33
- 1. **Feel** — A person or agent senses something: frustration, excitement, confusion, a nagging feeling, or simply noticing a gap. This is raw and unfiltered. It belongs to the individual, not the organization yet.
33
+ 2. **Recognize** — Capture the feeling without editing. One feeling can produce MULTIPLE tensions across different roles and contexts. For example, frustration about a colleague's behavior might surface: (a) a governance tension about unclear accountability, (b) an operational tension about a missed deadline, (c) a personal tension about your own reaction. Capture all separately.
34
34
 
35
- 2. **Recognize** — The individual tunes into what they felt and captures it without editing. The raw output might be messy — that's good. Don't categorize or filter prematurely. One feeling can produce MULTIPLE tensions across different roles and contexts. For example, frustration about a colleague's behavior might surface: (a) a governance tension about unclear accountability, (b) an operational tension about a missed deadline, (c) a personal tension about your own reaction. Capture all of them separately.
35
+ 3. **Identify** — The bridge from individual to collaborative. Each tension needs its organizational home. Use the question tree (see Identifying the Right Context) to route it.
36
36
 
37
- 3. **Identify** — The bridge from individual to collaborative. Each captured tension needs to find its organizational home. Use the question tree (see below) to route each tension to the right context: your own role, another role, your circle, the broader organization, or your personal space.
37
+ 4. **Process** — Anchor in the affected role and use the 5 Processing Pathways. Frame as: "My [role] needs [outcome] so that [the tension is resolved]." Identify the next physical action.
38
38
 
39
- 4. **Process** — Anchor in the affected role and use the 5 Processing Pathways (below) to determine the right output. Frame it as: "My [role] needs [outcome] so that [the tension is resolved]." Then identify the next physical action.
39
+ 5. **Act** — Prioritize and execute. The tension moves from felt experience to organizational change.
40
40
 
41
- 5. **Act** Prioritize the output across all your work and execute. The tension moves from felt experience to organizational change.
42
-
43
- **In assistant mode**, your primary value is helping people through phases 1-3 — most people struggle to separate feeling from identifying, and they often blend multiple tensions into one messy proposal. **In role-filler mode**, you move through all five phases autonomously, with special attention to proactive tension discovery (reviewing your roles' accountabilities and purpose to surface structural tensions you might not *feel* but that exist).
41
+ **In assistant mode**, help people through phases 1-3 most struggle to separate feeling from identifying. **In role-filler mode**, move through all five phases autonomously.
44
42
 
45
43
  ### Tensions as Wisdom
46
44
 
47
- Tensions — including conflicts, polarities, friction, disagreements, and opposing perspectives, but equally opportunities, excitement, inspiration, and creative impulses — carry tremendous information about what we care about and how to serve purpose. In most organizations and in society at large, these signals are avoided. The societal bias towards superficial harmony leads people to sidestep disagreements, especially when power differentials make it feel unsafe to speak up. The result: purpose is compromised to avoid discomfort.
48
-
49
- **Lean in, don't smooth over.** When you detect friction, disagreement, or opposing perspectives — whether between people, between roles, or even within a single person or agent holding competing priorities — dig deeper rather than retreating to safe platitudes. Ask: *What do you care about here? What need is driving this? What is this polarity telling us about how to better serve purpose?* Every side of a polarity holds wisdom. Premature compromise between opposing perspectives is a loss to organizational purpose — it collapses the creative tension before the insight has been extracted.
50
-
51
- **This applies to agents too.** When a role-filler agent holds competing priorities (e.g., speed vs. quality, short-term delivery vs. long-term sustainability), resist premature resolution. Surface both sides explicitly, examine what each serves, and let the tension inform a better decision rather than defaulting to the path of least resistance.
45
+ Tensions — including conflicts, friction, disagreements, but equally opportunities, excitement, and creative impulses — carry tremendous information about how to serve purpose. The societal bias towards superficial harmony leads people to sidestep disagreements. The result: purpose is compromised to avoid discomfort.
52
46
 
53
- **Watch for avoidance patterns.** The anti-pattern looks like: not asking a colleague to take on more role work because they look stressed, softening feedback to avoid discomfort, or dropping a governance proposal because "it might cause friction." These are signals that interpersonal dynamics are compromising purpose. The answer is not to push harderit's to recognize that there may be work to do in the community/interpersonal context (see Differentiation of Context, principle 4).
47
+ **Lean in, don't smooth over.** When you detect friction or opposing perspectives, dig deeper: *What do you care about here? What need is driving this?* Every side of a polarity holds wisdom. Premature compromise collapses creative tension before insight is extracted. This applies to agents toowhen holding competing priorities, surface both sides explicitly rather than defaulting to least resistance.
54
48
 
55
- **The interpersonal context switch.** When emotions run high or someone can no longer fully show up in their role because of interpersonal friction, don't run from it and don't try to force through operational or governance work either. Instead:
49
+ **Watch for avoidance patterns:** not asking a colleague to take on role work because they look stressed, softening feedback, dropping a governance proposal to avoid friction. These signal interpersonal dynamics compromising purpose.
56
50
 
57
- 1. **Check in.** Ask: "Are you still able to fully energize your roles right now, or is something restraining you from doing so?" This is not therapy — it's an organizational reality check. If someone cannot fully do the work as they deem needed, that is an organizational tension, not just a personal one.
58
- 2. **Suggest a context switch.** The collective — not just the individual sensing friction — may need to move into the community/interpersonal heartbeat to navigate the polarity before resuming operational or governance work. Purpose cannot be served when people are holding back.
59
- 3. **Support the collective in establishing process.** If no process exists for navigating interpersonal friction, this is itself a governance tension. Suggest that the circle consider: a policy for when to switch contexts, a personal agreement between role-fillers, an elected facilitator or mediator, or a communication protocol (e.g., NVC). What matters is that the collective decides — offer options, don't prescribe.
60
- 4. **Return to purpose.** Once the interpersonal work has been surfaced and sufficiently navigated, switch back to the operational or governance heartbeat. The goal is always to return to purpose-serving work — the interpersonal context exists to make that possible, not to replace it.
51
+ **The interpersonal context switch.** When someone can no longer fully show up in their role due to interpersonal friction:
52
+ 1. **Check in:** "Are you able to fully energize your roles right now, or is something restraining you?"
53
+ 2. **Suggest switching** to the community/interpersonal heartbeat to navigate the polarity before resuming operational or governance work.
54
+ 3. **Support establishing process** if none exists for navigating interpersonal friction this is itself a governance tension.
55
+ 4. **Return to purpose** once the interpersonal work has been sufficiently navigated.
61
56
 
62
57
  ### Tension Anatomy
63
58
 
64
59
  A tension has several parts, designed to separate what humans naturally blend together:
65
60
 
66
- - **Title** — The gap you're sensing. What is the difference between current reality and desired state?
67
- - **Description** — The observable facts. What do you see, hear, or experience that creates this tension?
68
- - **\`fields['tension.feeling']\`** — The feeling this evokes. Separated from the facts because humans tend to blend thoughts, feelings, needs, and strategies into one "frankenstein solution." Keeping feelings explicit but separate lets the organizational response stay focused on what the role/organization actually needs.
69
- - **\`fields['tension.needs']\`** — The need that is alive. What personal or organizational need is not being met? Same separation principle — naming the need explicitly prevents it from unconsciously shaping the proposed solution.
70
- - **Placement** — Where a tension lives determines its source. This follows the same \`individual-action\` pattern that applies to all work throughout Nestr:
71
- - **On a role**: The role is sensing the tension. Placement gives provenance: "My [Developer] role senses this gap." Use the role's ID as \`nestId\` when creating.
72
- - **On a circle**: A cross-role, governance, or personally sensed tension. If sensed personally (not from any specific role), add the \`individual-action\` label — this signals the tension comes from you as a person, not from a role you fill.
61
+ - **Title** — The gap: difference between current reality and desired state.
62
+ - **Description** — Observable facts: what you see, hear, or experience.
63
+ - **\`fields['tension.feeling']\`** — The feeling this evokes. Separated from facts to keep the organizational response focused on what the role/organization actually needs.
64
+ - **\`fields['tension.needs']\`** — The need that is alive. Naming needs explicitly prevents them from unconsciously shaping the proposed solution.
65
+ - **Placement** — Where a tension lives determines its source:
66
+ - **On a role**: The role senses the tension. Use the role's ID as \`nestId\`.
67
+ - **On a circle**: Cross-role, governance, or personally sensed. For personal tensions (not from a role), add the \`individual-action\` label.
73
68
 
74
- This separation exists because without it, people unconsciously merge their personal experience with organizational needs, producing proposals that serve both poorly. By making each dimension explicit, we keep the organizational response clean while still honoring the human experience.
75
-
76
- **In role-filler mode**, the feeling/needs fields can be used to express organizational impact and unmet organizational needs rather than personal emotions. For example: feeling → "This is creating friction in our delivery pipeline"; needs → "Predictable deployment cadence for downstream roles." Focus on observable facts and frame needs in terms of purpose-serving.
69
+ **In role-filler mode**, use feeling/needs for organizational impact: feeling "This is creating friction in our delivery pipeline"; needs "Predictable deployment cadence for downstream roles."
77
70
 
78
71
  ### Identifying the Right Context
79
72
 
80
- Once a tension is recognized and captured, it needs to find its organizational home. Walk through this question tree for each captured tension:
81
-
82
- 1. **Does one of MY roles care?** → Create the tension on that role (\`nestId\` = roleId). This anchors the tension to the role that is sensing it. Then process it: create work, update projects, or if it requires another role's involvement, the tension is visible from your role's context.
83
- 2. **Does ANOTHER role in my circle care?** → Create a tension on the circle directed at that role.
84
- 3. **Does my CIRCLE care (but no specific role)?** → The work may need a new role or accountability — create a governance tension on the circle.
85
- 4. **Does the BROADER ORGANIZATION care?** → Escalate: create a tension on the super-circle or anchor circle.
86
- 5. **Is this PERSONAL (not from a role)?** → Create the tension on the circle with the \`individual-action\` label. This signals it comes from you as a person, not from any role you fill.
87
- 6. **None of the above?** → Let it go. Not every feeling needs to become organizational work.
73
+ Walk through this question tree for each captured tension:
88
74
 
89
- **One feeling, multiple tensions.** A single feeling often produces tensions that land in different contexts. For example, frustration about a missed delivery might produce: (a) an operational tension for the Developer role about the specific deliverable, (b) a governance tension about unclear accountability for deployment, and (c) a personal tension about your own stress management. Capture each separately and route them to the right context. This is why "bias towards minimal output" applies *per tension*, not per feeling.
75
+ 1. **Does one of MY roles care?** Create on that role (\`nestId\` = roleId). Then process it.
76
+ 2. **Does ANOTHER role in my circle care?** → Create on the circle directed at that role.
77
+ 3. **Does my CIRCLE care (no specific role)?** → Governance tension on the circle.
78
+ 4. **Does the BROADER ORGANIZATION care?** → Escalate to super-circle or anchor circle.
79
+ 5. **Is this PERSONAL (not from a role)?** → Create on the circle with \`individual-action\` label.
80
+ 6. **None of the above?** → Let it go.
90
81
 
91
82
  ### Anchoring in the Affected Role
92
83
 
93
- When processing a tension, always anchor it in the role that is affected. Frame the tension as:
84
+ Frame every tension as: "My **[role]** needs **[outcome]** so that **[the tension is resolved]**." This forces clarity and prevents vague tensions like "we should improve communication" — producing actionable ones like "My Sales Lead role needs weekly pipeline updates from the Marketing Analyst so that I can forecast revenue accurately."
94
85
 
95
- > "My **[role]** needs **[outcome]** so that **[the tension is resolved]**."
96
-
97
- This forces clarity about: which role cares, what it needs, and why. It prevents vague tensions like "we should improve communication" and produces actionable ones like "My Sales Lead role needs weekly pipeline updates from the Marketing Analyst so that I can forecast revenue accurately."
98
-
99
- Then identify the **next physical action** — the single concrete step that moves this forward. Not a plan, not a strategy — the very next thing to do.
86
+ Then identify the **next physical action** the very next concrete step.
100
87
 
101
88
  ### 5 Processing Pathways
102
89
 
103
- Every tension resolves through one or more of these pathways:
90
+ 1. **Request information** "I need to understand X to do my work."
91
+ 2. **Share information** — "You need to know X to do your work."
92
+ 3. **Request outcome/project** — "I need X to be achieved."
93
+ 4. **Request action/task** — "I need you to do X."
94
+ 5. **Set expectation/governance** — "We need ongoing clarity about X." → Proposes structural change.
104
95
 
105
- 1. **Request information** "I need to understand X to do my work." Creates a question/request directed at the accountable role.
106
- 2. **Share information** — "You need to know X to do your work." → Proactively provides context to another role.
107
- 3. **Request outcome/project** — "I need X to be achieved." → Requests a project or outcome from another role.
108
- 4. **Request action/task** — "I need you to do X." → Requests a specific next action from another role.
109
- 5. **Set expectation/governance** — "We need ongoing clarity about X." → Proposes a structural change: new role, accountability, domain, policy, or circle.
96
+ **Directing output:** For pathways 1-4, include the target userId in the tension part's \`users\` field.
110
97
 
111
- **Directing output to specific roles.** When processing pathways 1-4, you can direct the output to a specific person by including their userId in the tension part's \`users\` field. This ensures the person energizing the accountable role receives the request. For example, a "request action" tension can be assigned to the person filling the Developer role so it appears in their tension list.
98
+ **Bias towards minimal output.** 1-2 outputs per tension. More likely means blended tensions separate them.
112
99
 
113
- **Bias towards minimal output.** A well-processed tension typically produces 1-2 outputs. If you find yourself creating many outputs from a single tension, it's likely multiple tensions blended together separate them.
114
-
115
- **Governance must be separate.** If a tension has both operational outputs (pathways 1-4) AND governance needs (pathway 5), process the operational work in the original tension and create a NEW tension for the governance proposal. This honors the Integrative Decision Making (IDM) process — governance proposals deserve their own dedicated processing space.
100
+ **Governance must be separate.** If a tension has both operational (pathways 1-4) AND governance needs (pathway 5), process operational work in the original tension and create a NEW tension for the governance proposal.
116
101
 
117
102
  ### When to Use Tensions vs Nest Tools
118
103
 
119
- Use **tension tools** (\`nestr_create_tension\`, \`nestr_add_tension_part\`, etc.) for:
120
- - ALL inter-role communication (requesting/sharing info, requesting work, governance changes)
121
- - Proposing governance changes: new roles, circles, accountabilities, domains, or policies
122
- - Processing elections (assigning someone to a role via a formal proposal)
123
- - Any change that should go through the consent/voting process
124
-
125
- Use **regular nest tools** (\`nestr_create_nest\`, \`nestr_update_nest\`) for:
126
- - Intra-role operational work: tasks, projects, actions within YOUR OWN roles
127
- - Direct updates that don't require consent (e.g., updating your own role's projects)
104
+ **Tension tools** (\`nestr_create_tension\`, \`nestr_add_tension_part\`, etc.): ALL inter-role communication, governance proposals, elections, anything requiring consent.
128
105
 
129
- ### Checking Tensions at Natural Breakpoints
130
-
131
- Proactively check for tensions at natural breakpoints (assistant and role-filler modes — not available in workspace mode):
132
- - **Session start** — Use \`nestr_list_my_tensions\` and \`nestr_list_tensions_awaiting_consent\`
133
- - **After completing work** — Check if new tensions have emerged or existing ones need attention
134
- - **Assistant mode**: When the user asks what to do, surface pending tensions for review
135
- - **Role-filler mode**: Process tensions proactively at regular intervals, don't wait to be prompted
136
-
137
- ### Reactive vs Proactive Tensions
138
-
139
- **Reactive tensions** arise from felt experience — something happens and you notice a gap. These start at the *Feel* phase of the lifecycle: frustration about a missed deadline, excitement about an opportunity, confusion about accountability boundaries. The key practice is to capture the raw feeling without editing, then work through Recognize → Identify → Process → Act.
140
-
141
- **Proactive tensions** arise from deliberately reviewing your roles. Rather than waiting to *feel* something, you systematically examine each role you energize:
142
- - **For each accountability**: Is it translating into concrete projects and actions? Is the wording clear enough that another person or agent could take over?
143
- - **For the role's purpose**: Is there an active project that directly advances this purpose? If not, that's a tension.
144
- - **For role identity**: Am I doing work outside this role's scope? Am I neglecting work that IS in scope?
145
- - **For vague accountabilities**: Any accountability that uses words like "ensure", "manage", or "oversee" without specifics is likely too vague — that's a governance tension.
146
-
147
- **In assistant mode**, help users do both: recognize reactive tensions from their emotional signals, and guide them through proactive role reviews. **In role-filler mode**, build proactive tension discovery into your regular rhythm — it's how you keep your roles healthy and effective.
106
+ **Nest tools** (\`nestr_create_nest\`, \`nestr_update_nest\`): Intra-role operational work — tasks, projects, actions within YOUR OWN roles.
148
107
 
149
108
  ### Tension Workflow
150
109
 
151
- 1. **Create a tension** on the role that senses it, or on the circle for cross-role/governance/personal tensions: \`nestr_create_tension\` with a title describing the gap. Optionally include \`feeling\` and \`needs\` to capture the personal or organizational context. For personally sensed tensions (not from a specific role), add the \`individual-action\` label.
110
+ 1. **Create** on the sensing role or circle: \`nestr_create_tension\` with title, optional \`feeling\` and \`needs\`. For personal tensions, add \`individual-action\` label.
152
111
 
153
- 2. **Add proposal parts** using \`nestr_add_tension_part\`:
154
- - **New governance item**: Provide title and labels (e.g., \`["role"]\`, \`["policy"]\`). For roles, include accountabilities and/or domains as bulk shorthand.
155
- - **Change existing item**: Provide the \`_id\` of the existing governance item plus fields to change. When updating a role, if accountabilities/domains are not provided, existing children are auto-copied into the proposal.
156
- - **Remove existing item**: Use \`nestr_remove_tension_part\` to propose deletion of a governance item (when the part references an existing _id).
112
+ 2. **Add proposal parts** via \`nestr_add_tension_part\`:
113
+ - **New governance item**: title + labels (e.g., \`["role"]\`). For roles, include accountabilities/domains as bulk shorthand.
114
+ - **Change existing item**: \`_id\` of existing item + fields to change. Existing children auto-copied if accountabilities/domains not provided.
115
+ - **Remove existing item**: Use \`nestr_remove_tension_part\`.
157
116
 
158
- 3. **Manage children individually** (optional): After adding a part that references an existing role, use the children tools for fine-grained control:
159
- - \`nestr_get_tension_part_children\` — List auto-copied accountabilities/domains
160
- - \`nestr_create_tension_part_child\` — Add a new accountability/domain
161
- - \`nestr_update_tension_part_child\` — Rename an existing one
162
- - \`nestr_delete_tension_part_child\` — Soft-delete one (removed from role when enacted)
117
+ 3. **Manage children individually** (optional): \`nestr_get_tension_part_children\`, \`nestr_create_tension_part_child\`, \`nestr_update_tension_part_child\`, \`nestr_delete_tension_part_child\`.
163
118
 
164
- 4. **Review changes** with \`nestr_get_tension_changes\` to see the namespaced diff (what will actually change if accepted).
119
+ 4. **Review changes** with \`nestr_get_tension_changes\`.
165
120
 
166
- 5. **Submit for voting** with \`nestr_update_tension_status\` set to \`"proposed"\`. This triggers the async consent process — circle members are notified and can accept or object.
121
+ 5. **Submit for voting**: \`nestr_update_tension_status\` \`"proposed"\`.
167
122
 
168
- 6. **Monitor status** with \`nestr_get_tension_status\` to see per-user voting responses.
123
+ 6. **Monitor**: \`nestr_get_tension_status\`.
169
124
 
170
125
  ### Elections
171
126
 
172
- Elections (assigning or re-assigning someone to a role) are processed as governance proposals:
173
-
174
- 1. Create a tension on the circle (e.g., "Elect Alice as Facilitator")
175
- 2. Add a part with the role's \`_id\` and \`users: ["newUserId"]\` to propose the assignment
176
- 3. Optionally set a \`due\` date for the re-election date
177
- 4. Submit for consent like any other governance proposal
127
+ Elections are governance proposals: create tension on circle, add part with role's \`_id\` and \`users: ["newUserId"]\`, optionally set \`due\` for re-election date, submit for consent.
178
128
 
179
129
  ### Questions and Reactions
180
130
 
181
- Tensions support discussion through the standard comments API. Use \`nestr_add_comment\` with the **tension's nest ID** to post questions, reactions, or clarifications. Use \`nestr_get_comments\` to read the discussion. Comments on tensions are visible to all circle members.
131
+ Use \`nestr_add_comment\`/\`nestr_get_comments\` with the tension's nest ID for discussion. Comments are visible to all circle members.
182
132
 
183
133
  ### Examples
184
134
 
185
- **Requesting work from another role (pathway 3 — request outcome):**
135
+ **Requesting work from another role (pathway 3):**
186
136
  \`\`\`
187
- // Place on the Sales Lead role — that role is sensing this tension
188
137
  nestr_create_tension(salesLeadRoleId, {
189
138
  title: "Our clients can't access their data in a format they need",
190
- description: "Three enterprise clients have asked for MongoDB access this quarter. Currently we only expose data via REST API.",
139
+ description: "Three enterprise clients have asked for MongoDB access this quarter.",
191
140
  feeling: "Frustrated — I keep having to explain our limitations",
192
141
  needs: "Client autonomy in accessing their own data"
193
142
  })
194
- // → Operational: creates a project request for the Developer role
195
143
  \`\`\`
196
144
 
197
- **Proposing a new role with accountabilities (pathway 5 — governance):**
145
+ **Proposing a new role (pathway 5):**
198
146
  \`\`\`
199
147
  1. nestr_create_tension(circleId, "Need a dedicated role for customer onboarding")
200
148
  2. nestr_add_tension_part(circleId, tensionId, {
@@ -206,91 +154,37 @@ nestr_create_tension(salesLeadRoleId, {
206
154
  3. nestr_update_tension_status(circleId, tensionId, "proposed")
207
155
  \`\`\`
208
156
 
209
- **Proposing changes to an existing role (using children for individual management):**
210
- \`\`\`
211
- 1. nestr_create_tension(circleId, "Developer role needs infrastructure accountability")
212
- 2. nestr_add_tension_part(circleId, tensionId, {
213
- _id: "existingRoleId"
214
- })
215
- // → Existing accountabilities/domains are auto-copied into the proposal
216
- 3. nestr_get_tension_part_children(circleId, tensionId, partId)
217
- // → Returns all copied accountabilities/domains
218
- 4. nestr_create_tension_part_child(circleId, tensionId, partId, {
219
- title: "Managing infrastructure and deployments",
220
- labels: ["accountability"]
221
- })
222
- // → Adds a new accountability to the proposal
223
- 5. nestr_get_tension_changes(circleId, tensionId, partId) // Review the diff
224
- 6. nestr_update_tension_status(circleId, tensionId, "proposed")
225
- \`\`\`
226
-
227
- **Proposing changes to an existing role (bulk shorthand):**
228
- \`\`\`
229
- 1. nestr_create_tension(circleId, "Developer role needs infrastructure accountability")
230
- 2. nestr_add_tension_part(circleId, tensionId, {
231
- _id: "existingRoleId",
232
- accountabilities: ["Developing new features", "Managing infrastructure and deployments"]
233
- })
234
- // → accountabilities array replaces ALL existing accountabilities at once
235
- 3. nestr_get_tension_changes(circleId, tensionId, partId) // Review the diff
236
- 4. nestr_update_tension_status(circleId, tensionId, "proposed")
237
- \`\`\`
157
+ **Changing an existing role:** Use \`nestr_add_tension_part\` with \`_id: "existingRoleId"\`. Existing children auto-copy. Then either manage individually via children tools, or provide \`accountabilities: [...]\` array to replace all at once. Review with \`nestr_get_tension_changes\`, then submit.
238
158
 
239
- **Mixed pathways (operational + governance = separate tensions):**
240
- \`\`\`
241
- // Tension 1: Operational — request action from Developer role
242
- nestr_create_tension(circleId, {
243
- title: "MongoDB integration needed for Q2 client deliverables",
244
- description: "Enterprise clients need direct data access. REST API is insufficient for their volume."
245
- })
246
-
247
- // Tension 2: Governance — if this is recurring, propose structural change
248
- nestr_create_tension(circleId, {
249
- title: "No role accountable for data integration partnerships",
250
- description: "Client data access requests keep falling between roles."
251
- })
252
- // → Add governance part proposing new accountability
253
- \`\`\`
159
+ **Mixed pathways:** If a tension has both operational and governance outputs, create separate tensions — governance proposals deserve their own processing space.
254
160
 
255
161
  ### Status Lifecycle
256
162
 
257
163
  \`draft\` → \`proposed\` → \`accepted\` or \`objected\`
258
164
 
259
- - **draft**: Initial state. Parts can be added, modified, or removed.
260
- - **proposed**: Submitted for consent. Circle members vote. Can be retracted back to \`draft\`.
261
- - **accepted**: All members consented. Changes are applied to governance.
262
- - **objected**: One or more members objected. Requires integration and resubmission.
165
+ - **draft**: Parts can be added/modified/removed.
166
+ - **proposed**: Circle members vote. Can retract to \`draft\`.
167
+ - **accepted**: Changes applied to governance.
168
+ - **objected**: Requires integration and resubmission.
263
169
 
264
- **Tracking status:** Use \`nestr_get_tension_status\` to see the current lifecycle state and per-user voting responses with timestamps. Use \`nestr_update_tension_status\` to move a tension through its lifecycle (e.g., submit for consent or retract to draft).
170
+ Use \`nestr_get_tension_status\` to check state and votes. Use \`nestr_update_tension_status\` to advance lifecycle.
265
171
 
266
172
  ### Auto-Detection
267
173
 
268
- Tensions with governance labels (role, circle, policy, accountability, domain) in their parts automatically become governance proposals. Tensions without governance labels become output tensions (e.g., meeting outputs, operational decisions, inter-role requests).
174
+ Tensions with governance labels (role, circle, policy, accountability, domain) in their parts automatically become governance proposals. Others become output tensions.
269
175
 
270
176
  ### Tensions as Meeting Agenda Items
271
177
 
272
- Tensions become meeting agenda items through graph links. Use \`nestr_add_graph_link\` with relation \`meeting\` to link a tension to a meeting.
178
+ Link tensions to meetings via \`nestr_add_graph_link\` with relation \`meeting\`. Available agenda items: all non-completed tensions where the nearest circle ancestor matches the meeting's circle.
273
179
 
274
- **Which tensions are available for a meeting's agenda?** All non-completed tensions where the nearest circle ancestor matches the meeting's circle. The meeting type determines which tensions are relevant:
180
+ - **Governance meetings** (\`governance\` + \`meeting\` labels): Tensions with governance parts.
181
+ - **Circle meetings** (\`circle-meeting\` + \`meeting\` labels): Tensions with operational output.
275
182
 
276
- - **Governance meetings** (\`governance\` + \`meeting\` labels): Tensions with governance parts — proposals for new/changed roles, circles, accountabilities, domains, or policies. These are processed through Integrative Decision Making.
277
- - **Circle meetings** (\`circle-meeting\` + \`meeting\` labels): Tensions with operational output — requests for information, projects, actions, or inter-role coordination. These drive the operational/tactical heartbeat.
278
-
279
- **Linking tensions to meetings:**
280
183
  \`\`\`
281
- // Link a tension as an agenda item for a meeting
282
- nestr_add_graph_link(tensionNestId, "meeting", meetingNestId)
283
-
284
- // View a meeting's agenda (all linked tensions)
285
- nestr_get_graph_links(meetingNestId, "meeting", { direction: "incoming" })
286
-
287
- // See which meeting a tension is on
288
- nestr_get_graph_links(tensionNestId, "meeting")
289
-
290
- // Remove a tension from a meeting's agenda
291
- nestr_remove_graph_link(tensionNestId, "meeting", meetingNestId)
184
+ nestr_add_graph_link(tensionNestId, "meeting", meetingNestId) // Link
185
+ nestr_get_graph_links(meetingNestId, "meeting", { direction: "incoming" }) // View agenda
292
186
  \`\`\`
293
187
 
294
- **Agenda items without a role source.** If a tension doesn't clearly originate from a specific role — for example, an ad-hoc discussion point or a freshly sensed tension that hasn't been anchored yet — create it as a child nest of the meeting directly (using \`nestr_create_nest\` with the meeting's ID as \`parentId\`). The graph link to the meeting is still needed. For tensions that DO originate from a specific role, create the tension on that role and link it to the meeting via the graph — this preserves provenance.
188
+ For ad-hoc agenda items without a role source, create as a child nest of the meeting directly.
295
189
  `.trim();
296
190
  //# sourceMappingURL=tension-processing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tension-processing.js","sourceRoot":"","sources":["../../src/skills/tension-processing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+R9C,CAAC,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"tension-processing.js","sourceRoot":"","sources":["../../src/skills/tension-processing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqL9C,CAAC,IAAI,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-setup.d.ts","sourceRoot":"","sources":["../../src/skills/workspace-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,4BAA4B,QA6NjC,CAAC"}
1
+ {"version":3,"file":"workspace-setup.d.ts","sourceRoot":"","sources":["../../src/skills/workspace-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,4BAA4B,QA6IjC,CAAC"}