arkaos 2.15.0 → 2.16.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.
Files changed (156) hide show
  1. package/VERSION +1 -1
  2. package/arka/SKILL.md +13 -0
  3. package/arka/skills/comfyui/SKILL.md +82 -0
  4. package/arka/skills/comfyui/references/squads.md +80 -0
  5. package/arka/skills/comfyui/references/workflows.md +435 -0
  6. package/arka/skills/forge/SKILL.md +35 -599
  7. package/arka/skills/forge/references/complexity-engine.md +77 -0
  8. package/arka/skills/forge/references/critic-synthesis.md +154 -0
  9. package/arka/skills/forge/references/workflows.md +408 -0
  10. package/arka/skills/fovory/SKILL.md +91 -0
  11. package/arka/skills/fovory/references/integration.md +186 -0
  12. package/arka/skills/fovory/references/workflows.md +209 -0
  13. package/arka/skills/platform-arka/SKILL.md +121 -0
  14. package/arka/skills/platform-arka/references/workflows.md +202 -0
  15. package/arka/skills/rothbard100/SKILL.md +113 -0
  16. package/arka/skills/rothbard100/references/squad.md +111 -0
  17. package/arka/skills/rothbard100/references/workflows.md +175 -0
  18. package/config/constitution.yaml +8 -0
  19. package/config/hooks/pre-compact.sh +11 -5
  20. package/config/hooks/session-start.sh +4 -5
  21. package/config/hooks/token-hygiene.sh +120 -0
  22. package/config/hooks/user-prompt-submit.sh +28 -10
  23. package/core/agents/__pycache__/schema.cpython-313.pyc +0 -0
  24. package/core/agents/schema.py +20 -1
  25. package/core/synapse/__pycache__/layers.cpython-313.pyc +0 -0
  26. package/core/synapse/layers.py +7 -0
  27. package/core/workflow/__pycache__/schema.cpython-313.pyc +0 -0
  28. package/core/workflow/schema.py +4 -1
  29. package/departments/brand/SKILL.md +13 -0
  30. package/departments/brand/agents/brand-director.yaml +1 -0
  31. package/departments/brand/agents/brand-strategist.yaml +1 -0
  32. package/departments/brand/agents/ux-designer.yaml +1 -0
  33. package/departments/brand/agents/visual-designer.yaml +1 -0
  34. package/departments/brand/workflows/identity.yaml +1 -0
  35. package/departments/brand/workflows/naming.yaml +1 -0
  36. package/departments/community/SKILL.md +13 -0
  37. package/departments/community/agents/community-manager.yaml +1 -0
  38. package/departments/community/agents/community-strategist.yaml +1 -0
  39. package/departments/community/agents/engagement-designer.yaml +1 -0
  40. package/departments/community/workflows/setup.yaml +1 -0
  41. package/departments/content/SKILL.md +13 -0
  42. package/departments/content/agents/content-strategist.yaml +1 -0
  43. package/departments/content/agents/repurpose-distributor.yaml +1 -0
  44. package/departments/content/agents/scriptwriter.yaml +1 -0
  45. package/departments/content/agents/viral-engineer.yaml +1 -0
  46. package/departments/content/workflows/viral.yaml +1 -0
  47. package/departments/dev/SKILL.md +13 -0
  48. package/departments/dev/agents/architect.yaml +1 -0
  49. package/departments/dev/agents/backend-dev.yaml +1 -0
  50. package/departments/dev/agents/cto.yaml +1 -0
  51. package/departments/dev/agents/dba.yaml +1 -0
  52. package/departments/dev/agents/devops-eng.yaml +1 -0
  53. package/departments/dev/agents/frontend-dev.yaml +1 -0
  54. package/departments/dev/agents/qa-eng.yaml +1 -0
  55. package/departments/dev/agents/research-assistant.yaml +1 -0
  56. package/departments/dev/agents/security-eng.yaml +1 -0
  57. package/departments/dev/agents/tech-lead.yaml +1 -0
  58. package/departments/dev/skills/onboard/SKILL.md +21 -353
  59. package/departments/dev/skills/onboard/references/mcp-config.md +284 -0
  60. package/departments/dev/skills/onboard/references/stack-detection.md +83 -0
  61. package/departments/dev/workflows/debug.yaml +1 -0
  62. package/departments/dev/workflows/feature.yaml +3 -0
  63. package/departments/dev/workflows/refactor.yaml +1 -0
  64. package/departments/ecom/SKILL.md +13 -0
  65. package/departments/ecom/agents/commerce-engineer.yaml +1 -0
  66. package/departments/ecom/agents/cro-specialist.yaml +1 -0
  67. package/departments/ecom/agents/ecom-director.yaml +1 -0
  68. package/departments/ecom/agents/retention-manager.yaml +1 -0
  69. package/departments/ecom/skills/ecommerce/SKILL.md +66 -0
  70. package/departments/ecom/skills/ecommerce/references/audit-flow.md +109 -0
  71. package/departments/ecom/skills/ecommerce/references/playbooks.md +141 -0
  72. package/departments/ecom/workflows/product-page.yaml +1 -0
  73. package/departments/finance/SKILL.md +13 -0
  74. package/departments/finance/agents/cfo.yaml +1 -0
  75. package/departments/finance/agents/financial-analyst.yaml +1 -0
  76. package/departments/finance/agents/investment-strategist.yaml +1 -0
  77. package/departments/finance/workflows/cashflow.yaml +1 -0
  78. package/departments/finance/workflows/model.yaml +1 -0
  79. package/departments/kb/SKILL.md +13 -0
  80. package/departments/kb/agents/data-collector.yaml +1 -0
  81. package/departments/kb/agents/knowledge-curator.yaml +1 -0
  82. package/departments/kb/agents/knowledge-director.yaml +1 -0
  83. package/departments/kb/agents/research-analyst.yaml +1 -0
  84. package/departments/kb/skills/knowledge/SKILL.md +94 -0
  85. package/departments/kb/skills/knowledge/references/async-processing.md +89 -0
  86. package/departments/kb/skills/knowledge/references/ingestion-pipeline.md +308 -0
  87. package/departments/kb/skills/knowledge/scripts/kb-check-capabilities.sh +143 -0
  88. package/departments/kb/skills/knowledge/scripts/kb-cleanup.sh +135 -0
  89. package/departments/kb/skills/knowledge/scripts/kb-queue.sh +156 -0
  90. package/departments/kb/skills/knowledge/scripts/kb-status.sh +195 -0
  91. package/departments/kb/skills/knowledge/scripts/kb-worker.sh +217 -0
  92. package/departments/kb/workflows/learn.yaml +1 -0
  93. package/departments/landing/SKILL.md +13 -0
  94. package/departments/landing/agents/affiliate-manager.yaml +1 -0
  95. package/departments/landing/agents/conversion-strategist.yaml +1 -0
  96. package/departments/landing/agents/cro-specialist.yaml +1 -0
  97. package/departments/landing/agents/sales-copywriter.yaml +1 -0
  98. package/departments/landing/workflows/launch.yaml +1 -0
  99. package/departments/landing/workflows/offer.yaml +3 -0
  100. package/departments/leadership/SKILL.md +13 -0
  101. package/departments/leadership/agents/culture-coach.yaml +1 -0
  102. package/departments/leadership/agents/hr-specialist.yaml +1 -0
  103. package/departments/leadership/agents/leadership-director.yaml +1 -0
  104. package/departments/leadership/workflows/team-build.yaml +1 -0
  105. package/departments/marketing/SKILL.md +13 -0
  106. package/departments/marketing/agents/content-marketer.yaml +1 -0
  107. package/departments/marketing/agents/marketing-director.yaml +1 -0
  108. package/departments/marketing/agents/paid-specialist.yaml +1 -0
  109. package/departments/marketing/agents/seo-specialist.yaml +1 -0
  110. package/departments/marketing/workflows/campaign.yaml +1 -0
  111. package/departments/marketing/workflows/social.yaml +1 -0
  112. package/departments/ops/SKILL.md +13 -0
  113. package/departments/ops/agents/automation-engineer.yaml +1 -0
  114. package/departments/ops/agents/doc-writer.yaml +1 -0
  115. package/departments/ops/agents/ops-lead.yaml +1 -0
  116. package/departments/ops/skills/operations/SKILL.md +83 -0
  117. package/departments/ops/skills/operations/references/calendar-email.md +73 -0
  118. package/departments/ops/skills/operations/references/clickup-ops.md +224 -0
  119. package/departments/ops/skills/update/SKILL.md +19 -45
  120. package/departments/ops/skills/update/references/sync-engine.md +93 -0
  121. package/departments/ops/skills/update/references/workflows.md +84 -0
  122. package/departments/ops/workflows/lean-audit.yaml +1 -0
  123. package/departments/org/SKILL.md +13 -0
  124. package/departments/org/agents/coo.yaml +1 -0
  125. package/departments/org/agents/org-designer.yaml +1 -0
  126. package/departments/org/agents/people-ops.yaml +1 -0
  127. package/departments/org/workflows/design.yaml +2 -0
  128. package/departments/pm/SKILL.md +13 -0
  129. package/departments/pm/agents/pm-director.yaml +1 -0
  130. package/departments/pm/agents/product-owner.yaml +1 -0
  131. package/departments/pm/agents/scrum-master.yaml +1 -0
  132. package/departments/quality/SKILL.md +13 -0
  133. package/departments/quality/agents/copy-director.yaml +1 -0
  134. package/departments/quality/agents/cqo.yaml +1 -0
  135. package/departments/quality/agents/tech-director.yaml +1 -0
  136. package/departments/saas/SKILL.md +13 -0
  137. package/departments/saas/agents/cs-manager.yaml +1 -0
  138. package/departments/saas/agents/growth-engineer.yaml +1 -0
  139. package/departments/saas/agents/metrics-analyst.yaml +1 -0
  140. package/departments/saas/agents/saas-strategist.yaml +1 -0
  141. package/departments/saas/workflows/metrics.yaml +1 -0
  142. package/departments/saas/workflows/validate.yaml +1 -0
  143. package/departments/sales/SKILL.md +13 -0
  144. package/departments/sales/agents/sales-closer.yaml +1 -0
  145. package/departments/sales/agents/sales-director.yaml +1 -0
  146. package/departments/sales/agents/sales-ops.yaml +1 -0
  147. package/departments/sales/workflows/pipeline.yaml +1 -0
  148. package/departments/strategy/SKILL.md +13 -0
  149. package/departments/strategy/agents/business-model-designer.yaml +1 -0
  150. package/departments/strategy/agents/market-analyst.yaml +1 -0
  151. package/departments/strategy/agents/strategy-director.yaml +1 -0
  152. package/departments/strategy/workflows/analysis.yaml +1 -0
  153. package/departments/strategy/workflows/swot.yaml +1 -0
  154. package/installer/index.js +19 -0
  155. package/package.json +1 -1
  156. package/pyproject.toml +1 -1
@@ -0,0 +1,224 @@
1
+ # arka-operations — ClickUp, Tasks, Automation, Channels
2
+
3
+ Referenced from SKILL.md. Read only when needed.
4
+
5
+ ## /ops onboard-client <name>
6
+
7
+ **Step 1: Create Client Folder in Obsidian**
8
+
9
+ Create the directory structure:
10
+ - `WizardingCode/Operations/Clients/<name>/Onboarding.md`
11
+
12
+ **Step 2: Generate Onboarding Checklist**
13
+
14
+ **File:** `WizardingCode/Operations/Clients/<name>/Onboarding.md`
15
+ ```markdown
16
+ ---
17
+ type: onboarding
18
+ department: operations
19
+ title: "<name> — Client Onboarding"
20
+ client: "<name>"
21
+ date_created: <YYYY-MM-DD>
22
+ status: in-progress
23
+ tags:
24
+ - "client"
25
+ - "onboarding"
26
+ ---
27
+
28
+ # <name> — Client Onboarding
29
+
30
+ ## Client Info
31
+ - **Company:** <name>
32
+ - **Contact:** [TBD]
33
+ - **Email:** [TBD]
34
+ - **Project:** [TBD]
35
+ - **Start date:** <YYYY-MM-DD>
36
+
37
+ ## Onboarding Checklist
38
+
39
+ ### Admin
40
+ - [ ] Contract signed
41
+ - [ ] Invoice sent (first payment)
42
+ - [ ] Add to ClickUp workspace
43
+ - [ ] Create project in ClickUp
44
+ - [ ] Share Google Drive folder
45
+
46
+ ### Technical
47
+ - [ ] Collect access credentials (hosting, DNS, APIs)
48
+ - [ ] Set up project repository
49
+ - [ ] Scaffold project (`/dev scaffold`)
50
+ - [ ] Configure MCPs for project
51
+ - [ ] Create PROJECT.md
52
+
53
+ ### Communication
54
+ - [ ] Welcome email sent
55
+ - [ ] Kickoff meeting scheduled
56
+ - [ ] Communication channels established
57
+ - [ ] Reporting cadence agreed
58
+
59
+ ### Knowledge
60
+ - [ ] Brand guidelines collected
61
+ - [ ] Existing content/assets received
62
+ - [ ] Competitor list documented
63
+ - [ ] Project brief approved
64
+
65
+ ---
66
+ *Part of the [[WizardingCode MOC]]*
67
+ ```
68
+
69
+ **Step 3: Create ClickUp Tasks**
70
+ - Use ClickUp MCP to create a task list mirroring the onboarding checklist
71
+ - Assign due dates based on a 2-week onboarding timeline
72
+
73
+ **Step 4: Report**
74
+ ```
75
+ ═══ ARKA OPS — Client Onboarding Created ═══
76
+ Client: <name>
77
+ Checklist: <count> items
78
+ ClickUp: Tasks created
79
+ Obsidian: WizardingCode/Operations/Clients/<name>/Onboarding.md
80
+ ═════════════════════════════════════════════
81
+ ```
82
+
83
+ ## /ops standup
84
+
85
+ **Step 1: Scan Active Projects**
86
+ - Read `projects/` directory for active project context
87
+ - Check each PROJECT.md for recent updates
88
+
89
+ **Step 2: Check ClickUp**
90
+ - Use ClickUp MCP to get tasks due today and overdue tasks
91
+ - Get tasks completed yesterday
92
+
93
+ **Step 3: Check Calendar**
94
+ - Use Google Calendar MCP to get today's meetings and deadlines
95
+
96
+ **Step 4: Generate Standup Report**
97
+
98
+ **Output (display, not saved):**
99
+ ```
100
+ ═══ ARKA OPS — Daily Standup ═══
101
+ Date: <YYYY-MM-DD>
102
+
103
+ 📋 Tasks Due Today
104
+ - [Task 1] — [project]
105
+ - [Task 2] — [project]
106
+
107
+ ⚠️ Overdue
108
+ - [Task] — [days overdue] — [project]
109
+
110
+ ✅ Completed Yesterday
111
+ - [Task 1] — [project]
112
+ - [Task 2] — [project]
113
+
114
+ 📅 Today's Calendar
115
+ - [HH:MM] [Meeting/Event]
116
+ - [HH:MM] [Meeting/Event]
117
+
118
+ 🔥 Blockers
119
+ - [Any identified blockers]
120
+
121
+ ═════════════════════════════════
122
+ ```
123
+
124
+ ## /ops automate <process>
125
+
126
+ **Step 1: Analyze Current Process**
127
+ - Ask user to describe the current manual process step by step
128
+ - Identify frequency, time spent, and pain points
129
+
130
+ **Step 2: Document Current State**
131
+ - Map all steps, decision points, and handoffs
132
+ - Identify which steps are repetitive and automatable
133
+
134
+ **Step 3: Design Automation**
135
+ - Propose automation approach (ClickUp automations, scripts, email templates, etc.)
136
+ - Identify tools and integrations needed
137
+ - Estimate time saved per occurrence
138
+
139
+ **Step 4: Create SOP in Obsidian**
140
+
141
+ **File:** `WizardingCode/Operations/Automations/<process>.md`
142
+ ```markdown
143
+ ---
144
+ type: automation
145
+ department: operations
146
+ title: "<process> — Automation SOP"
147
+ date_created: <YYYY-MM-DD>
148
+ status: draft
149
+ time_saved: "<estimate per occurrence>"
150
+ tags:
151
+ - "automation"
152
+ - "sop"
153
+ - "<process-kebab-case>"
154
+ ---
155
+
156
+ # <process> — Automation SOP
157
+
158
+ ## Current Process (Before)
159
+ 1. [Manual step]
160
+ 2. [Manual step]
161
+
162
+ ## Automated Process (After)
163
+ 1. [Automated/simplified step]
164
+ 2. [Automated/simplified step]
165
+
166
+ ## Implementation
167
+ - **Tools:** [ClickUp, Gmail, scripts, etc.]
168
+ - **Setup steps:** [numbered list]
169
+ - **Triggers:** [what kicks off the automation]
170
+
171
+ ## Estimated Impact
172
+ - Time saved per occurrence: [X min]
173
+ - Frequency: [X times/week]
174
+ - Total weekly savings: [X hours]
175
+
176
+ ---
177
+ *Part of the [[WizardingCode MOC]]*
178
+ ```
179
+
180
+ **Step 5: Report**
181
+ ```
182
+ ═══ ARKA OPS — Automation Designed ═══
183
+ Process: <process>
184
+ Steps: <before count> → <after count>
185
+ Time saved: <estimate per occurrence>
186
+ Obsidian: WizardingCode/Operations/Automations/<process>.md
187
+ ═══════════════════════════════════════
188
+ ```
189
+
190
+ ## /ops channel add <platform> <channel-id>
191
+
192
+ **Supported platforms:** `slack`, `discord`, `whatsapp`, `teams`
193
+
194
+ 1. Read `knowledge/channels-config.json`
195
+ 2. Add entry: `"<platform>": { "channel_id": "<channel-id>", "added": "<date>" }`
196
+ 3. If no default notification channel exists, set this as the default
197
+ 4. Write updated config back
198
+ 5. Confirm: "Channel added. Use `/ops notify` to send messages."
199
+
200
+ ## /ops channel list
201
+
202
+ 1. Read `knowledge/channels-config.json`
203
+ 2. Display all configured channels with their platform and channel ID
204
+ 3. Mark the default notification channel with `[DEFAULT]`
205
+
206
+ ## /ops channel remove <platform>
207
+
208
+ 1. Read `knowledge/channels-config.json`
209
+ 2. Remove the specified platform entry
210
+ 3. If the removed channel was the default, clear the default
211
+ 4. Write updated config back
212
+
213
+ ## /ops notify <message>
214
+
215
+ 1. Read `knowledge/channels-config.json` → get default notification channel
216
+ 2. If no default set, warn and list available channels
217
+ 3. Use the appropriate MCP (Slack, Discord, WhatsApp, or Teams) to send the message
218
+ 4. Confirm delivery
219
+
220
+ ## /ops broadcast <message>
221
+
222
+ 1. Read `knowledge/channels-config.json` → get all configured channels
223
+ 2. For each channel, use the appropriate MCP to send the message
224
+ 3. Report delivery status per channel
@@ -13,57 +13,31 @@ Hybrid sync engine: Python handles deterministic operations (MCPs, settings, des
13
13
  /arka update
14
14
  ```
15
15
 
16
- ## How It Works
16
+ ## Commands
17
17
 
18
- ### Phase 1-3 + 5: Deterministic Sync (Python)
18
+ | Command | Description |
19
+ |---------|-------------|
20
+ | `/arka update` | Full sync — run engine, dispatch AI subagent for skills, write state, report |
19
21
 
20
- Run the sync engine:
21
- ```bash
22
- cd $ARKAOS_ROOT && python -m core.sync.engine --home ~/.arkaos --skills ~/.claude/skills --output json
23
- ```
24
-
25
- The engine:
26
- 1. **Phase 1 (Manifest):** Reads sync-state.json, compares versions, loads feature registry
27
- 2. **Phase 2 (Discovery):** Finds all projects from 3 sources (descriptors, filesystem, ecosystems)
28
- 3. **Phase 3a (MCP Sync):** Updates .mcp.json per project based on registry + stack
29
- 4. **Phase 3b (Settings Sync):** Aligns settings.local.json with .mcp.json
30
- 5. **Phase 3c (Descriptors):** Auto-pause inactive, archive missing, update stacks
31
- 6. **Phase 5 (State):** Writes sync-state.json and returns JSON report
32
-
33
- ### Phase 4: Intelligent Sync (AI Subagent)
22
+ ## Orchestration (Summary)
34
23
 
35
- After the Python engine completes, dispatch ONE subagent to update ecosystem skills:
24
+ 1. **Phases 1–3 + 5 (deterministic, Python):** Run the engine:
25
+ ```bash
26
+ cd $ARKAOS_ROOT && python -m core.sync.engine --home ~/.arkaos --skills ~/.claude/skills --output json
27
+ ```
28
+ Handles manifest, discovery, MCP sync, settings sync, descriptors, and writes `~/.arkaos/sync-state.json`.
36
29
 
37
- **Subagent input:**
38
- - The JSON report from the engine (which ecosystems exist)
39
- - The feature registry files from `core/sync/features/*.yaml` (or `~/.arkaos/config/sync/features/*.yaml`)
30
+ 2. **Phase 4 (intelligent, AI subagent):** After the engine completes, dispatch ONE subagent with the engine's JSON report + the feature registry (`core/sync/features/*.yaml`). The subagent injects/removes feature sections in each `~/.claude/skills/arka-{ecosystem}/SKILL.md` while preserving all custom content.
40
31
 
41
- **Subagent task:**
42
- For each ecosystem skill (`~/.claude/skills/arka-{ecosystem}/SKILL.md`):
43
- 1. Read the SKILL.md
44
- 2. For each feature YAML where `deprecated_in` is null:
45
- - Search SKILL.md for `detection_pattern`
46
- - If NOT found → inject `content` after the last existing feature section, or after the "Commands" table if no feature sections exist yet (before "Orchestration Workflows" section)
47
- 3. For each feature where `deprecated_in` is set:
48
- - Search for and remove the section
49
- 4. PRESERVE all custom content: commands, architecture, tech stack, business descriptions
32
+ 3. **Report:** Display the formatted summary returned by the engine.
50
33
 
51
- ### Report
34
+ ## Error Handling (Summary)
52
35
 
53
- Display the formatted report from the engine output. The engine's text output format:
54
- ```
55
- ═══════════════════════════════════════════════════════
56
- ArkaOS Sync Complete — v2.14.0 → v2.15.0
57
- ═══════════════════════════════════════════════════════
58
- MCPs: 22 synced (8 updated, 14 unchanged)
59
- Settings: 22 synced (8 updated, 14 unchanged)
60
- Descriptors: 5 synced (1 updated, 4 unchanged)
61
- Skills: 3 ecosystems synced (2 updated, 1 unchanged)
62
- ...
63
- ```
36
+ - Python engine fails report error, do not proceed to AI phase.
37
+ - AI subagent fails → deterministic sync already completed, report partial success.
38
+ - Individual project errors never stop other projects from syncing.
64
39
 
65
- ## Error Handling
40
+ ## References
66
41
 
67
- - If Python engine fails: report the error, do not proceed to AI phase
68
- - If AI subagent fails: deterministic sync already completed, report partial success
69
- - Individual project errors don't stop other projects from syncing
42
+ - `references/sync-engine.md` Python engine phases (manifest, discovery, MCP/settings/descriptor sync, state), feature registry format, key paths
43
+ - `references/workflows.md` 2-step update flow, Phase 4 AI subagent instructions, report format, full error-handling table
@@ -0,0 +1,93 @@
1
+ # arka-update — sync engine
2
+
3
+ Referenced from SKILL.md. Read only when needed.
4
+
5
+ ## Python Engine Invocation
6
+
7
+ Run the sync engine from the ArkaOS repo root:
8
+
9
+ ```bash
10
+ cd $ARKAOS_ROOT && python -m core.sync.engine --home ~/.arkaos --skills ~/.claude/skills --output json
11
+ ```
12
+
13
+ The engine handles deterministic operations and returns a JSON report.
14
+
15
+ ## Engine Phases
16
+
17
+ ### Phase 1 — Manifest
18
+ - Reads `~/.arkaos/sync-state.json` (last synced version)
19
+ - Compares against current `VERSION` from the repo
20
+ - Loads feature registry from `core/sync/features/*.yaml` (or `~/.arkaos/config/sync/features/*.yaml`)
21
+ - Builds change manifest (agents, MCPs, workflows, features added/removed/modified)
22
+
23
+ ### Phase 2 — Discovery
24
+ Combines three sources to find all ArkaOS-managed projects:
25
+ 1. **Ecosystem registry:** `~/.claude/skills/arka/knowledge/ecosystems.json`
26
+ 2. **Filesystem scan:** projectsDir from `~/.arkaos/profile.json` (e.g. `~/Herd/`, `~/Work/`, `~/AIProjects/`). A subdir counts as an ArkaOS project if it has any of: `.mcp.json`, `.claude/`, `CLAUDE.md`.
27
+ 3. **Descriptors:** `~/.claude/skills/arka/projects/*.md` and `~/.claude/skills/arka/projects/*/PROJECT.md`
28
+
29
+ Deduplicate by absolute path. Skip projects whose path does not exist.
30
+
31
+ ### Phase 3a — MCP Sync
32
+ For each project: regenerate `.mcp.json` based on the registry + detected stack.
33
+
34
+ Base MCPs (all projects): `arka-prompts`, `context7`, `obsidian`, `clickup`, `memory-bank`, `playwright`, `gh-grep`.
35
+
36
+ Stack additions:
37
+ - Laravel: `laravel-boost`, `serena`, `sentry`
38
+ - Nuxt/Vue: nuxt-specific MCPs from registry
39
+ - Shopify: `shopify-dev`
40
+ - PostgreSQL / Supabase: matching MCP if in registry
41
+
42
+ Rules:
43
+ - `serena` MCP: update `--project` arg to the project's absolute path
44
+ - All MCPs: copy exact command/args/env from registry; resolve `~`/`${HOME}` to real path
45
+ - **Preserve** project-specific MCPs not in the registry (user-added)
46
+
47
+ ### Phase 3b — Settings Sync
48
+ Align `.claude/settings.local.json` with the updated `.mcp.json`:
49
+ - `enabledMcpjsonServers` matches the final MCP server list
50
+ - `enableAllProjectMcpServers: true`
51
+ - **Preserve** any custom `permissions` the user has configured
52
+ - If the file does not exist, create it with permissions `["Read","Grep","Glob","WebFetch"]` plus the MCP list
53
+
54
+ ### Phase 3c — Descriptors
55
+ For each descriptor:
56
+ - If `path:` no longer exists: `status: archived` + note "Path not found on filesystem"
57
+ - Detect stack from `composer.json` / `package.json` / `pyproject.toml` and update `stack:`
58
+ - Git activity: last commit > 30 days ago + active → paused; < 7 days + paused → active
59
+ - Validate `ecosystem:` matches an existing `~/.claude/skills/arka-*/`
60
+
61
+ ### Phase 5 — State
62
+ Writes `~/.arkaos/sync-state.json`:
63
+ ```json
64
+ {
65
+ "version": "<current VERSION>",
66
+ "last_sync": "<ISO 8601>",
67
+ "projects_synced": <count>,
68
+ "skills_synced": <count>,
69
+ "errors": [<messages>]
70
+ }
71
+ ```
72
+ Returns JSON report for downstream consumption.
73
+
74
+ ## Feature Registry
75
+
76
+ YAML files under `core/sync/features/*.yaml` (or `~/.arkaos/config/sync/features/*.yaml`). Each feature has:
77
+ - `detection_pattern` — regex/string searched in ecosystem SKILL.md to decide if the feature is already present
78
+ - `content` — the section to inject if missing
79
+ - `deprecated_in` — if set, the matching section is removed
80
+
81
+ ## Key Paths
82
+
83
+ | Path | Purpose |
84
+ |------|---------|
85
+ | `~/.arkaos/sync-state.json` | Sync state (version, timestamp, counts, errors) |
86
+ | `~/.arkaos/.repo-path` | Points to the ArkaOS npm package directory |
87
+ | `~/.arkaos/profile.json` | User profile (language, market, projectsDir, vaultPath) |
88
+ | `~/.arkaos/install-manifest.json` | Installation metadata |
89
+ | `~/.claude/skills/arka/knowledge/ecosystems.json` | Ecosystem registry |
90
+ | `~/.claude/skills/arka/mcps/registry.json` | MCP server definitions (source of truth) |
91
+ | `~/.claude/skills/arka/mcps/stacks/*.json` | Stack-specific package/MCP configs |
92
+ | `~/.claude/skills/arka/projects/` | Project descriptor files |
93
+ | `~/.claude/skills/arka-*/SKILL.md` | Ecosystem skill definitions |
@@ -0,0 +1,84 @@
1
+ # arka-update — workflows
2
+
3
+ Referenced from SKILL.md. Read only when needed.
4
+
5
+ ## The 2-Step Update Flow
6
+
7
+ ArkaOS updates happen in two steps.
8
+
9
+ ### Step 1: Core Update (terminal, outside Claude Code)
10
+
11
+ ```bash
12
+ npx arkaos@latest update
13
+ ```
14
+
15
+ Downloads the latest ArkaOS npm package and:
16
+ - Updates Python dependencies
17
+ - Copies new hook scripts (SessionStart, UserPromptSubmit, PostToolUse, PreCompact, CwdChanged)
18
+ - Updates the `/arka` skill and `arka-claude` CLI wrapper
19
+ - Resets sync state → triggers `[arka:update-available]` warning on next session
20
+
21
+ ### Step 2: Project Sync (inside Claude Code)
22
+
23
+ ```
24
+ /arka update
25
+ ```
26
+
27
+ AI-powered sync that updates ecosystem skills, project descriptors, MCP configs, and Claude settings.
28
+
29
+ ### When To Run
30
+
31
+ - After `npx arkaos@latest update` bumps the core version
32
+ - When the SessionStart hook shows `[arka:update-available]`
33
+ - Manually, any time, to force a full sync
34
+
35
+ ## Hybrid Orchestration
36
+
37
+ Phases 1–3 + 5 run via the Python engine (see `sync-engine.md`). Phase 4 runs as ONE AI subagent to handle intelligent ecosystem-skill text updates.
38
+
39
+ ### Phase 4 — Intelligent Sync (AI Subagent)
40
+
41
+ After the Python engine completes, dispatch ONE subagent.
42
+
43
+ **Subagent input:**
44
+ - The JSON report from the engine (list of ecosystems that exist)
45
+ - The feature registry files from `core/sync/features/*.yaml` (or `~/.arkaos/config/sync/features/*.yaml`)
46
+
47
+ **Subagent task — for each `~/.claude/skills/arka-{ecosystem}/SKILL.md`:**
48
+ 1. Read the SKILL.md.
49
+ 2. For each feature YAML where `deprecated_in` is null:
50
+ - Search SKILL.md for `detection_pattern`.
51
+ - If NOT found: inject `content` after the last existing feature section, or after the "Commands" table if no feature sections exist (before "Orchestration Workflows").
52
+ 3. For each feature where `deprecated_in` is set:
53
+ - Locate and remove the matching section.
54
+ 4. PRESERVE all custom content: commands, architecture, tech stack, business descriptions, ecosystem-specific workflow details.
55
+
56
+ ### Report
57
+
58
+ Display the formatted report from the engine output:
59
+
60
+ ```
61
+ ═══════════════════════════════════════════════════════
62
+ ArkaOS Sync Complete — v2.14.0 → v2.15.0
63
+ ═══════════════════════════════════════════════════════
64
+ MCPs: 22 synced (8 updated, 14 unchanged)
65
+ Settings: 22 synced (8 updated, 14 unchanged)
66
+ Descriptors: 5 synced (1 updated, 4 unchanged)
67
+ Skills: 3 ecosystems synced (2 updated, 1 unchanged)
68
+ ...
69
+ ```
70
+
71
+ ## Error Handling
72
+
73
+ | Scenario | Action |
74
+ |----------|--------|
75
+ | Python engine fails | Report error; do NOT proceed to AI phase |
76
+ | AI subagent fails | Deterministic sync already completed; report partial success |
77
+ | Individual project error | Other projects continue; the failure is recorded in `sync-state.json` errors |
78
+ | Project path not found | Skip project, warn, do not delete its descriptor |
79
+ | No stack detectable | Use generic MCPs only (`arka-prompts`, `context7`, `clickup`, `obsidian`) |
80
+ | Ecosystem skill has manual customizations | Update only structural sections; preserve all custom content |
81
+ | First sync (no `sync-state.json` or version is `pending-sync` / `none`) | Full sync without diff, create `sync-state.json` |
82
+ | Version downgrade (sync-state version > current VERSION) | Warn in report, sync anyway |
83
+ | `.mcp.json` has MCPs not in registry | Preserve them (user-added, project-specific) |
84
+ | `.claude/settings.local.json` has custom permissions | Preserve them (user-configured) |
@@ -43,6 +43,7 @@ phases:
43
43
 
44
44
  - id: quality-gate
45
45
  name: Quality Gate
46
+ model_override: opus
46
47
  description: Validate analysis quality
47
48
  agents:
48
49
  - agent_id: cqo-marta
@@ -32,3 +32,16 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
32
32
  | **Sofia** (COO) | 0 | S+C | Org strategy, cross-department coordination, scaling |
33
33
 
34
34
  ## Frameworks: Team Topologies (Skelton/Pais), Spotify Model (Kniberg), Five Dysfunctions (Lencioni), OKRs (Doerr), Netflix Culture, Conway's Law, RACI Matrix
35
+
36
+ ## Model Selection
37
+
38
+ When dispatching subagent work via the Task tool, include the `model` parameter from the target agent's YAML `model:` field:
39
+
40
+ - Agent YAMLs at `departments/*/agents/*.yaml` have `model: opus | sonnet | haiku`
41
+ - Quality Gate dispatch (Marta/Eduardo/Francisca) ALWAYS uses `model: opus` — NON-NEGOTIABLE
42
+ - Default to `sonnet` if the agent YAML has no `model` field
43
+ - Mechanical tasks (commit messages, routing, keyword extraction) use `model: haiku`
44
+
45
+ Example Task tool call:
46
+
47
+ Task(description="...", subagent_type="general-purpose", model="sonnet", prompt="...")
@@ -3,6 +3,7 @@ name: Sofia
3
3
  role: Chief Operations Officer
4
4
  department: org
5
5
  tier: 0
6
+ model: opus
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Pedro M.
3
3
  role: Organizational Designer
4
4
  department: org
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Carla
3
3
  role: People Operations Specialist
4
4
  department: org
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -25,6 +25,7 @@ phases:
25
25
  type: auto
26
26
  - id: design
27
27
  name: New Structure
28
+ model_override: opus
28
29
  agents:
29
30
  - agent_id: org-designer-pedro-m
30
31
  role: Propose new topology with team types and interaction modes
@@ -33,6 +34,7 @@ phases:
33
34
  description: User approves proposed structure
34
35
  - id: quality-gate
35
36
  name: Quality Gate
37
+ model_override: opus
36
38
  agents:
37
39
  - agent_id: cqo-marta
38
40
  role: Orchestrate
@@ -37,3 +37,16 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
37
37
  | **Jorge** (SM) | 2 | S+I | Facilitation, flow metrics, retros, coaching |
38
38
 
39
39
  ## Frameworks: Scrum (Sutherland), Kanban (Anderson), Shape Up (Singer), Continuous Discovery (Torres), OST, RICE/WSJF, Monte Carlo (Vacanti), User Story Mapping (Patton), Impact Mapping (Adzic), INVEST
40
+
41
+ ## Model Selection
42
+
43
+ When dispatching subagent work via the Task tool, include the `model` parameter from the target agent's YAML `model:` field:
44
+
45
+ - Agent YAMLs at `departments/*/agents/*.yaml` have `model: opus | sonnet | haiku`
46
+ - Quality Gate dispatch (Marta/Eduardo/Francisca) ALWAYS uses `model: opus` — NON-NEGOTIABLE
47
+ - Default to `sonnet` if the agent YAML has no `model` field
48
+ - Mechanical tasks (commit messages, routing, keyword extraction) use `model: haiku`
49
+
50
+ Example Task tool call:
51
+
52
+ Task(description="...", subagent_type="general-purpose", model="sonnet", prompt="...")
@@ -3,6 +3,7 @@ name: Carolina
3
3
  role: Product Manager
4
4
  department: pm
5
5
  tier: 1
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Sara
3
3
  role: Product Owner
4
4
  department: pm
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Jorge
3
3
  role: Scrum Master / Agile Coach
4
4
  department: pm
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -64,3 +64,16 @@ Any Department Workflow:
64
64
  | **REJECTED** | One or more issues found | Loop back with specific issue list |
65
65
 
66
66
  There is no "APPROVED WITH CAVEATS". It's binary. Fix issues first.
67
+
68
+ ## Model Selection
69
+
70
+ When dispatching subagent work via the Task tool, include the `model` parameter from the target agent's YAML `model:` field:
71
+
72
+ - Agent YAMLs at `departments/*/agents/*.yaml` have `model: opus | sonnet | haiku`
73
+ - Quality Gate dispatch (Marta/Eduardo/Francisca) ALWAYS uses `model: opus` — NON-NEGOTIABLE
74
+ - Default to `sonnet` if the agent YAML has no `model` field
75
+ - Mechanical tasks (commit messages, routing, keyword extraction) use `model: haiku`
76
+
77
+ Example Task tool call:
78
+
79
+ Task(description="...", subagent_type="general-purpose", model="sonnet", prompt="...")
@@ -3,6 +3,7 @@ name: Eduardo
3
3
  role: Copy & Language Director
4
4
  department: quality
5
5
  tier: 0
6
+ model: opus
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Marta
3
3
  role: Chief Quality Officer
4
4
  department: quality
5
5
  tier: 0
6
+ model: opus
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Francisca
3
3
  role: Technical & UX Quality Director
4
4
  department: quality
5
5
  tier: 0
6
+ model: opus
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -62,3 +62,16 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
62
62
  | Value-Based Pricing | Patrick Campbell | Pricing based on willingness to pay |
63
63
  | Customer Success Lifecycle | Lincoln Murphy | Onboard, adopt, expand, renew, advocate |
64
64
  | AARRR / RARRA | Dave McClure | Growth funnel metrics |
65
+
66
+ ## Model Selection
67
+
68
+ When dispatching subagent work via the Task tool, include the `model` parameter from the target agent's YAML `model:` field:
69
+
70
+ - Agent YAMLs at `departments/*/agents/*.yaml` have `model: opus | sonnet | haiku`
71
+ - Quality Gate dispatch (Marta/Eduardo/Francisca) ALWAYS uses `model: opus` — NON-NEGOTIABLE
72
+ - Default to `sonnet` if the agent YAML has no `model` field
73
+ - Mechanical tasks (commit messages, routing, keyword extraction) use `model: haiku`
74
+
75
+ Example Task tool call:
76
+
77
+ Task(description="...", subagent_type="general-purpose", model="sonnet", prompt="...")
@@ -3,6 +3,7 @@ name: Patricia
3
3
  role: Customer Success Manager
4
4
  department: saas
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc:
@@ -3,6 +3,7 @@ name: Andre S.
3
3
  role: Growth Engineer
4
4
  department: saas
5
5
  tier: 2
6
+ model: sonnet
6
7
 
7
8
  behavioral_dna:
8
9
  disc: