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.
- package/VERSION +1 -1
- package/arka/SKILL.md +13 -0
- package/arka/skills/comfyui/SKILL.md +82 -0
- package/arka/skills/comfyui/references/squads.md +80 -0
- package/arka/skills/comfyui/references/workflows.md +435 -0
- package/arka/skills/forge/SKILL.md +35 -599
- package/arka/skills/forge/references/complexity-engine.md +77 -0
- package/arka/skills/forge/references/critic-synthesis.md +154 -0
- package/arka/skills/forge/references/workflows.md +408 -0
- package/arka/skills/fovory/SKILL.md +91 -0
- package/arka/skills/fovory/references/integration.md +186 -0
- package/arka/skills/fovory/references/workflows.md +209 -0
- package/arka/skills/platform-arka/SKILL.md +121 -0
- package/arka/skills/platform-arka/references/workflows.md +202 -0
- package/arka/skills/rothbard100/SKILL.md +113 -0
- package/arka/skills/rothbard100/references/squad.md +111 -0
- package/arka/skills/rothbard100/references/workflows.md +175 -0
- package/config/constitution.yaml +8 -0
- package/config/hooks/pre-compact.sh +11 -5
- package/config/hooks/session-start.sh +4 -5
- package/config/hooks/token-hygiene.sh +120 -0
- package/config/hooks/user-prompt-submit.sh +28 -10
- package/core/agents/__pycache__/schema.cpython-313.pyc +0 -0
- package/core/agents/schema.py +20 -1
- package/core/synapse/__pycache__/layers.cpython-313.pyc +0 -0
- package/core/synapse/layers.py +7 -0
- package/core/workflow/__pycache__/schema.cpython-313.pyc +0 -0
- package/core/workflow/schema.py +4 -1
- package/departments/brand/SKILL.md +13 -0
- package/departments/brand/agents/brand-director.yaml +1 -0
- package/departments/brand/agents/brand-strategist.yaml +1 -0
- package/departments/brand/agents/ux-designer.yaml +1 -0
- package/departments/brand/agents/visual-designer.yaml +1 -0
- package/departments/brand/workflows/identity.yaml +1 -0
- package/departments/brand/workflows/naming.yaml +1 -0
- package/departments/community/SKILL.md +13 -0
- package/departments/community/agents/community-manager.yaml +1 -0
- package/departments/community/agents/community-strategist.yaml +1 -0
- package/departments/community/agents/engagement-designer.yaml +1 -0
- package/departments/community/workflows/setup.yaml +1 -0
- package/departments/content/SKILL.md +13 -0
- package/departments/content/agents/content-strategist.yaml +1 -0
- package/departments/content/agents/repurpose-distributor.yaml +1 -0
- package/departments/content/agents/scriptwriter.yaml +1 -0
- package/departments/content/agents/viral-engineer.yaml +1 -0
- package/departments/content/workflows/viral.yaml +1 -0
- package/departments/dev/SKILL.md +13 -0
- package/departments/dev/agents/architect.yaml +1 -0
- package/departments/dev/agents/backend-dev.yaml +1 -0
- package/departments/dev/agents/cto.yaml +1 -0
- package/departments/dev/agents/dba.yaml +1 -0
- package/departments/dev/agents/devops-eng.yaml +1 -0
- package/departments/dev/agents/frontend-dev.yaml +1 -0
- package/departments/dev/agents/qa-eng.yaml +1 -0
- package/departments/dev/agents/research-assistant.yaml +1 -0
- package/departments/dev/agents/security-eng.yaml +1 -0
- package/departments/dev/agents/tech-lead.yaml +1 -0
- package/departments/dev/skills/onboard/SKILL.md +21 -353
- package/departments/dev/skills/onboard/references/mcp-config.md +284 -0
- package/departments/dev/skills/onboard/references/stack-detection.md +83 -0
- package/departments/dev/workflows/debug.yaml +1 -0
- package/departments/dev/workflows/feature.yaml +3 -0
- package/departments/dev/workflows/refactor.yaml +1 -0
- package/departments/ecom/SKILL.md +13 -0
- package/departments/ecom/agents/commerce-engineer.yaml +1 -0
- package/departments/ecom/agents/cro-specialist.yaml +1 -0
- package/departments/ecom/agents/ecom-director.yaml +1 -0
- package/departments/ecom/agents/retention-manager.yaml +1 -0
- package/departments/ecom/skills/ecommerce/SKILL.md +66 -0
- package/departments/ecom/skills/ecommerce/references/audit-flow.md +109 -0
- package/departments/ecom/skills/ecommerce/references/playbooks.md +141 -0
- package/departments/ecom/workflows/product-page.yaml +1 -0
- package/departments/finance/SKILL.md +13 -0
- package/departments/finance/agents/cfo.yaml +1 -0
- package/departments/finance/agents/financial-analyst.yaml +1 -0
- package/departments/finance/agents/investment-strategist.yaml +1 -0
- package/departments/finance/workflows/cashflow.yaml +1 -0
- package/departments/finance/workflows/model.yaml +1 -0
- package/departments/kb/SKILL.md +13 -0
- package/departments/kb/agents/data-collector.yaml +1 -0
- package/departments/kb/agents/knowledge-curator.yaml +1 -0
- package/departments/kb/agents/knowledge-director.yaml +1 -0
- package/departments/kb/agents/research-analyst.yaml +1 -0
- package/departments/kb/skills/knowledge/SKILL.md +94 -0
- package/departments/kb/skills/knowledge/references/async-processing.md +89 -0
- package/departments/kb/skills/knowledge/references/ingestion-pipeline.md +308 -0
- package/departments/kb/skills/knowledge/scripts/kb-check-capabilities.sh +143 -0
- package/departments/kb/skills/knowledge/scripts/kb-cleanup.sh +135 -0
- package/departments/kb/skills/knowledge/scripts/kb-queue.sh +156 -0
- package/departments/kb/skills/knowledge/scripts/kb-status.sh +195 -0
- package/departments/kb/skills/knowledge/scripts/kb-worker.sh +217 -0
- package/departments/kb/workflows/learn.yaml +1 -0
- package/departments/landing/SKILL.md +13 -0
- package/departments/landing/agents/affiliate-manager.yaml +1 -0
- package/departments/landing/agents/conversion-strategist.yaml +1 -0
- package/departments/landing/agents/cro-specialist.yaml +1 -0
- package/departments/landing/agents/sales-copywriter.yaml +1 -0
- package/departments/landing/workflows/launch.yaml +1 -0
- package/departments/landing/workflows/offer.yaml +3 -0
- package/departments/leadership/SKILL.md +13 -0
- package/departments/leadership/agents/culture-coach.yaml +1 -0
- package/departments/leadership/agents/hr-specialist.yaml +1 -0
- package/departments/leadership/agents/leadership-director.yaml +1 -0
- package/departments/leadership/workflows/team-build.yaml +1 -0
- package/departments/marketing/SKILL.md +13 -0
- package/departments/marketing/agents/content-marketer.yaml +1 -0
- package/departments/marketing/agents/marketing-director.yaml +1 -0
- package/departments/marketing/agents/paid-specialist.yaml +1 -0
- package/departments/marketing/agents/seo-specialist.yaml +1 -0
- package/departments/marketing/workflows/campaign.yaml +1 -0
- package/departments/marketing/workflows/social.yaml +1 -0
- package/departments/ops/SKILL.md +13 -0
- package/departments/ops/agents/automation-engineer.yaml +1 -0
- package/departments/ops/agents/doc-writer.yaml +1 -0
- package/departments/ops/agents/ops-lead.yaml +1 -0
- package/departments/ops/skills/operations/SKILL.md +83 -0
- package/departments/ops/skills/operations/references/calendar-email.md +73 -0
- package/departments/ops/skills/operations/references/clickup-ops.md +224 -0
- package/departments/ops/skills/update/SKILL.md +19 -45
- package/departments/ops/skills/update/references/sync-engine.md +93 -0
- package/departments/ops/skills/update/references/workflows.md +84 -0
- package/departments/ops/workflows/lean-audit.yaml +1 -0
- package/departments/org/SKILL.md +13 -0
- package/departments/org/agents/coo.yaml +1 -0
- package/departments/org/agents/org-designer.yaml +1 -0
- package/departments/org/agents/people-ops.yaml +1 -0
- package/departments/org/workflows/design.yaml +2 -0
- package/departments/pm/SKILL.md +13 -0
- package/departments/pm/agents/pm-director.yaml +1 -0
- package/departments/pm/agents/product-owner.yaml +1 -0
- package/departments/pm/agents/scrum-master.yaml +1 -0
- package/departments/quality/SKILL.md +13 -0
- package/departments/quality/agents/copy-director.yaml +1 -0
- package/departments/quality/agents/cqo.yaml +1 -0
- package/departments/quality/agents/tech-director.yaml +1 -0
- package/departments/saas/SKILL.md +13 -0
- package/departments/saas/agents/cs-manager.yaml +1 -0
- package/departments/saas/agents/growth-engineer.yaml +1 -0
- package/departments/saas/agents/metrics-analyst.yaml +1 -0
- package/departments/saas/agents/saas-strategist.yaml +1 -0
- package/departments/saas/workflows/metrics.yaml +1 -0
- package/departments/saas/workflows/validate.yaml +1 -0
- package/departments/sales/SKILL.md +13 -0
- package/departments/sales/agents/sales-closer.yaml +1 -0
- package/departments/sales/agents/sales-director.yaml +1 -0
- package/departments/sales/agents/sales-ops.yaml +1 -0
- package/departments/sales/workflows/pipeline.yaml +1 -0
- package/departments/strategy/SKILL.md +13 -0
- package/departments/strategy/agents/business-model-designer.yaml +1 -0
- package/departments/strategy/agents/market-analyst.yaml +1 -0
- package/departments/strategy/agents/strategy-director.yaml +1 -0
- package/departments/strategy/workflows/analysis.yaml +1 -0
- package/departments/strategy/workflows/swot.yaml +1 -0
- package/installer/index.js +19 -0
- package/package.json +1 -1
- 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
|
-
##
|
|
16
|
+
## Commands
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
| Command | Description |
|
|
19
|
+
|---------|-------------|
|
|
20
|
+
| `/arka update` | Full sync — run engine, dispatch AI subagent for skills, write state, report |
|
|
19
21
|
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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
|
-
|
|
34
|
+
## Error Handling (Summary)
|
|
52
35
|
|
|
53
|
-
|
|
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
|
-
##
|
|
40
|
+
## References
|
|
66
41
|
|
|
67
|
-
-
|
|
68
|
-
-
|
|
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) |
|
package/departments/org/SKILL.md
CHANGED
|
@@ -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="...")
|
|
@@ -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
|
package/departments/pm/SKILL.md
CHANGED
|
@@ -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="...")
|
|
@@ -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="...")
|
|
@@ -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="...")
|