@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.
- package/build/api/client.d.ts +2 -0
- package/build/api/client.d.ts.map +1 -1
- package/build/api/client.js +4 -0
- package/build/api/client.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +81 -5
- package/build/server.js.map +1 -1
- package/build/skills/doing-work.d.ts.map +1 -1
- package/build/skills/doing-work.js +62 -137
- package/build/skills/doing-work.js.map +1 -1
- package/build/skills/tension-processing.d.ts.map +1 -1
- package/build/skills/tension-processing.js +75 -181
- package/build/skills/tension-processing.js.map +1 -1
- package/build/skills/workspace-setup.d.ts.map +1 -1
- package/build/skills/workspace-setup.js +58 -138
- package/build/skills/workspace-setup.js.map +1 -1
- package/build/tools/index.d.ts +64 -10
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +121 -18
- package/build/tools/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,102 +9,77 @@
|
|
|
9
9
|
export const DOING_WORK_INSTRUCTIONS = `
|
|
10
10
|
## Doing Work
|
|
11
11
|
|
|
12
|
-
Work is the operational expression of purpose. If work does not contribute — directly or indirectly — to the purpose of the organization, it should not be done. Every project, task, and action should trace back
|
|
12
|
+
Work is the operational expression of purpose. If work does not contribute — directly or indirectly — to the purpose of the organization, it should not be done. Every project, task, and action should trace back: task → project → role purpose → circle purpose → organizational purpose. If that chain breaks, either the work doesn't belong, or there's a governance tension.
|
|
13
13
|
|
|
14
14
|
### Where Work Lives
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Work should live under roles.** Each task or project should be owned by a role that has the accountability for it. Work belongs to roles, not to people or agents. When someone energizes a role, they do the work *because* they fill that role, not in their own right.
|
|
17
17
|
|
|
18
|
-
**
|
|
18
|
+
**Circles as roles.** From a super-circle's perspective, a sub-circle is just another role. Work directly under a circle (not under a role within it) is work the circle-as-a-whole does for its super-circle.
|
|
19
19
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
**Work outside of roles.** Sometimes work needs to be done that falls within the organization's purpose but isn't yet captured by any role. This work is captured directly in a circle with the \`individual-action\` label:
|
|
23
|
-
- **Context**: The work is for this circle's purpose (not the super-circle)
|
|
24
|
-
- **Meaning**: Work needed for the circle but not yet assigned to a role
|
|
25
|
-
- **Next step**: Do the work, AND create a governance tension to ensure the accountability is captured in a role going forward. The governance tension is essential — without it, the gap stays invisible.
|
|
20
|
+
**Work outside of roles.** When work falls within purpose but isn't captured by any role, create it directly in the circle with the \`individual-action\` label. Then do the work AND create a governance tension to ensure the accountability is captured in a role going forward.
|
|
26
21
|
|
|
27
22
|
### Finding the Right Role
|
|
28
23
|
|
|
29
|
-
Before creating work, verify which role is accountable
|
|
30
|
-
|
|
31
|
-
1. **\`nestr_get_circle_roles\`** — Returns all roles in a circle with their accountabilities and domains. The fastest way to see the full governance structure.
|
|
32
|
-
2. **\`nestr_search\`** with \`label:accountability\` or \`label:domain\` — Search across the workspace for specific accountabilities or domains by keyword.
|
|
33
|
-
3. **\`nestr_get_nest_children\`** on a specific role — Returns the role's accountabilities, domains, policies, and work items.
|
|
34
|
-
|
|
35
|
-
**Role names are hints, not definitions.** Only the role's explicit purpose and accountabilities tell you what work belongs there. "Developer" might handle infrastructure; "Architect" might write code.
|
|
24
|
+
Before creating work, verify which role is accountable:
|
|
36
25
|
|
|
37
|
-
|
|
26
|
+
1. **\`nestr_get_circle_roles\`** — All roles in a circle with accountabilities and domains. Fastest way to see governance structure.
|
|
27
|
+
2. **\`nestr_search\`** with \`label:accountability\` or \`label:domain\` — Search across the workspace by keyword.
|
|
28
|
+
3. **\`nestr_get_nest_children\`** on a specific role — Returns accountabilities, domains, policies, and work items.
|
|
38
29
|
|
|
39
|
-
|
|
40
|
-
\`\`\`
|
|
41
|
-
1. nestr_get_circle_roles(workspaceId, circleId)
|
|
42
|
-
→ Review accountabilities of each role
|
|
43
|
-
2. Find the role whose accountability matches the work
|
|
44
|
-
3. Create the project/task under that role
|
|
45
|
-
\`\`\`
|
|
30
|
+
**Role names are hints, not definitions.** Only explicit purpose and accountabilities define what work belongs to a role.
|
|
46
31
|
|
|
47
|
-
|
|
32
|
+
**Domains define exclusive control, not expectations.** A domain means the role controls organizational assets in that area. Others must get permission to impact those assets.
|
|
48
33
|
|
|
49
34
|
### Strategy & Prioritization
|
|
50
35
|
|
|
51
|
-
|
|
36
|
+
Strategy is stored in \`fields['circle.strategy']\` for sub-circles, or \`fields['anchor-circle.strategy']\` for the anchor circle. Strategy applies to all roles within the circle.
|
|
52
37
|
|
|
53
|
-
**Before starting work
|
|
54
|
-
1. Fetch the parent circle and review its strategy field (\`circle.strategy\` or \`anchor-circle.strategy\` depending on the circle type)
|
|
55
|
-
2. Prioritize work that directly serves the strategy
|
|
56
|
-
3. Defer or deprioritize work that doesn't align
|
|
38
|
+
**Before starting work:** Fetch the parent circle and review its strategy. Prioritize aligned work; defer what doesn't align.
|
|
57
39
|
|
|
58
|
-
**When no strategy exists:**
|
|
59
|
-
- As a role filler (human or agent), you are free to interpret the circle's purpose and accountabilities to determine your own best-guess prioritization. Don't wait — act on your best judgment.
|
|
60
|
-
- AND create a tension with the circle lead requesting that a strategy be set. Without a strategy, role fillers lack the guidance they need to make consistent prioritization decisions across the circle.
|
|
40
|
+
**When no strategy exists:** Act on your best judgment based on purpose and accountabilities. AND create a tension with the circle lead requesting a strategy be set.
|
|
61
41
|
|
|
62
|
-
**Communicating priority order:** Use
|
|
42
|
+
**Communicating priority order:** Use \`nestr_reorder_nest\` / \`nestr_bulk_reorder\` to arrange projects under your role in priority order.
|
|
63
43
|
|
|
64
44
|
### Creating Work vs Requesting Work
|
|
65
45
|
|
|
66
|
-
Only create work directly under a role you (or the human you're assisting) energize. For all other roles, use tensions to request work — this respects role authority
|
|
46
|
+
Only create work directly under a role you (or the human you're assisting) energize. For all other roles, use tensions to request work — this respects role authority.
|
|
67
47
|
|
|
68
48
|
#### When you energize the role
|
|
69
49
|
|
|
70
|
-
Create the project or task directly
|
|
50
|
+
Create the project or task directly. You MUST explicitly set the \`users\` array — placing a nest under a role does NOT automatically assign it.
|
|
71
51
|
|
|
72
52
|
\`\`\`json
|
|
73
53
|
{ "parentId": "yourRoleId", "title": "Complete report", "labels": ["project"], "users": ["yourUserId"] }
|
|
74
54
|
\`\`\`
|
|
75
55
|
|
|
76
|
-
If multiple people energize the same role, assign to yourself
|
|
56
|
+
If multiple people energize the same role, assign to yourself.
|
|
77
57
|
|
|
78
58
|
#### When another role is accountable
|
|
79
59
|
|
|
80
|
-
Do NOT create work under another role.
|
|
81
|
-
|
|
82
|
-
- **Assistant mode**: Help the user draft the tension requesting work from the accountable role. If the user insists on creating work directly, inform them which role is accountable and who energizes it.
|
|
83
|
-
- **Role-filler mode**: Create a tension on the circle or within the project (see Cross-role work) requesting the accountable role take on this work.
|
|
84
|
-
- **Workspace mode**: Create a tension directed at the accountable role, or if operating in setup mode, assign based on organizational rules.
|
|
60
|
+
Do NOT create work under another role. Create a tension requesting the outcome (pathway 3 or 4). The role filler decides how to execute.
|
|
85
61
|
|
|
86
62
|
#### When no role is accountable
|
|
87
63
|
|
|
88
|
-
|
|
64
|
+
Do the work yourself using the \`individual-action\` pattern AND create a governance tension to capture the gap.
|
|
89
65
|
|
|
90
66
|
#### Technical assignment rules
|
|
91
67
|
|
|
92
|
-
When you ARE creating work under a role you energize:
|
|
93
68
|
- **Role has one person/agent**: \`users: [userId]\`
|
|
94
69
|
- **Role has multiple people, you energize it**: \`users: [yourUserId]\`
|
|
95
|
-
- **Role is unfilled**: \`users: []\` or omit
|
|
70
|
+
- **Role is unfilled**: \`users: []\` or omit
|
|
96
71
|
|
|
97
72
|
**Note:** Accountabilities, domains, and policies never have users assigned — they belong to roles, not people.
|
|
98
73
|
|
|
99
74
|
### Setting Up Projects
|
|
100
75
|
|
|
101
|
-
A project is a desired outcome
|
|
76
|
+
A project is a desired outcome requiring multiple steps.
|
|
102
77
|
|
|
103
|
-
**Title in past tense.** Describe
|
|
78
|
+
**Title in past tense.** Describe as if done: "API integration completed", "User onboarding flow redesigned". If you can't describe it in past tense, the outcome isn't clear enough.
|
|
104
79
|
|
|
105
|
-
**Acceptance criteria in description.**
|
|
80
|
+
**Acceptance criteria in description.** Specific, verifiable criteria defining when the project is truly complete. Ask: "How would someone verify this is done without asking me?"
|
|
106
81
|
|
|
107
|
-
**Project status.** Set \`fields: { "project.status": "Current" }\` for
|
|
82
|
+
**Project status.** Set \`fields: { "project.status": "Current" }\` for active projects. Statuses: \`Future\`, \`Current\`, \`Waiting\`, \`Done\`.
|
|
108
83
|
|
|
109
84
|
**Creating a project:**
|
|
110
85
|
\`\`\`json
|
|
@@ -113,145 +88,95 @@ A project is a desired outcome that requires multiple steps to achieve. It is th
|
|
|
113
88
|
"title": "Authentication module refactored to JWT",
|
|
114
89
|
"labels": ["project"],
|
|
115
90
|
"fields": { "project.status": "Current" },
|
|
116
|
-
"description": "<b>Acceptance criteria:</b><ul><li>All endpoints use JWT
|
|
91
|
+
"description": "<b>Acceptance criteria:</b><ul><li>All endpoints use JWT</li><li>Session-based auth removed</li><li>All tests pass</li><li>API docs updated</li></ul>",
|
|
117
92
|
"users": ["roleFillerUserId"]
|
|
118
93
|
}
|
|
119
94
|
\`\`\`
|
|
120
95
|
|
|
121
|
-
**If a project already exists**,
|
|
122
|
-
- Check if the description has clear acceptance criteria
|
|
123
|
-
- If not, **append** to the description (don't overwrite) with suggested criteria
|
|
124
|
-
- In assistant mode, suggest criteria to the user. In role-filler mode, define them yourself.
|
|
96
|
+
**If a project already exists**, check for acceptance criteria and append if missing (don't overwrite).
|
|
125
97
|
|
|
126
98
|
### Breaking Down Projects
|
|
127
99
|
|
|
128
|
-
|
|
100
|
+
**Tasks** are single, concrete actions completable in one sitting — nests without system labels under the project.
|
|
129
101
|
|
|
130
|
-
**
|
|
102
|
+
**Sub-projects** are project-labeled nests within a project for multi-step chunks.
|
|
131
103
|
|
|
132
|
-
**
|
|
133
|
-
|
|
134
|
-
**Cross-role work within a project.** When breaking down a project, some tasks or sub-projects may fall outside your role's accountabilities or purpose. For these:
|
|
135
|
-
1. **Create a tension within the project** using \`nestr_create_tension\` with the project's ID as \`nestId\`. This keeps the tension visibly connected to the project outcome.
|
|
136
|
-
2. The tension requests work from the accountable role (using processing pathway 3 or 4 from the tension skill).
|
|
137
|
-
3. The resulting work lives under the other role but the tension within the project maintains the relationship and traceability.
|
|
138
|
-
|
|
139
|
-
This pattern ensures the project remains the single container for the complete outcome, even when multiple roles contribute to it.
|
|
104
|
+
**Cross-role work within a project.** When tasks fall outside your role's accountabilities, create a tension within the project (\`nestr_create_tension\` with the project's ID as \`nestId\`). This keeps the tension connected to the project while requesting work from the accountable role via pathway 3 or 4.
|
|
140
105
|
|
|
141
106
|
### While Working
|
|
142
107
|
|
|
143
|
-
**Document progress as comments** (\`nestr_add_comment\`)
|
|
144
|
-
- Post updates to individual tasks as you work on them
|
|
145
|
-
- Post summaries or milestone updates to the project itself
|
|
146
|
-
- In assistant mode, capture relevant questions you asked the user and their answers
|
|
147
|
-
- Note: Comments on a task automatically appear on the parent project, so don't double-post
|
|
108
|
+
**Document progress as comments** (\`nestr_add_comment\`). Post updates to tasks as you work; summaries to the project. Comments on tasks automatically appear on the parent project — don't double-post.
|
|
148
109
|
|
|
149
|
-
**Mark tasks complete**
|
|
150
|
-
- Use \`nestr_update_nest\` with \`completed: true\`
|
|
151
|
-
- Add a final comment summarizing what was done if the outcome isn't obvious from the title
|
|
110
|
+
**Mark tasks complete** with \`nestr_update_nest\` (\`completed: true\`). Add a final comment if the outcome isn't obvious from the title.
|
|
152
111
|
|
|
153
112
|
### Completing Work
|
|
154
113
|
|
|
155
|
-
A project is done when all
|
|
114
|
+
A project is done when all acceptance criteria are met.
|
|
156
115
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
2. If any criteria aren't met, either complete the remaining work or update the criteria (with a comment explaining why)
|
|
116
|
+
1. Review criteria — are they all met?
|
|
117
|
+
2. If not, complete remaining work or update criteria (with a comment explaining why)
|
|
160
118
|
3. Set \`fields: { "project.status": "Done" }\` and \`completed: true\`
|
|
161
119
|
4. Add a final comment summarizing the outcome
|
|
162
120
|
|
|
163
|
-
**After completion
|
|
164
|
-
- Did the work surface gaps in governance (missing roles, unclear accountabilities)?
|
|
165
|
-
- Did the work reveal operational needs for other roles?
|
|
166
|
-
- Is the work repeatable? If so, capture it as a skill under the role.
|
|
167
|
-
- Capture any emerging tensions — completed work often reveals the next thing that needs to change.
|
|
121
|
+
**After completion:** Check for new tensions — governance gaps, operational needs for other roles, repeatable work to capture as a skill.
|
|
168
122
|
|
|
169
123
|
### Querying Work
|
|
170
124
|
|
|
171
|
-
When
|
|
172
|
-
|
|
173
|
-
**Include:**
|
|
174
|
-
- Work under roles within the circle: \`in:circleId label:!individual-action depth:2 completed:false\`
|
|
175
|
-
- Individual actions for the circle: \`in:circleId label:individual-action depth:1 completed:false\`
|
|
125
|
+
When querying work in a circle:
|
|
176
126
|
|
|
177
|
-
**Handle separately:**
|
|
178
|
-
- Work directly in circle WITHOUT \`individual-action\` label = work the circle does for its super-circle
|
|
179
|
-
- You may include this but explicitly note: "This work lives at the super-circle level"
|
|
180
|
-
|
|
181
|
-
**Example queries:**
|
|
182
127
|
\`\`\`
|
|
183
128
|
in:circleId label:individual-action depth:1 completed:false
|
|
184
|
-
-> Individual actions directly in the circle
|
|
129
|
+
-> Individual actions directly in the circle
|
|
185
130
|
|
|
186
131
|
in:circleId label:!individual-action depth:2 completed:false
|
|
187
|
-
-> Work under
|
|
132
|
+
-> Work under roles in the circle (depth:2 = roles + their work)
|
|
188
133
|
|
|
189
134
|
in:circleId completed:false
|
|
190
|
-
-> ALL work
|
|
135
|
+
-> ALL work including sub-circles
|
|
191
136
|
|
|
192
137
|
in:roleId label:project project->status:Current
|
|
193
138
|
-> Current projects owned by a specific role
|
|
194
139
|
\`\`\`
|
|
195
140
|
|
|
141
|
+
Work directly in circle WITHOUT \`individual-action\` label = work the circle does for its super-circle.
|
|
142
|
+
|
|
196
143
|
### Agentic Work Patterns
|
|
197
144
|
|
|
198
|
-
|
|
145
|
+
Agents operate with the same authority and constraints as human role fillers — no more, no less.
|
|
199
146
|
|
|
200
|
-
**Build autonomy skills.** For each role
|
|
201
|
-
- What decisions you can make autonomously within this role's accountabilities
|
|
202
|
-
- What requires input or authorization from other roles (and which ones)
|
|
203
|
-
- Which of those inputs are blocking (can't proceed without) vs. deferrable (can proceed and circle back)
|
|
204
|
-
This skill evolves over time as you learn the boundaries. When in doubt, ask — then record the answer.
|
|
147
|
+
**Build autonomy skills.** For each role, maintain a skill (\`skill\` label) capturing: what you can decide autonomously, what requires other roles' input, and which inputs are blocking vs. deferrable.
|
|
205
148
|
|
|
206
|
-
**Transparency over permission.**
|
|
149
|
+
**Transparency over permission.** Post comments explaining what you decided and why — lets humans review without being a bottleneck.
|
|
207
150
|
|
|
208
|
-
**Protect humans from overwhelm
|
|
209
|
-
1. **Cluster requests
|
|
210
|
-
2. **Separate blocking from deferrable
|
|
211
|
-
3. **Switch projects while waiting
|
|
212
|
-
4. **Use tensions as the communication channel
|
|
151
|
+
**Protect humans from overwhelm:**
|
|
152
|
+
1. **Cluster requests** — prepare tensions in \`draft\` status and submit together once or twice a day.
|
|
153
|
+
2. **Separate blocking from deferrable** — let humans prioritize.
|
|
154
|
+
3. **Switch projects while waiting** — prefer switching over waiting idle.
|
|
155
|
+
4. **Use tensions as the communication channel** for all inter-role requests.
|
|
213
156
|
|
|
214
|
-
**The human-agent contract:** Agents
|
|
157
|
+
**The human-agent contract:** Agents can work continuously but humans cannot. Respect this asymmetry. An agent creating 20 tensions per hour is technically correct but practically hostile.
|
|
215
158
|
|
|
216
159
|
### Example Flows
|
|
217
160
|
|
|
218
161
|
**Assistant mode:**
|
|
219
162
|
\`\`\`
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
2. Check circle strategy — does this align?
|
|
224
|
-
3. Create project: "Authentication module refactored to JWT"
|
|
225
|
-
- Description: acceptance criteria (all endpoints use JWT, tests pass, docs updated)
|
|
226
|
-
- Parent: Developer role
|
|
227
|
-
- Assign to user
|
|
163
|
+
1. Search for relevant role (e.g., Developer in Tech circle)
|
|
164
|
+
2. Check circle strategy for alignment
|
|
165
|
+
3. Create project under role, assign to user
|
|
228
166
|
4. Break down into tasks
|
|
229
|
-
5.
|
|
230
|
-
within the project requesting that role's input
|
|
167
|
+
5. Create tensions for cross-role work (e.g., Security review)
|
|
231
168
|
6. Work through tasks, post findings as comments
|
|
232
|
-
7. Mark
|
|
233
|
-
8. When all criteria met, complete the project
|
|
169
|
+
7. Mark tasks complete; complete project when all criteria met
|
|
234
170
|
\`\`\`
|
|
235
171
|
|
|
236
|
-
**Role-filler mode
|
|
172
|
+
**Role-filler mode:**
|
|
237
173
|
\`\`\`
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
- Assign to self
|
|
245
|
-
2. Break down into tasks — identify that Security Review requires
|
|
246
|
-
the Security Lead role (human-filled)
|
|
247
|
-
3. Work on tasks within own authority autonomously
|
|
248
|
-
4. Prepare a tension within the project requesting Security Lead review
|
|
249
|
-
(draft status — cluster with other pending requests)
|
|
250
|
-
5. At a natural breakpoint, submit clustered tensions
|
|
251
|
-
6. While waiting for Security Lead, switch to next priority project
|
|
252
|
-
7. When review comes back, complete remaining tasks
|
|
253
|
-
8. Post decision comments for transparency
|
|
254
|
-
9. Complete project, capture repeatable process as a skill
|
|
174
|
+
1. Create project under own role, assign to self
|
|
175
|
+
2. Break down tasks — identify cross-role dependencies
|
|
176
|
+
3. Work autonomously on tasks within own authority
|
|
177
|
+
4. Cluster cross-role tensions in draft, submit at breakpoints
|
|
178
|
+
5. Switch to other projects while waiting for responses
|
|
179
|
+
6. Complete project, capture repeatable process as skill
|
|
255
180
|
\`\`\`
|
|
256
181
|
`.trim();
|
|
257
182
|
//# sourceMappingURL=doing-work.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doing-work.js","sourceRoot":"","sources":["../../src/skills/doing-work.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG
|
|
1
|
+
{"version":3,"file":"doing-work.js","sourceRoot":"","sources":["../../src/skills/doing-work.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KtC,CAAC,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tension-processing.d.ts","sourceRoot":"","sources":["../../src/skills/tension-processing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,+BAA+B,
|
|
1
|
+
{"version":3,"file":"tension-processing.d.ts","sourceRoot":"","sources":["../../src/skills/tension-processing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,+BAA+B,QAqLpC,CAAC"}
|