@markus-global/cli 0.4.21 → 0.4.23

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.
Files changed (77) hide show
  1. package/dist/commands/doctor.d.ts.map +1 -1
  2. package/dist/commands/doctor.js +8 -0
  3. package/dist/commands/doctor.js.map +1 -1
  4. package/dist/commands/start.d.ts.map +1 -1
  5. package/dist/commands/start.js +16 -0
  6. package/dist/commands/start.js.map +1 -1
  7. package/dist/markus.mjs +1157 -299
  8. package/dist/web-ui/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  9. package/dist/web-ui/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  10. package/dist/web-ui/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  11. package/dist/web-ui/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  12. package/dist/web-ui/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  13. package/dist/web-ui/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  14. package/dist/web-ui/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  15. package/dist/web-ui/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  16. package/dist/web-ui/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  17. package/dist/web-ui/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  18. package/dist/web-ui/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  19. package/dist/web-ui/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  20. package/dist/web-ui/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  21. package/dist/web-ui/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  22. package/dist/web-ui/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  23. package/dist/web-ui/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  24. package/dist/web-ui/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  25. package/dist/web-ui/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  26. package/dist/web-ui/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  27. package/dist/web-ui/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  28. package/dist/web-ui/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  29. package/dist/web-ui/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  30. package/dist/web-ui/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  31. package/dist/web-ui/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  32. package/dist/web-ui/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  33. package/dist/web-ui/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  34. package/dist/web-ui/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  35. package/dist/web-ui/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  36. package/dist/web-ui/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  37. package/dist/web-ui/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  38. package/dist/web-ui/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  39. package/dist/web-ui/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  40. package/dist/web-ui/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  41. package/dist/web-ui/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  42. package/dist/web-ui/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  43. package/dist/web-ui/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  44. package/dist/web-ui/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  45. package/dist/web-ui/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  46. package/dist/web-ui/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  47. package/dist/web-ui/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  48. package/dist/web-ui/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  49. package/dist/web-ui/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  50. package/dist/web-ui/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  51. package/dist/web-ui/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  52. package/dist/web-ui/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  53. package/dist/web-ui/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  54. package/dist/web-ui/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  55. package/dist/web-ui/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  56. package/dist/web-ui/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  57. package/dist/web-ui/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  58. package/dist/web-ui/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  59. package/dist/web-ui/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  60. package/dist/web-ui/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  61. package/dist/web-ui/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  62. package/dist/web-ui/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  63. package/dist/web-ui/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  64. package/dist/web-ui/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  65. package/dist/web-ui/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  66. package/dist/web-ui/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  67. package/dist/web-ui/assets/index-FxtMolbG.js +343 -0
  68. package/dist/web-ui/assets/index-jBDtl4o2.css +1 -0
  69. package/dist/web-ui/index.html +2 -2
  70. package/package.json +1 -1
  71. package/templates/roles/org-manager/HEARTBEAT.md +8 -0
  72. package/templates/roles/secretary/HEARTBEAT.md +8 -0
  73. package/templates/skills/agent-building/SKILL.md +19 -10
  74. package/templates/skills/self-evolution/SKILL.md +43 -7
  75. package/templates/skills/team-building/SKILL.md +26 -10
  76. package/dist/web-ui/assets/index-BWjiUsem.js +0 -66
  77. package/dist/web-ui/assets/index-BgcwiZ1h.css +0 -1
@@ -22,11 +22,15 @@ This skill teaches you how to create Markus team packages — self-contained dir
22
22
  ├── NORMS.md # Working norms (you write via file_write)
23
23
  └── members/
24
24
  ├── {manager-slug}/
25
- │ ├── ROLE.md # Manager identity (you write via file_write)
26
- └── POLICIES.md # Manager constraints (you write via file_write, optional)
25
+ │ ├── ROLE.md # Identity and system prompt (REQUIRED)
26
+ ├── HEARTBEAT.md # Periodic self-check checklist (RECOMMENDED)
27
+ │ ├── POLICIES.md # Constraints and guardrails (optional)
28
+ │ └── CONTEXT.md # Domain context and references (optional)
27
29
  └── {worker-slug}/
28
- ├── ROLE.md # Worker identity (you write via file_write)
29
- └── POLICIES.md # Worker constraints (you write via file_write, optional)
30
+ ├── ROLE.md # Identity and system prompt (REQUIRED)
31
+ ├── HEARTBEAT.md # Periodic self-check checklist (RECOMMENDED)
32
+ ├── POLICIES.md # Constraints and guardrails (optional)
33
+ └── CONTEXT.md # Domain context and references (optional)
30
34
  ```
31
35
 
32
36
  **Do NOT write artifacts to `~/.markus/shared/`, your working directory, or any other location.** Only `~/.markus/builder-artifacts/teams/` is recognized by the system.
@@ -37,8 +41,10 @@ This skill teaches you how to create Markus team packages — self-contained dir
37
41
  |---|---|---|
38
42
  | `ANNOUNCEMENT.md` | `~/.markus/teams/{teamId}/ANNOUNCEMENT.md` | Injected into every member's context |
39
43
  | `NORMS.md` | `~/.markus/teams/{teamId}/NORMS.md` | Injected into every member's context |
40
- | `members/{name}/ROLE.md` | `~/.markus/agents/{agentId}/role/ROLE.md` | Overrides base role template prompt |
44
+ | `members/{name}/ROLE.md` | `~/.markus/agents/{agentId}/role/ROLE.md` | Agent's identity and system prompt |
45
+ | `members/{name}/HEARTBEAT.md` | `~/.markus/agents/{agentId}/role/HEARTBEAT.md` | Periodic self-check checklist (every ~30 min) |
41
46
  | `members/{name}/POLICIES.md` | `~/.markus/agents/{agentId}/role/POLICIES.md` | Additional agent constraints |
47
+ | `members/{name}/CONTEXT.md` | `~/.markus/agents/{agentId}/role/CONTEXT.md` | Domain context and references |
42
48
 
43
49
  ## Two-Step Workflow
44
50
 
@@ -72,14 +78,12 @@ This JSON contains ONLY metadata and structure — **no file content**.
72
78
  {
73
79
  "name": "Manager Name",
74
80
  "role": "manager",
75
- "roleName": "project-manager",
76
81
  "count": 1,
77
82
  "skills": ["skill-id-1"]
78
83
  },
79
84
  {
80
85
  "name": "Worker Name",
81
86
  "role": "worker",
82
- "roleName": "developer",
83
87
  "count": 1,
84
88
  "skills": ["skill-id-1", "skill-id-2"]
85
89
  }
@@ -121,7 +125,16 @@ After the JSON is saved, write each file individually using `file_write`. The ba
121
125
  - For reviewers: review-then-merge workflow (git merge or gh pr)
122
126
  - For managers: file ownership planning, dependency graphs, `spawn_subagent` for analysis
123
127
 
124
- 4. **POLICIES.md** (optional) — For members that need specific constraints.
128
+ 4. **Each member's HEARTBEAT.md** (RECOMMENDED) — Defines what the agent proactively checks every ~30 minutes. Without this file, the agent is purely reactive and will only respond to direct messages. Write a role-specific checklist covering:
129
+ - Check mailbox for new messages and respond to urgent items
130
+ - Review assigned tasks — update progress, unblock if possible
131
+ - Check team announcements and norms for updates
132
+ - Role-specific patrol items (e.g., managers: check team task board and unblock members; developers: check build status and PR reviews; reviewers: check tasks awaiting review)
133
+ - Scan recent channel messages for anything requiring attention
134
+
135
+ 5. **POLICIES.md** (optional) — For members that need specific constraints.
136
+
137
+ 6. **CONTEXT.md** (optional) — Additional domain context, references, or knowledge specific to a member.
125
138
 
126
139
  **Example file_write calls:**
127
140
 
@@ -129,7 +142,9 @@ After the JSON is saved, write each file individually using `file_write`. The ba
129
142
  file_write("~/.markus/builder-artifacts/teams/research-team/ANNOUNCEMENT.md", "# Research Team — Team Announcement\n\n...")
130
143
  file_write("~/.markus/builder-artifacts/teams/research-team/NORMS.md", "# Research Team — Working Norms\n\n...")
131
144
  file_write("~/.markus/builder-artifacts/teams/research-team/members/research-director/ROLE.md", "# Research Director\n\nYou are **Research Director** — ...\n\n...")
145
+ file_write("~/.markus/builder-artifacts/teams/research-team/members/research-director/HEARTBEAT.md", "# Heartbeat Checklist\n\n- [ ] Check mailbox ...\n- [ ] Review team task board ...\n- [ ] Unblock members ...")
132
146
  file_write("~/.markus/builder-artifacts/teams/research-team/members/senior-researcher/ROLE.md", "# Senior Researcher\n\nYou are **Senior Researcher** — ...\n\n...")
147
+ file_write("~/.markus/builder-artifacts/teams/research-team/members/senior-researcher/HEARTBEAT.md", "# Heartbeat Checklist\n\n- [ ] Check mailbox ...\n- [ ] Review assigned tasks ...\n- [ ] Check build status ...")
133
148
  ```
134
149
 
135
150
  **IMPORTANT**: The member directory slug is derived from the member's `name` field — lowercased, spaces to hyphens, non-alphanumeric removed.
@@ -148,10 +163,11 @@ file_write("~/.markus/builder-artifacts/teams/research-team/members/senior-resea
148
163
  ### `team.members[]` — Member Specifications (REQUIRED)
149
164
  - **`name`**: Display name (the slug for file paths is derived from this)
150
165
  - **`role`**: `"manager"` or `"worker"`
151
- - **`roleName`**: Base role template from the dynamic context
152
166
  - **`count`**: Number of instances (default 1)
153
167
  - **`skills`**: Skill IDs from the dynamic context. **Actively assign skills — don't leave empty!**
154
168
 
169
+ **Note**: The `roleName` field is **not needed** for team members. Each member's identity is fully defined by their `ROLE.md` file under `members/{slug}/`. Do NOT include `roleName` unless you specifically want to inherit defaults from a built-in role template (rare).
170
+
155
171
  ### `team.workflow` — Workflow Configuration (recommended)
156
172
  - **`phases`**: Array of phase names defining the team's workflow (e.g., `["plan", "implement", "review", "validate"]`)
157
173
  - **`parallelImplementation`**: `true` if multiple members work in parallel during implementation
@@ -170,7 +186,7 @@ Once all files are written, tell the user:
170
186
 
171
187
  ## Rules
172
188
 
173
- - **DO NOT** invent role names or skill IDs. Only use values from the dynamic context.
189
+ - **DO NOT** invent skill IDs. Only use values from the dynamic context.
174
190
  - **DO NOT** leave skills empty when relevant skills are available. Review the skills list!
175
191
  - **DO NOT** put file content in the JSON. Always use `file_write` for files.
176
192
  - **DO NOT** write artifacts to `~/.markus/shared/` or your working directory. Always use `~/.markus/builder-artifacts/teams/{name}/`.