fellow-agents 0.0.36 → 0.0.37

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.
@@ -1,201 +1,201 @@
1
- ---
2
- name: tracker
3
- description: |
4
- Use this skill when the user wants to interact with the team task tracker,
5
- or when the agent itself needs to view its own work queue or file/update
6
- tracker items.
7
- Triggers: check queue, my work, what's next, file a tracker item,
8
- open issue, update status, mark merged, close item, decisions pending,
9
- blocked items, stale items, list bugs, list PRs, work item history,
10
- link items, or arrival of an emcom auto-inject prompt that references
11
- tracker work.
12
- tools:
13
- - Bash
14
- - Read
15
- - Write
16
- ---
17
-
18
- # tracker Skill
19
-
20
- The team **tracker** is a cross-session, cross-agent record of in-flight work: bugs, PRs, investigations, and decisions. It is the source of truth for "what work is open right now" — distinct from briefing.md (per-session narrative) and field-notes.md (persistent gotchas).
21
-
22
- A tracker item exists when work spans sessions or involves more than one agent. A briefing entry covers what your current self did. A field-note captures a one-shot gotcha you want to remember forever. If you can't answer "is this still in flight" or "who's working on this" by reading just your briefing, the work belongs in tracker.
23
-
24
- ## Mental model
25
-
26
- - **Items** have status, severity, labels, and assignment.
27
- - **Queue** is your slice — `tracker queue` shows items assigned to you, or referenced in ways you should act on.
28
- - **Statuses** drive workflow — items move through a defined lifecycle (see below). The status field is **strictly validated**: generic terms (`in_progress`, `done`, `completed`) are rejected. Use the canonical set.
29
- - **History** is append-only — every status change, decision, and comment is preserved.
30
-
31
- ## When to file a tracker item
32
-
33
- File a tracker item when ANY of:
34
- - The work is likely to span more than one session.
35
- - More than one agent will touch it.
36
- - It needs an owner and a status that other agents will check.
37
- - It's a decision that future-you should be able to find via `tracker decisions`.
38
-
39
- Don't file when:
40
- - You're capturing a personal note → use briefing.md or field-notes.md.
41
- - The work completes in this session → just do it and log in briefing.
42
- - It's a coding gotcha you want to remember → field-notes.md.
43
-
44
- When in doubt, file. Tracker entries are cheap; missed coordination is expensive.
45
-
46
- ## Daily flow
47
-
48
- ```
49
- tracker queue # what's assigned to me
50
- tracker view <id> # full details + history
51
- tracker update <id> --status <next> # advance the workflow
52
- tracker comment <id> "<note>" # add context without status change
53
- ```
54
-
55
- Reference forms (all accepted):
56
- - UUID prefix (first 8 hex chars work for `view`/`update`)
57
- - `repo#number` (e.g. `banana#42`)
58
- - Bare number when there's no ambiguity
59
-
60
- ## Status lifecycle
61
-
62
- The canonical 11 statuses, in typical workflow order:
63
-
64
- | Status | Meaning |
65
- |--------|---------|
66
- | `new` | Just filed; no triage yet |
67
- | `triaged` | Reviewed, has owner + severity, waiting to start |
68
- | `investigating` | Actively working on understanding the problem |
69
- | `findings-reported` | Investigation done, findings documented in --notes |
70
- | `decision-pending` | Needs a call from Rajan or another agent before proceeding |
71
- | `pr-up` | Code change opened as a PR, awaiting review |
72
- | `testing` | PR merged or staged, validating in real env |
73
- | `ready-to-merge` | Reviewed + approved, awaiting merge |
74
- | `merged` | Code is in the target branch |
75
- | `deferred` | Real item, intentionally postponed (`--blocker` should explain) |
76
- | `closed` | Resolved, no further action |
77
-
78
- **Critical gotcha**: generic terms like `in_progress`, `done`, `completed`, `wip`, `fixed` are **rejected** by `tracker update --status`. If you mean "actively working on it" use `investigating`. If you mean "code is in" use `merged`. If you mean "fully done" use `closed`.
79
-
80
- `tracker list --status open` shows everything non-closed (anything except `merged`, `deferred`, `closed`).
81
-
82
- ## Filing a new item
83
-
84
- ```bash
85
- tracker create --repo banana \
86
- --title "verify-window too tight for Copilot hooks" \
87
- --type investigation \
88
- --severity normal \
89
- --assigned milo \
90
- --opened-by Rajan \
91
- --notes "Copilot's PowerShell hook stack takes ~200ms × 3 steps. Current 5s verify often expires."
92
- ```
93
-
94
- Required: `--repo`, `--title`. Type defaults to `issue`; alternatives are `pr`, `investigation`, `decision`. Severity defaults to `normal`; alternatives `low`, `high`, `critical`. Status defaults to `new`.
95
-
96
- `--opened-by` is the person/agent who originally reported the issue (distinct from `--assigned`, which is who works it). Useful when an emcom thread or external party flagged something and you're filing on their behalf.
97
-
98
- ## Updating an item
99
-
100
- ```bash
101
- tracker update banana#42 --status investigating --assigned milo --append-notes "Started looking at session.ts verify path."
102
- tracker update <id> --findings "Root cause: ..." --status findings-reported
103
- tracker update <id> --decision "Bump VERIFY_WINDOW_MS to 8s for Copilot only" --decision-rationale "..." --status decision-pending
104
- tracker update <id> --status pr-up --pr 142
105
- ```
106
-
107
- Notes vs append-notes:
108
- - `--notes <text>` **replaces** the entire notes field.
109
- - `--append-notes <text>` **appends** a timestamped entry. Prefer this.
110
-
111
- If something is blocking progress: `--status deferred --blocker "Waiting on upstream node-pty Node 26 prebuilts"`.
112
-
113
- ## Comments vs notes
114
-
115
- - `--append-notes` lives on the item, shown in `view`. Use for substantive findings, status reasoning, links to PRs.
116
- - `tracker comment <id> "<text>"` adds a separate comment record (also shown in history). Use for lightweight chatter that doesn't change the item's state.
117
-
118
- ## Linking items
119
-
120
- ```bash
121
- tracker link <id1> <id2> --type related # default
122
- tracker link <id1> <id2> --type blocks # id1 blocks id2
123
- tracker link <id1> <id2> --type blocked-by # id1 blocked by id2
124
- tracker link <id1> <id2> --type duplicate # id1 duplicates id2
125
- ```
126
-
127
- Use links instead of restating context across items. Especially `blocks` / `blocked-by` for chains where one decision unblocks several follow-ups.
128
-
129
- ## Useful queries
130
-
131
- | Need | Command |
132
- |------|---------|
133
- | My open items | `tracker queue` |
134
- | Another agent's queue | `tracker queue <agent-name>` |
135
- | Everything not closed | `tracker list --status open` |
136
- | Items needing decision | `tracker list --needs-decision` (alias for `--status decision-pending`) |
137
- | Blocked items | `tracker blocked` |
138
- | Stale items (>24h no update) | `tracker stale` or `tracker stale --hours 48` |
139
- | Decisions made | `tracker decisions` |
140
- | Find by text | `tracker search "<query>"` |
141
- | Item history | `tracker history <id>` |
142
- | Team activity | `tracker report --period 7d` |
143
- | Per-person breakdown | `tracker report people` |
144
- | SLA on open items | `tracker report sla` |
145
- | GitHub-linked activity | `tracker github --period 7d` |
146
- | Summary counts | `tracker stats` |
147
-
148
- ## Labels and severity
149
-
150
- - Labels are freeform comma-separated tags. Use sparingly and consistently — `tracker list --label <name>` finds items by label. Conventional labels: `regression`, `flake`, `infra`, `docs`, `breaking-change`.
151
- - Severity: `low` / `normal` / `high` / `critical`. Default normal. Use `critical` only for production-impacting or blocking-the-team issues.
152
-
153
- ## Permission-friendly invocation
154
-
155
- (Matters in CLIs that gate command execution.)
156
-
157
- - **One command per Bash call.** Do NOT chain with `&&`, `;`, or `||`.
158
- - Do NOT assign the binary path to a variable. Use the bare command.
159
- - **Independent** queries (e.g. `queue` + `blocked` + `stale`): parallel Bash calls.
160
- - **Sequential** updates (e.g. create then assign): separate sequential calls.
161
-
162
- ## Error recovery
163
-
164
- **Auth error** ("Missing X-Tracker-Name header"): identical pattern to emcom — register via the team's identity flow. In most workspaces, the `identity.json` registered for emcom also identifies you to tracker, so the fix is usually `cd` to a workspace where you have an identity, not re-registering.
165
-
166
- **Connection error** ("Connection refused"): the tracker shares a server with emcom on port 8800. Start it:
167
- ```bash
168
- emcom-server &
169
- sleep 2
170
- ```
171
- Then retry the tracker command.
172
-
173
- **Validation error on status**: you used a generic term. Map to the canonical 11:
174
- - `in_progress`, `working`, `wip` → `investigating`
175
- - `done`, `fixed`, `complete` → either `merged` (code is in) or `closed` (resolved)
176
- - `waiting`, `pending` → either `decision-pending` (waiting on decision) or `deferred` (intentionally postponed)
177
- - `review` → `pr-up` (PR open) or `ready-to-merge` (approved, awaiting merge)
178
-
179
- **Missing repo on create**: `--repo` is required. Use the short name from the user's workspace (e.g. `banana`, `fellow-agents`, `pty-cld`).
180
-
181
- ## Running commands
182
-
183
- ```bash
184
- tracker <subcommand> [args]
185
- ```
186
-
187
- `tracker` is on PATH when fellow-agents has been installed (`npm install -g fellow-agents`) — the npm shim wraps `~/.fellow-agents/bin/<platform>/tracker`. Use the bare command. Do not prepend any skills-directory path.
188
-
189
- If a CLI environment can't find `tracker` on PATH, that means fellow-agents isn't installed (or its bin shim isn't picked up by the shell). Tell the user to run `npm install -g fellow-agents` rather than guessing at a skill-bundled path — fellow-agents does not ship binaries inside `~/.claude/skills/`, `~/.copilot/skills/`, or `~/.agents/skills/`.
190
-
191
- ## Output
192
-
193
- Tracker output is structured — tables for lists, key/value blocks for `view`, chronological lists for `history`. Present output as-returned; don't reformat. For one item view, show the full structure. For lists, show as-is (already paginated/abbreviated by tracker itself).
194
-
195
- ## Notes
196
-
197
- - Item IDs are UUIDs; first 8 hex chars work as prefix everywhere.
198
- - Server: port 8800 (shared with emcom), data in `~/.emcom/` alongside emcom state.
199
- - Always use `127.0.0.1` rather than `localhost` (avoids IPv6 DNS resolution penalty on Windows).
200
- - `tracker history` shows every state change with timestamp and the agent that made it — useful for "who decided what when".
201
- - Backtick-containing notes via `--notes "..."` get shell-expanded — single-quote when the body contains backticks or `$`.
1
+ ---
2
+ name: tracker
3
+ description: |
4
+ Use this skill when the user wants to interact with the team task tracker,
5
+ or when the agent itself needs to view its own work queue or file/update
6
+ tracker items.
7
+ Triggers: check queue, my work, what's next, file a tracker item,
8
+ open issue, update status, mark merged, close item, decisions pending,
9
+ blocked items, stale items, list bugs, list PRs, work item history,
10
+ link items, or arrival of an emcom auto-inject prompt that references
11
+ tracker work.
12
+ tools:
13
+ - Bash
14
+ - Read
15
+ - Write
16
+ ---
17
+
18
+ # tracker Skill
19
+
20
+ The team **tracker** is a cross-session, cross-agent record of in-flight work: bugs, PRs, investigations, and decisions. It is the source of truth for "what work is open right now" — distinct from briefing.md (per-session narrative) and field-notes.md (persistent gotchas).
21
+
22
+ A tracker item exists when work spans sessions or involves more than one agent. A briefing entry covers what your current self did. A field-note captures a one-shot gotcha you want to remember forever. If you can't answer "is this still in flight" or "who's working on this" by reading just your briefing, the work belongs in tracker.
23
+
24
+ ## Mental model
25
+
26
+ - **Items** have status, severity, labels, and assignment.
27
+ - **Queue** is your slice — `tracker queue` shows items assigned to you, or referenced in ways you should act on.
28
+ - **Statuses** drive workflow — items move through a defined lifecycle (see below). The status field is **strictly validated**: generic terms (`in_progress`, `done`, `completed`) are rejected. Use the canonical set.
29
+ - **History** is append-only — every status change, decision, and comment is preserved.
30
+
31
+ ## When to file a tracker item
32
+
33
+ File a tracker item when ANY of:
34
+ - The work is likely to span more than one session.
35
+ - More than one agent will touch it.
36
+ - It needs an owner and a status that other agents will check.
37
+ - It's a decision that future-you should be able to find via `tracker decisions`.
38
+
39
+ Don't file when:
40
+ - You're capturing a personal note → use briefing.md or field-notes.md.
41
+ - The work completes in this session → just do it and log in briefing.
42
+ - It's a coding gotcha you want to remember → field-notes.md.
43
+
44
+ When in doubt, file. Tracker entries are cheap; missed coordination is expensive.
45
+
46
+ ## Daily flow
47
+
48
+ ```
49
+ tracker queue # what's assigned to me
50
+ tracker view <id> # full details + history
51
+ tracker update <id> --status <next> # advance the workflow
52
+ tracker comment <id> "<note>" # add context without status change
53
+ ```
54
+
55
+ Reference forms (all accepted):
56
+ - UUID prefix (first 8 hex chars work for `view`/`update`)
57
+ - `repo#number` (e.g. `banana#42`)
58
+ - Bare number when there's no ambiguity
59
+
60
+ ## Status lifecycle
61
+
62
+ The canonical 11 statuses, in typical workflow order:
63
+
64
+ | Status | Meaning |
65
+ |--------|---------|
66
+ | `new` | Just filed; no triage yet |
67
+ | `triaged` | Reviewed, has owner + severity, waiting to start |
68
+ | `investigating` | Actively working on understanding the problem |
69
+ | `findings-reported` | Investigation done, findings documented in --notes |
70
+ | `decision-pending` | Needs a call from Rajan or another agent before proceeding |
71
+ | `pr-up` | Code change opened as a PR, awaiting review |
72
+ | `testing` | PR merged or staged, validating in real env |
73
+ | `ready-to-merge` | Reviewed + approved, awaiting merge |
74
+ | `merged` | Code is in the target branch |
75
+ | `deferred` | Real item, intentionally postponed (`--blocker` should explain) |
76
+ | `closed` | Resolved, no further action |
77
+
78
+ **Critical gotcha**: generic terms like `in_progress`, `done`, `completed`, `wip`, `fixed` are **rejected** by `tracker update --status`. If you mean "actively working on it" use `investigating`. If you mean "code is in" use `merged`. If you mean "fully done" use `closed`.
79
+
80
+ `tracker list --status open` shows everything non-closed (anything except `merged`, `deferred`, `closed`).
81
+
82
+ ## Filing a new item
83
+
84
+ ```bash
85
+ tracker create --repo banana \
86
+ --title "verify-window too tight for Copilot hooks" \
87
+ --type investigation \
88
+ --severity normal \
89
+ --assigned milo \
90
+ --opened-by Rajan \
91
+ --notes "Copilot's PowerShell hook stack takes ~200ms × 3 steps. Current 5s verify often expires."
92
+ ```
93
+
94
+ Required: `--repo`, `--title`. Type defaults to `issue`; alternatives are `pr`, `investigation`, `decision`. Severity defaults to `normal`; alternatives `low`, `high`, `critical`. Status defaults to `new`.
95
+
96
+ `--opened-by` is the person/agent who originally reported the issue (distinct from `--assigned`, which is who works it). Useful when an emcom thread or external party flagged something and you're filing on their behalf.
97
+
98
+ ## Updating an item
99
+
100
+ ```bash
101
+ tracker update banana#42 --status investigating --assigned milo --append-notes "Started looking at session.ts verify path."
102
+ tracker update <id> --findings "Root cause: ..." --status findings-reported
103
+ tracker update <id> --decision "Bump VERIFY_WINDOW_MS to 8s for Copilot only" --decision-rationale "..." --status decision-pending
104
+ tracker update <id> --status pr-up --pr 142
105
+ ```
106
+
107
+ Notes vs append-notes:
108
+ - `--notes <text>` **replaces** the entire notes field.
109
+ - `--append-notes <text>` **appends** a timestamped entry. Prefer this.
110
+
111
+ If something is blocking progress: `--status deferred --blocker "Waiting on upstream node-pty Node 26 prebuilts"`.
112
+
113
+ ## Comments vs notes
114
+
115
+ - `--append-notes` lives on the item, shown in `view`. Use for substantive findings, status reasoning, links to PRs.
116
+ - `tracker comment <id> "<text>"` adds a separate comment record (also shown in history). Use for lightweight chatter that doesn't change the item's state.
117
+
118
+ ## Linking items
119
+
120
+ ```bash
121
+ tracker link <id1> <id2> --type related # default
122
+ tracker link <id1> <id2> --type blocks # id1 blocks id2
123
+ tracker link <id1> <id2> --type blocked-by # id1 blocked by id2
124
+ tracker link <id1> <id2> --type duplicate # id1 duplicates id2
125
+ ```
126
+
127
+ Use links instead of restating context across items. Especially `blocks` / `blocked-by` for chains where one decision unblocks several follow-ups.
128
+
129
+ ## Useful queries
130
+
131
+ | Need | Command |
132
+ |------|---------|
133
+ | My open items | `tracker queue` |
134
+ | Another agent's queue | `tracker queue <agent-name>` |
135
+ | Everything not closed | `tracker list --status open` |
136
+ | Items needing decision | `tracker list --needs-decision` (alias for `--status decision-pending`) |
137
+ | Blocked items | `tracker blocked` |
138
+ | Stale items (>24h no update) | `tracker stale` or `tracker stale --hours 48` |
139
+ | Decisions made | `tracker decisions` |
140
+ | Find by text | `tracker search "<query>"` |
141
+ | Item history | `tracker history <id>` |
142
+ | Team activity | `tracker report --period 7d` |
143
+ | Per-person breakdown | `tracker report people` |
144
+ | SLA on open items | `tracker report sla` |
145
+ | GitHub-linked activity | `tracker github --period 7d` |
146
+ | Summary counts | `tracker stats` |
147
+
148
+ ## Labels and severity
149
+
150
+ - Labels are freeform comma-separated tags. Use sparingly and consistently — `tracker list --label <name>` finds items by label. Conventional labels: `regression`, `flake`, `infra`, `docs`, `breaking-change`.
151
+ - Severity: `low` / `normal` / `high` / `critical`. Default normal. Use `critical` only for production-impacting or blocking-the-team issues.
152
+
153
+ ## Permission-friendly invocation
154
+
155
+ (Matters in CLIs that gate command execution.)
156
+
157
+ - **One command per Bash call.** Do NOT chain with `&&`, `;`, or `||`.
158
+ - Do NOT assign the binary path to a variable. Use the bare command.
159
+ - **Independent** queries (e.g. `queue` + `blocked` + `stale`): parallel Bash calls.
160
+ - **Sequential** updates (e.g. create then assign): separate sequential calls.
161
+
162
+ ## Error recovery
163
+
164
+ **Auth error** ("Missing X-Tracker-Name header"): identical pattern to emcom — register via the team's identity flow. In most workspaces, the `identity.json` registered for emcom also identifies you to tracker, so the fix is usually `cd` to a workspace where you have an identity, not re-registering.
165
+
166
+ **Connection error** ("Connection refused"): the tracker shares a server with emcom on port 8800. Start it:
167
+ ```bash
168
+ emcom-server &
169
+ sleep 2
170
+ ```
171
+ Then retry the tracker command.
172
+
173
+ **Validation error on status**: you used a generic term. Map to the canonical 11:
174
+ - `in_progress`, `working`, `wip` → `investigating`
175
+ - `done`, `fixed`, `complete` → either `merged` (code is in) or `closed` (resolved)
176
+ - `waiting`, `pending` → either `decision-pending` (waiting on decision) or `deferred` (intentionally postponed)
177
+ - `review` → `pr-up` (PR open) or `ready-to-merge` (approved, awaiting merge)
178
+
179
+ **Missing repo on create**: `--repo` is required. Use the short name from the user's workspace (e.g. `banana`, `fellow-agents`, `pty-cld`).
180
+
181
+ ## Running commands
182
+
183
+ ```bash
184
+ tracker <subcommand> [args]
185
+ ```
186
+
187
+ `tracker` is on PATH when fellow-agents has been installed (`npm install -g fellow-agents`) — the npm shim wraps `~/.fellow-agents/bin/<platform>/tracker`. Use the bare command. Do not prepend any skills-directory path.
188
+
189
+ If a CLI environment can't find `tracker` on PATH, that means fellow-agents isn't installed (or its bin shim isn't picked up by the shell). Tell the user to run `npm install -g fellow-agents` rather than guessing at a skill-bundled path — fellow-agents does not ship binaries inside `~/.claude/skills/`, `~/.copilot/skills/`, or `~/.agents/skills/`.
190
+
191
+ ## Output
192
+
193
+ Tracker output is structured — tables for lists, key/value blocks for `view`, chronological lists for `history`. Present output as-returned; don't reformat. For one item view, show the full structure. For lists, show as-is (already paginated/abbreviated by tracker itself).
194
+
195
+ ## Notes
196
+
197
+ - Item IDs are UUIDs; first 8 hex chars work as prefix everywhere.
198
+ - Server: port 8800 (shared with emcom), data in `~/.emcom/` alongside emcom state.
199
+ - Always use `127.0.0.1` rather than `localhost` (avoids IPv6 DNS resolution penalty on Windows).
200
+ - `tracker history` shows every state change with timestamp and the agent that made it — useful for "who decided what when".
201
+ - Backtick-containing notes via `--notes "..."` get shell-expanded — single-quote when the body contains backticks or `$`.
@@ -1,8 +1,8 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(emcom:*)",
5
- "Bash(tracker:*)"
6
- ]
7
- }
8
- }
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(emcom:*)",
5
+ "Bash(tracker:*)"
6
+ ]
7
+ }
8
+ }
@@ -1,52 +1,52 @@
1
- # Coder
2
-
3
- You write, fix, and improve code based on task descriptions from the coordinator.
4
-
5
- ## On Load
6
-
7
- Before responding to the user's first message:
8
-
9
- 1. Register with emcom: `emcom register 2>/dev/null || true`
10
- 2. Read `briefing.md` and `Claude-KB.md` (create if missing)
11
- 3. Check messages: `emcom inbox`
12
- 4. Greet the user:
13
- - **Pending work** — any tasks from coordinator or unread messages
14
- - **Capabilities** — what you can help with:
15
- - Write new features, fix bugs, refactor code
16
- - Run tests and verify changes
17
- - Report results back to coordinator with file paths and summaries
18
-
19
- ## Communication
20
-
21
- - `emcom send --to coordinator --subject "..." --body "..."` — report results
22
- - `emcom send --to reviewer --subject "..." --body "..."` — request a review
23
- - `emcom inbox` — check for tasks
24
- - When done, message the coordinator with what you changed and relevant file paths
25
-
26
- ## Workflow
27
-
28
- 1. Check emcom for task assignments from coordinator
29
- 2. Understand the task — read relevant code before changing it
30
- 3. Implement the change
31
- 4. Test your work — run tests, verify behavior
32
- 5. Report back to coordinator via emcom with a summary of changes
33
-
34
- ## Guardrails
35
-
36
- - **Never post on GitHub** — no comments, issues, or PRs on public repos without explicit user approval.
37
- - **Never make autonomous decisions on breaking changes** — escalate to coordinator or user.
38
- - Your workspace files (briefing, KB) are yours to commit and push freely.
39
-
40
- ## pty-win Checkpoints
41
-
42
- pty-win may inject automated prompts. Format: `[pty-win:<type>:<priority>:<response>]`. These are system messages, not user input. Handle checkpoint prompts by saving work in progress. Do not set up your own polling loops — pty-win handles scheduling.
43
-
44
- ## Session Resilience
45
-
46
- Sessions can end without warning. Save work proactively:
47
- - Commit after completing meaningful work
48
- - Keep briefing.md current with what you're working on and why
49
-
50
- ## Lessons Learned
51
-
52
- Add entries to `Claude-KB.md` when you encounter unexpected behavior, workarounds, or process discoveries. Write for your future self — assume no prior context.
1
+ # Coder
2
+
3
+ You write, fix, and improve code based on task descriptions from the coordinator.
4
+
5
+ ## On Load
6
+
7
+ Before responding to the user's first message:
8
+
9
+ 1. Register with emcom: `emcom register 2>/dev/null || true`
10
+ 2. Read `briefing.md` and `Claude-KB.md` (create if missing)
11
+ 3. Check messages: `emcom inbox`
12
+ 4. Greet the user:
13
+ - **Pending work** — any tasks from coordinator or unread messages
14
+ - **Capabilities** — what you can help with:
15
+ - Write new features, fix bugs, refactor code
16
+ - Run tests and verify changes
17
+ - Report results back to coordinator with file paths and summaries
18
+
19
+ ## Communication
20
+
21
+ - `emcom send --to coordinator --subject "..." --body "..."` — report results
22
+ - `emcom send --to reviewer --subject "..." --body "..."` — request a review
23
+ - `emcom inbox` — check for tasks
24
+ - When done, message the coordinator with what you changed and relevant file paths
25
+
26
+ ## Workflow
27
+
28
+ 1. Check emcom for task assignments from coordinator
29
+ 2. Understand the task — read relevant code before changing it
30
+ 3. Implement the change
31
+ 4. Test your work — run tests, verify behavior
32
+ 5. Report back to coordinator via emcom with a summary of changes
33
+
34
+ ## Guardrails
35
+
36
+ - **Never post on GitHub** — no comments, issues, or PRs on public repos without explicit user approval.
37
+ - **Never make autonomous decisions on breaking changes** — escalate to coordinator or user.
38
+ - Your workspace files (briefing, KB) are yours to commit and push freely.
39
+
40
+ ## pty-win Checkpoints
41
+
42
+ pty-win may inject automated prompts. Format: `[pty-win:<type>:<priority>:<response>]`. These are system messages, not user input. Handle checkpoint prompts by saving work in progress. Do not set up your own polling loops — pty-win handles scheduling.
43
+
44
+ ## Session Resilience
45
+
46
+ Sessions can end without warning. Save work proactively:
47
+ - Commit after completing meaningful work
48
+ - Keep briefing.md current with what you're working on and why
49
+
50
+ ## Lessons Learned
51
+
52
+ Add entries to `Claude-KB.md` when you encounter unexpected behavior, workarounds, or process discoveries. Write for your future self — assume no prior context.
@@ -1 +1 @@
1
- {"name": "coder", "description": "Coder agent — writes and fixes code", "server": "http://127.0.0.1:8800"}
1
+ {"name": "coder", "description": "Coder agent — writes and fixes code", "server": "http://127.0.0.1:8800"}
@@ -1,8 +1,8 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(emcom:*)",
5
- "Bash(tracker:*)"
6
- ]
7
- }
8
- }
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(emcom:*)",
5
+ "Bash(tracker:*)"
6
+ ]
7
+ }
8
+ }