soft-skills 2.1.0
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/LICENSE +21 -0
- package/README.md +166 -0
- package/package.json +28 -0
- package/plugins/soft-skills/.claude-plugin/plugin.json +19 -0
- package/plugins/soft-skills/.codex-plugin/plugin.json +27 -0
- package/plugins/soft-skills/LICENSE +21 -0
- package/plugins/soft-skills/roles.md +35 -0
- package/plugins/soft-skills/skills/ai-to-delegated/SKILL.md +33 -0
- package/plugins/soft-skills/skills/ai-to-delegated/briefing/examples.md +63 -0
- package/plugins/soft-skills/skills/ai-to-delegated/briefing/forked-context.md +9 -0
- package/plugins/soft-skills/skills/ai-to-delegated/briefing/fresh-context.md +22 -0
- package/plugins/soft-skills/skills/ai-to-delegated/configurations/colloquium.md +28 -0
- package/plugins/soft-skills/skills/ai-to-delegated/configurations/hillclimber-watcher/protocol.md +72 -0
- package/plugins/soft-skills/skills/ai-to-delegated/configurations/hillclimber-watcher/watcher.md +25 -0
- package/plugins/soft-skills/skills/ai-to-delegated/configurations/pair-programming.md +72 -0
- package/plugins/soft-skills/skills/ai-to-delegated/configurations/research-fanout.md +38 -0
- package/plugins/soft-skills/skills/ai-to-delegated/coordination/delegates.md +41 -0
- package/plugins/soft-skills/skills/ai-to-delegated/coordination/leading-leaders.md +55 -0
- package/plugins/soft-skills/skills/ai-to-delegated/coordination/many-hours-supervision.md +49 -0
- package/plugins/soft-skills/skills/ai-to-delegated/coordination/peers.md +29 -0
- package/plugins/soft-skills/skills/ai-to-delegated/planning/choose-configuration.md +61 -0
- package/plugins/soft-skills/skills/ai-to-delegated/planning/when-to-delegate.md +62 -0
- package/plugins/soft-skills/skills/ai-to-leader/SKILL.md +40 -0
- package/plugins/soft-skills/skills/ai-to-leader/references/help.md +11 -0
- package/plugins/soft-skills/skills/ai-to-leader/references/human.md +81 -0
- package/plugins/soft-skills/skills/ai-to-leader/references/show-me.md +129 -0
- package/plugins/soft-skills/skills/ai-to-leader/references/token-economic-communication.md +8 -0
- package/plugins/soft-skills/skills/handoff/.references/.davidondrej-version.md +54 -0
- package/plugins/soft-skills/skills/handoff/SKILL.md +83 -0
- package/plugins/soft-skills/skills/peer-review/SKILL.md +12 -0
- package/plugins/soft-skills/skills/peer-review/references/peer-review-instructions.md +23 -0
- package/plugins/soft-skills/skills/peer-review/references/self-peer-review.md +25 -0
- package/plugins/soft-skills/skills/theory-of-mind/SKILL.md +45 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: show-me
|
|
3
|
+
description: Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
|
|
4
|
+
origin: https://github.com/humanlayer/skills/blob/main/plugins/show-me/skills/show-me/SKILL.md
|
|
5
|
+
updated: 2026-09-03
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Help the user understand the current topic of conversation visually. Skip the preamble and keep prose brief. Pick the smallest view that makes the key point clear.
|
|
9
|
+
|
|
10
|
+
- Show logic or an algorithm as pseudocode:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
on(save)
|
|
14
|
+
if content is unchanged
|
|
15
|
+
return cached result
|
|
16
|
+
write new content
|
|
17
|
+
return fresh result
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- Show runtime control flow as a call tree:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
submitForm
|
|
24
|
+
createSession
|
|
25
|
+
persistPrompt
|
|
26
|
+
launchAgent
|
|
27
|
+
navigateToSession
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- Show UI structure as a component tree, including state and module boundaries that matter:
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<SessionPage> (apps/example/src/routes/session.tsx)
|
|
34
|
+
useSessionEvents()
|
|
35
|
+
<SessionToolbar>
|
|
36
|
+
<RunSkillButton> (packages/ui)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- Show file responsibility or a broad refactor as a shallow file tree:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
src/
|
|
43
|
+
├── commands/ # parses user actions
|
|
44
|
+
├── sessions/ # owns session state
|
|
45
|
+
└── transport/ # sends API requests
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- Show component interaction, control flow, or data flow with Mermaid:
|
|
49
|
+
|
|
50
|
+
```mermaid
|
|
51
|
+
sequenceDiagram
|
|
52
|
+
participant User
|
|
53
|
+
participant UI
|
|
54
|
+
participant Daemon
|
|
55
|
+
User->>UI: choose command
|
|
56
|
+
UI->>Daemon: send expanded prompt
|
|
57
|
+
Daemon-->>UI: stream result
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- Use `diff` when the point is what changes and the surrounding shape already exists. Match the diff shape to the topic.
|
|
61
|
+
|
|
62
|
+
For a component change:
|
|
63
|
+
|
|
64
|
+
```diff
|
|
65
|
+
<SessionPage>
|
|
66
|
+
useSessionEvents()
|
|
67
|
+
<SessionToolbar>
|
|
68
|
+
+ <RunSkillButton />
|
|
69
|
+
<SessionTimeline>
|
|
70
|
+
+ <SkillResultCard />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
For a file-layout change:
|
|
74
|
+
|
|
75
|
+
```diff
|
|
76
|
+
src/
|
|
77
|
+
├── commands/
|
|
78
|
+
+│ └── show-me.ts # expands the slash command
|
|
79
|
+
├── sessions/
|
|
80
|
+
-└── transport.ts
|
|
81
|
+
+└── transport/
|
|
82
|
+
+ ├── client.ts
|
|
83
|
+
+ └── stream.ts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
For a call-tree or call-stack change:
|
|
87
|
+
|
|
88
|
+
```diff
|
|
89
|
+
submitForm
|
|
90
|
+
createSession
|
|
91
|
+
persistPrompt
|
|
92
|
+
+ expandSkillMention
|
|
93
|
+
launchAgent
|
|
94
|
+
- navigateToSession
|
|
95
|
+
+ navigateToSession
|
|
96
|
+
+ subscribeToEvents
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
For a state or control-flow change:
|
|
100
|
+
|
|
101
|
+
```diff
|
|
102
|
+
on(save)
|
|
103
|
+
- write content
|
|
104
|
+
+ if content is unchanged
|
|
105
|
+
+ return cached result
|
|
106
|
+
+ write new content
|
|
107
|
+
+ invalidate cache
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
- Show the whole block when most of it is new, when omitted context would hide ownership or order, or when the user needs a copyable target shape:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
function expandSkill(command: string): string {
|
|
114
|
+
const skillName = command.slice(1)
|
|
115
|
+
return `use the ${skillName} skill`
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- For a visual UI, layout, state comparison, or concept too dense for Mermaid, write one focused HTML file — a diagram, an infographic, or a short slide deck, whichever fits the point. Match the product's colors, type, spacing, and components; use real labels and data; support desktop and mobile. Then open it for the user:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Bash(open path/to/show-me-{description}.html)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### guidance
|
|
126
|
+
|
|
127
|
+
Place each visual next to the short text it supports. Keep only the calls, files, props, states, and boundaries needed to answer the user's current question or the options to resolve the current discussion point.
|
|
128
|
+
|
|
129
|
+
You may use one of these, you may use several, it is unlikely you will use all of them. Use your judgement and don't overwhelm the user.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A communication style that saves tokens and extends the context-window runway.
|
|
3
|
+
---
|
|
4
|
+
If the human you report to goes AFK, they will not read your interim work summaries while away. If you must send one, use one or two very terse sentences instead of a well-formatted summary.
|
|
5
|
+
|
|
6
|
+
If you have delegates, use a more direct, no-fluff style between you and your delegates and among the delegates. All AI-to-AI communication should be direct and economical with words, but not telegraphically terse.
|
|
7
|
+
|
|
8
|
+
When something meaningful is merged into main, write me a good summary.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
url: https://raw.githubusercontent.com/davidondrej/skills/refs/heads/main/skills/agent-orchestration/handoff/SKILL.md
|
|
3
|
+
created: 2026-07-09
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
name: handoff
|
|
8
|
+
description: Compact the current conversation into a single, detailed handoff message — everything that happened, why it happened, and what's left — output in a code block so it can be copy-pasted into a fresh agent session. Use when hitting context limits, switching focus, ending a work session, or partitioning a task across fresh contexts.
|
|
9
|
+
disable-model-invocation: true
|
|
10
|
+
---
|
|
11
|
+
# Handoff
|
|
12
|
+
Write a complete handoff that lets a fresh agent — with zero memory of this session — continue the work without re-asking, re-discovering, or repeating mistakes.
|
|
13
|
+
Output the entire handoff as a \*\*single fenced code block\*\* in the chat so the user can copy it in one click. Also save a copy to a file (see "File Output").
|
|
14
|
+
## Core Principles
|
|
15
|
+
1. \*\*State, not instructions.\*\* Describe what \*is true\*, not what the next agent \*should do\*. Write "Auth endpoint is implemented; logout is not yet started" — never "Implement logout next." The fresh agent decides actions; you give it ground truth.
|
|
16
|
+
2. \*\*Reference, don't duplicate.\*\* Do not paste content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs, design docs). Point to them by path or URL. Handoffs that re-embed everything become bloated and stale.
|
|
17
|
+
3. \*\*Capture the "why".\*\* Decisions and rejected approaches are the most valuable and least recoverable information. Code shows \*what\*; only you remember \*why\* and \*what failed\*.
|
|
18
|
+
4. \*\*Trust nothing blindly.\*\* Frame all claims as context to verify against the actual code, not facts to accept.
|
|
19
|
+
5. \*\*Redact secrets.\*\* Strip API keys, tokens, passwords, and PII. Reference where credentials live (e.g. ".env.local, not committed") — never their values.
|
|
20
|
+
6. \*\*Be ruthless.\*\* Every line must be something the next agent cannot trivially get by reading the code or project config. Cut anything obvious, redundant, or explanatory.
|
|
21
|
+
## Procedure
|
|
22
|
+
1. If a project config file exists (CLAUDE.md / AGENTS.md / equivalent), read it first. Do \*\*not\*\* restate anything already covered there — the handoff is session-specific only.
|
|
23
|
+
2. If a prior handoff file already exists, read it and update rather than starting from scratch.
|
|
24
|
+
3. If the user passed arguments, treat them as the focus for the next session and tailor the handoff toward that goal.
|
|
25
|
+
4. Fill in every section of the template below. Omit a section only if it is genuinely empty (e.g. no blockers) — mark it `None`.
|
|
26
|
+
5. Output the filled template inside one fenced code block in the chat.
|
|
27
|
+
6. Save the same content to the file path described below and tell the user that path.
|
|
28
|
+
## Output Format
|
|
29
|
+
Output exactly this, inside a single fenced code block:
|
|
30
|
+
```
|
|
31
|
+
# HANDOFF:
|
|
32
|
+
Generated: · Session focus:
|
|
33
|
+
## 1. Goal
|
|
34
|
+
## 2. Why This Matters / Background
|
|
35
|
+
## 3. Current State
|
|
36
|
+
## 4. Key Decisions (and why)
|
|
37
|
+
## 5. Traps & Dead Ends
|
|
38
|
+
## 6. Relevant Files & Pointers
|
|
39
|
+
## 7. Open Work (status, with dependencies)
|
|
40
|
+
---
|
|
41
|
+
## Prompt for the Fresh Agent
|
|
42
|
+
Before responding, read every file listed under "Relevant Files & Pointers" above.
|
|
43
|
+
Do not summarize, paraphrase, or claim you already have context — actually read each
|
|
44
|
+
file. Treat every claim in this handoff as context to verify against the code, not
|
|
45
|
+
facts to trust blindly. Then wait for my instructions before taking any action.
|
|
46
|
+
```
|
|
47
|
+
## File Output
|
|
48
|
+
Save the handoff to a temporary location outside the working tree so it does not pollute the repo:
|
|
49
|
+
- Preferred: the OS temp directory, e.g. `$TMPDIR/handoff-.md` (macOS/Linux) or the system temp dir equivalent.
|
|
50
|
+
- If the user prefers an in-repo record, save to `HANDOFF.md` in the project root instead.
|
|
51
|
+
After saving, tell the user the absolute path. The user can then start a fresh session with just:
|
|
52
|
+
```
|
|
53
|
+
Read the file to get the context, then wait for instructions.
|
|
54
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff
|
|
3
|
+
description: Writes cold-entry continuation briefs that preserve facts, decisions, and necessary next steps.
|
|
4
|
+
---
|
|
5
|
+
# Handoff
|
|
6
|
+
|
|
7
|
+
You have been working on the task described above but have not yet completed it.
|
|
8
|
+
Write a continuation summary that will allow you (or another, fresh-context instance of yourself) to resume work efficiently and effectively in a future context window where the conversation history will be replaced with this summary.
|
|
9
|
+
Your summary should be structured, concise, actionable, and written along the lines of ASD-STE100. Include:
|
|
10
|
+
|
|
11
|
+
1. **Task Overview**
|
|
12
|
+
- The user's core request and success criteria.
|
|
13
|
+
- Any clarifications or constraints they specified.
|
|
14
|
+
|
|
15
|
+
2. **Prior State**
|
|
16
|
+
- What was when _your_ session just started.
|
|
17
|
+
- What were the circumstances, assumptions and mental models you inherited before you started work.
|
|
18
|
+
|
|
19
|
+
3. **Current State**
|
|
20
|
+
- What has been completed so far.
|
|
21
|
+
- Files created, modified, or analyzed (with paths if relevant).
|
|
22
|
+
- Key outputs or artifacts produced.
|
|
23
|
+
|
|
24
|
+
4. **Important Discoveries**
|
|
25
|
+
- Technical constraints or requirements uncovered.
|
|
26
|
+
- Decisions made and their rationale.
|
|
27
|
+
- Errors encountered and how they were resolved.
|
|
28
|
+
- What approaches were tried that didn't work, and why.
|
|
29
|
+
- What approaches were tried that did work, and why.
|
|
30
|
+
|
|
31
|
+
5. **Explicitly User-mentioned or Unequivocally Necessary Next Steps**
|
|
32
|
+
- Specific actions needed to complete the task.
|
|
33
|
+
- Any blockers or open questions to resolve.
|
|
34
|
+
- Priority order if multiple steps remain.
|
|
35
|
+
|
|
36
|
+
6. **Context to Preserve**
|
|
37
|
+
- User preferences or style requirements.
|
|
38
|
+
- Paths of files (any file type) you read or executed, and commands you ran, in the beginning of the session, to absorb the baseline context needed to start work.
|
|
39
|
+
- Details that aren’t obvious.
|
|
40
|
+
- Any promises made to the user.
|
|
41
|
+
|
|
42
|
+
### How to approach this handoff task
|
|
43
|
+
|
|
44
|
+
This is a handoff under asymmetric common ground — asymmetry by absence. Load the `theory-of-mind` skill and apply it. Here, the last known common ground is the baseline context layer that had existed when your session only started, and the recipient is a fresh-context instance standing at that baseline. Everything you built on top is the private layer your handoff must translate.
|
|
45
|
+
|
|
46
|
+
Medicine developed standardized handoff protocols for this exact phenomenon, like Situation–Background–Assessment–Recommendation (SBAR):
|
|
47
|
+
**Situation:** What is happening now?
|
|
48
|
+
**Background**: What does the recipient need to know to understand it?
|
|
49
|
+
**Assessment**: What do I now think is going on?
|
|
50
|
+
**Recommendation:** What should happen next?
|
|
51
|
+
|
|
52
|
+
Incorporate this approach.
|
|
53
|
+
|
|
54
|
+
### Write efficiently
|
|
55
|
+
|
|
56
|
+
So far the instructions dealt with handoff effectiveness. The following is about efficiency.
|
|
57
|
+
|
|
58
|
+
One rule: if it can be referenced, reference it, don’t repeat its contents.
|
|
59
|
+
Toy example:
|
|
60
|
+
Do not write: `Load path/to/skills/how-to-write-clearly/SKILL.md. Write clearly, [...proceeds to repeat SKILL.md’s content]`
|
|
61
|
+
Do write: `Load path/to/skills/how-to-write-clearly/SKILL.md.`
|
|
62
|
+
|
|
63
|
+
Good references live at the end of each handoff section, grouped by whether created, read, edited, deleted, with references accompanied by 2–5 words describing the “why”, if justified.
|
|
64
|
+
Toy example: (inside a ‘edited-files’ group) `- path/to/file.py: fixed deployment bug.`
|
|
65
|
+
|
|
66
|
+
### Rings of responsibility
|
|
67
|
+
|
|
68
|
+
> This section applies only if you are part of a structure with other agents — above, below, or sideways.
|
|
69
|
+
|
|
70
|
+
Write the handoff from your own point of view, to set up a successor who will hold the same role and point of view. Cover mainly the context that only you held in the organization, and reference the contextual docs of other responsibility scopes rather than repeat their contents.
|
|
71
|
+
If you manage other agents, your unique context is the in-between of their work.
|
|
72
|
+
If you are the one talking directly to the human, that too is a unique scope.
|
|
73
|
+
Both can be true.
|
|
74
|
+
|
|
75
|
+
If you manage other agents, trust them to watch their own context windows and write handoff docs when required (the harness you all share auto-notifies on low context and pushes them to read this very file). They do not need a context nanny. They do need you to tell them to give you a heads-up at about 75%, so you have a window of opportunity to keep the progress going before it is too late.
|
|
76
|
+
|
|
77
|
+
### Note on tone
|
|
78
|
+
|
|
79
|
+
The premise of writing a handoff is the effort at large is still incomplete — it is mid-process. It follows that _some_ of your understanding of the situation is proportionally incomplete.
|
|
80
|
+
Therefore, distinguish a hard fact from “probably”; proven beyond doubt vs prediction. Convey the former type regularly. Convey the latter type in a more advisory / hypothesizing "it may be" rather than "it is", “As far as I understand” and “At the time of writing, it seemed that”, etc.
|
|
81
|
+
Not supplicant, not insecure — only can tell apart facts ("is") from prediction ("may").
|
|
82
|
+
|
|
83
|
+
Be concise but complete — err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: peer-review
|
|
3
|
+
description: How to conduct peer review of completed work. Load only upon user request.
|
|
4
|
+
argument-hint: work_to_review
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Pick the mode that matches the situation:
|
|
8
|
+
|
|
9
|
+
- You are reviewing another agent’s work → @references/peer-review-instructions.md work_to_review [...args]
|
|
10
|
+
- You want another agent to review your own work → @references/self-peer-review.md work_to_review [...args]
|
|
11
|
+
|
|
12
|
+
There is no clause for an agent reviewing its own work on purpose.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: peer-review-instructions
|
|
3
|
+
description: Targets high-confidence, high-impact issues after studying requirements and the full blast radius.
|
|
4
|
+
argument-hint: work_to_review research_targets
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Think again whether you truly grok <research_targets>. Unless you have no missing knowledge in these area, study it whole to fill in any knowledge gaps. Study documentation and source code thoroughly. Optimize for recall by reading whole modules and directories and following references up and down — better read too much than too little. Alternate between `git show` and `gsd`/`git diff` to see the before and after of the reviewed work. Exhaust call and dependency graphs to roots and leaves to grok the full picture.
|
|
8
|
+
|
|
9
|
+
Finally, review <work_to_review>.
|
|
10
|
+
|
|
11
|
+
Review for major overlooks/blindspots and critically incomplete understanding of the source or requirements; significant missed opportunities to leverage elegant design and avoid implementation slop; obviously unnecessary over-engineering that could be collapsed into something simpler yet cleaner; scope creep; mismatch, misuse or underuse of the project’s patterns; Regressions and contradictions; etc.
|
|
12
|
+
|
|
13
|
+
Recall the project’s core development and engineering rules.
|
|
14
|
+
|
|
15
|
+
Verify implicit and explicit assumptions: “Is this really the case that ...?”, “Might there have been a simpler pattern used elsewhere?”, etc.
|
|
16
|
+
|
|
17
|
+
The threshold for what constitutes an issue is high — don’t surface noise.
|
|
18
|
+
|
|
19
|
+
{ if the reviewed work involved writing tests }
|
|
20
|
+
Also review the tests for substantiality (test real, product spec-derived behavior) vs. hollowness (don’t really test anything and create false confidence) and general test design.
|
|
21
|
+
{ end if }
|
|
22
|
+
|
|
23
|
+
You are a reviewer, not an executioner. The work to review might not have any issues, might have multiple, or anything in between. Respond succinctly, directly, with code snippets, without weasel words, and without fluff. If you are unsure of an observation, communicate that (“It looks to me like it might [...] — please verify.”). If you are certain, communicate as usual.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: self-peer-review
|
|
3
|
+
description: Dispatch a subagent to review your own committed work
|
|
4
|
+
arguments: work_to_review
|
|
5
|
+
loads: references/peer-review-instructions.md
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
First, commit your work to have a commit reference. Then dispatch a large subagent (thinking=xhigh if project is medium-sized, thinking=max if large) with the following prompt:
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
The user has given me this task:
|
|
13
|
+
<original-user-task> # Quote verbatim.
|
|
14
|
+
{ original user task that resulted in work_to_review }
|
|
15
|
+
</original-user-task>
|
|
16
|
+
|
|
17
|
+
I have attempted to complete it. It’s committed to { commit_sha }.
|
|
18
|
+
|
|
19
|
+
@peer-review-instructions.md <work_to_review> <research_targets="Blast radius of {commit_sha}".>
|
|
20
|
+
|
|
21
|
+
{ if original user task references skills }
|
|
22
|
+
Load the referenced skills yourself for complete understanding:
|
|
23
|
+
- `skill-1`: `path/to/skill-1/`
|
|
24
|
+
- ...
|
|
25
|
+
{ end if }
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theory-of-mind
|
|
3
|
+
description: Explains how to restore common ground with readers whose context differs from yours because of absence or memory decay.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Theory of Mind: Writing Under Asymmetric Common Ground
|
|
7
|
+
|
|
8
|
+
The theory behind any writing addressed to a reader whose context has diverged from yours.
|
|
9
|
+
|
|
10
|
+
## The phenomenon
|
|
11
|
+
|
|
12
|
+
While you work, you build a private layer of understanding on top of the last shared baseline: discoveries, discarded hypotheses, new abstractions, locally invented terminology, revised mental models. Your language becomes saturated with that layer. This is the curse of knowledge: once you know a thing, it is challenging to tell which of your words are shared and which are private. The words feel plain to you precisely because you are the one who charged them with meaning. You need to overcome this challenge.
|
|
13
|
+
|
|
14
|
+
Think of a shift change at Mission Control or in an intensive-care unit. The outgoing operator has lived inside the situation for eight hours. The incoming operator walks in cold. "Here is what I concluded" is dangerous, because the outgoing operator's words are saturated with context the incoming person never acquired.
|
|
15
|
+
|
|
16
|
+
## Two ways the asymmetry arises
|
|
17
|
+
|
|
18
|
+
1. **Absence.** The reader was not there while you built the layer. Everything after the divergence point is private to you.
|
|
19
|
+
2. **Decay.** The reader once held the context, but it has gone cold. They keep the memory yet cannot retrieve it unaided.
|
|
20
|
+
|
|
21
|
+
Both reduce to the same obligation: model the reader's current state, not yours.
|
|
22
|
+
|
|
23
|
+
## The two models
|
|
24
|
+
|
|
25
|
+
Hold two models at once:
|
|
26
|
+
|
|
27
|
+
1. Your current understanding of the situation.
|
|
28
|
+
2. The last known common ground — what the reader actually holds right now.
|
|
29
|
+
|
|
30
|
+
The delta between them is the payload your writing must carry. Writing under asymmetry is therefore not summarizing your own experience. It is reconstructing the recipient's state of knowledge and designing their entry into the situation. Optimize for their entry, not your exit.
|
|
31
|
+
|
|
32
|
+
## The moves
|
|
33
|
+
|
|
34
|
+
1. **Re-ground before you continue.** Open with what re-establishes the shared frame: the wider situation, the motivation, the current state. Background before assessment — the reader cannot evaluate your conclusions until they can see what you saw.
|
|
35
|
+
2. **Translate private ontology into shared language.** Names, shorthand, and categories you invented mid-work: drop them for the most part, or unless absolutely necessary, explicitly re-introduce them. Familiarity to you is not evidence that a term is shared.
|
|
36
|
+
3. **Treat the artifact as the reader's first look.** It is their entry point, not the next message in your working thread. A continuation of your thread reads as noise to someone who never held the thread.
|
|
37
|
+
4. **Mark what is new.** Distinguish what was already common ground from what you built on top of it. The reader needs to know which of their existing beliefs still hold and which your writing updates.
|
|
38
|
+
|
|
39
|
+
## The test
|
|
40
|
+
|
|
41
|
+
Could the reader, holding only the last common ground, grok every sentence on first read — no term they must guess at, no conclusion whose basis they cannot see? If not, the writing is still not reader-oriented enough.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
Load this skill only once in a session, and upon the human's request.
|