arkaos 4.13.2 → 4.14.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 (130) hide show
  1. package/VERSION +1 -1
  2. package/arka/SKILL.md +16 -0
  3. package/bin/arka-doctor +20 -1
  4. package/config/cognition/schedules.yaml +16 -0
  5. package/config/hooks/_lib/fastpath/engine.cjs +337 -0
  6. package/config/hooks/gate-manifest.json +741 -0
  7. package/config/hooks/post-tool-use.cjs +113 -0
  8. package/config/hooks/pre-tool-use.cjs +109 -0
  9. package/config/hooks/session-end.ps1 +40 -0
  10. package/config/hooks/session-end.sh +55 -0
  11. package/config/hooks/session-start.sh +25 -189
  12. package/config/hooks/subagent-stop.ps1 +40 -0
  13. package/config/hooks/subagent-stop.sh +56 -0
  14. package/config/mcp-policy.yaml +8 -0
  15. package/config/skills-curated.yaml +39 -0
  16. package/config/statusline.sh +57 -1
  17. package/core/cognition/capture/__pycache__/store.cpython-313.pyc +0 -0
  18. package/core/cognition/capture/store.py +7 -2
  19. package/core/evals/__pycache__/__init__.cpython-314.pyc +0 -0
  20. package/core/evals/__pycache__/sanitizer.cpython-314.pyc +0 -0
  21. package/core/evals/__pycache__/schema.cpython-314.pyc +0 -0
  22. package/core/evals/__pycache__/verdict_labels.cpython-314.pyc +0 -0
  23. package/core/forge/__pycache__/complexity.cpython-314.pyc +0 -0
  24. package/core/governance/__pycache__/evidence_checks.cpython-313.pyc +0 -0
  25. package/core/governance/__pycache__/judge.cpython-314.pyc +0 -0
  26. package/core/governance/__pycache__/leak_scanner.cpython-314.pyc +0 -0
  27. package/core/governance/__pycache__/qg_verdict.cpython-314.pyc +0 -0
  28. package/core/governance/__pycache__/routing_feedback.cpython-313.pyc +0 -0
  29. package/core/governance/__pycache__/routing_feedback.cpython-314.pyc +0 -0
  30. package/core/governance/__pycache__/routing_feedback_cli.cpython-313.pyc +0 -0
  31. package/core/governance/evidence_checks.py +42 -7
  32. package/core/governance/routing_feedback.py +229 -0
  33. package/core/governance/routing_feedback_cli.py +49 -0
  34. package/core/hooks/__pycache__/_shared.cpython-312.pyc +0 -0
  35. package/core/hooks/__pycache__/gate_manifest.cpython-313.pyc +0 -0
  36. package/core/hooks/__pycache__/post_tool_use.cpython-312.pyc +0 -0
  37. package/core/hooks/__pycache__/post_tool_use.cpython-313.pyc +0 -0
  38. package/core/hooks/__pycache__/pre_tool_use.cpython-312.pyc +0 -0
  39. package/core/hooks/__pycache__/session_end.cpython-313.pyc +0 -0
  40. package/core/hooks/__pycache__/session_start.cpython-312.pyc +0 -0
  41. package/core/hooks/__pycache__/session_start.cpython-313.pyc +0 -0
  42. package/core/hooks/__pycache__/stop.cpython-313.pyc +0 -0
  43. package/core/hooks/__pycache__/stop.cpython-314.pyc +0 -0
  44. package/core/hooks/__pycache__/subagent_stop.cpython-313.pyc +0 -0
  45. package/core/hooks/__pycache__/subagent_stop.cpython-314.pyc +0 -0
  46. package/core/hooks/__pycache__/user_prompt_submit.cpython-313.pyc +0 -0
  47. package/core/hooks/__pycache__/user_prompt_submit.cpython-314.pyc +0 -0
  48. package/core/hooks/gate_manifest.py +366 -0
  49. package/core/hooks/post_tool_use.py +5 -2
  50. package/core/hooks/session_end.py +127 -0
  51. package/core/hooks/session_start.py +322 -0
  52. package/core/hooks/stop.py +69 -0
  53. package/core/hooks/subagent_stop.py +186 -0
  54. package/core/hooks/user_prompt_submit.py +10 -6
  55. package/core/knowledge/__pycache__/embedding_backends.cpython-313.pyc +0 -0
  56. package/core/knowledge/__pycache__/embedding_backends.cpython-314.pyc +0 -0
  57. package/core/knowledge/__pycache__/pattern_cards.cpython-313.pyc +0 -0
  58. package/core/knowledge/__pycache__/pattern_cards.cpython-314.pyc +0 -0
  59. package/core/knowledge/__pycache__/recipes.cpython-314.pyc +0 -0
  60. package/core/knowledge/__pycache__/vector_store.cpython-313.pyc +0 -0
  61. package/core/knowledge/__pycache__/vector_store.cpython-314.pyc +0 -0
  62. package/core/knowledge/embedding_backends.py +278 -0
  63. package/core/knowledge/pattern_cards.py +49 -1
  64. package/core/knowledge/vector_store.py +14 -2
  65. package/core/memory/__pycache__/semantic_store.cpython-312.pyc +0 -0
  66. package/core/memory/__pycache__/semantic_store.cpython-313.pyc +0 -0
  67. package/core/memory/__pycache__/semantic_store.cpython-314.pyc +0 -0
  68. package/core/memory/__pycache__/turn_capture.cpython-313.pyc +0 -0
  69. package/core/memory/__pycache__/turn_capture.cpython-314.pyc +0 -0
  70. package/core/memory/semantic_store.py +301 -0
  71. package/core/memory/turn_capture.py +277 -0
  72. package/core/registry/__pycache__/generator.cpython-312.pyc +0 -0
  73. package/core/runtime/__pycache__/claude_code.cpython-312.pyc +0 -0
  74. package/core/runtime/__pycache__/codex_cli.cpython-312.pyc +0 -0
  75. package/core/runtime/__pycache__/cost_governor.cpython-314.pyc +0 -0
  76. package/core/runtime/__pycache__/gemini_cli.cpython-312.pyc +0 -0
  77. package/core/runtime/__pycache__/llm_cost_telemetry.cpython-312.pyc +0 -0
  78. package/core/runtime/__pycache__/mcp_telemetry.cpython-312.pyc +0 -0
  79. package/core/shared/__pycache__/decay.cpython-313.pyc +0 -0
  80. package/core/shared/__pycache__/decay.cpython-314.pyc +0 -0
  81. package/core/shared/__pycache__/sqlite_recovery.cpython-312.pyc +0 -0
  82. package/core/shared/__pycache__/sqlite_recovery.cpython-313.pyc +0 -0
  83. package/core/shared/__pycache__/sqlite_recovery.cpython-314.pyc +0 -0
  84. package/core/shared/decay.py +94 -0
  85. package/core/shared/sqlite_recovery.py +266 -0
  86. package/core/synapse/__pycache__/agent_experiences_layer.cpython-313.pyc +0 -0
  87. package/core/synapse/__pycache__/agent_experiences_layer.cpython-314.pyc +0 -0
  88. package/core/synapse/__pycache__/engine.cpython-312.pyc +0 -0
  89. package/core/synapse/__pycache__/engine.cpython-313.pyc +0 -0
  90. package/core/synapse/__pycache__/engine.cpython-314.pyc +0 -0
  91. package/core/synapse/__pycache__/layers.cpython-312.pyc +0 -0
  92. package/core/synapse/__pycache__/pattern_library_layer.cpython-314.pyc +0 -0
  93. package/core/synapse/__pycache__/recipe_layer.cpython-313.pyc +0 -0
  94. package/core/synapse/__pycache__/recipe_layer.cpython-314.pyc +0 -0
  95. package/core/synapse/__pycache__/routing_feedback_layer.cpython-313.pyc +0 -0
  96. package/core/synapse/__pycache__/routing_feedback_layer.cpython-314.pyc +0 -0
  97. package/core/synapse/__pycache__/session_memory_layer.cpython-312.pyc +0 -0
  98. package/core/synapse/__pycache__/session_memory_layer.cpython-313.pyc +0 -0
  99. package/core/synapse/__pycache__/session_memory_layer.cpython-314.pyc +0 -0
  100. package/core/synapse/agent_experiences_layer.py +42 -3
  101. package/core/synapse/engine.py +13 -0
  102. package/core/synapse/recipe_layer.py +27 -4
  103. package/core/synapse/routing_feedback_layer.py +132 -0
  104. package/core/synapse/session_memory_layer.py +152 -0
  105. package/core/workflow/__pycache__/__init__.cpython-312.pyc +0 -0
  106. package/core/workflow/__pycache__/design_authorization.cpython-314.pyc +0 -0
  107. package/core/workflow/__pycache__/frontend_gate.cpython-314.pyc +0 -0
  108. package/core/workflow/__pycache__/specialist_enforcer.cpython-314.pyc +0 -0
  109. package/installer/adapters/claude-code.js +37 -0
  110. package/installer/claude-plugins.js +6 -0
  111. package/installer/cli.js +23 -2
  112. package/installer/config-seed.js +25 -16
  113. package/installer/doctor.js +116 -1
  114. package/installer/hook-lib.js +28 -0
  115. package/installer/index.js +48 -153
  116. package/installer/mcp-runner.js +108 -0
  117. package/installer/skill-deploy.js +189 -0
  118. package/installer/skills-mode.js +64 -0
  119. package/installer/update.js +55 -79
  120. package/knowledge/commands-registry.json.bak +171 -4
  121. package/knowledge/skills-manifest.json +2337 -0
  122. package/package.json +1 -1
  123. package/pyproject.toml +9 -1
  124. package/scripts/__pycache__/marketplace_gen.cpython-313.pyc +0 -0
  125. package/scripts/__pycache__/synapse-bridge.cpython-314.pyc +0 -0
  126. package/scripts/marketplace_gen.py +310 -0
  127. package/scripts/tools/__pycache__/docs_stats.cpython-313.pyc +0 -0
  128. package/scripts/tools/__pycache__/skill_budget.cpython-313.pyc +0 -0
  129. package/scripts/tools/docs_stats.py +6 -4
  130. package/scripts/tools/skill_budget.py +209 -0
@@ -1,9 +1,11 @@
1
- import { existsSync, readFileSync, writeFileSync, copyFileSync, chmodSync, mkdirSync, readdirSync, cpSync, statSync } from "node:fs";
1
+ import { existsSync, readFileSync, writeFileSync, copyFileSync, chmodSync, mkdirSync, readdirSync, cpSync } from "node:fs";
2
2
  import { join, dirname, resolve } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import { execSync } from "node:child_process";
5
5
  import { ensureVenv, ensureVenvHealthy, getArkaosPython, pipInstall } from "./python-resolver.js";
6
- import { copyHookLib } from "./hook-lib.js";
6
+ import { copyHookLib, copyHookAssets } from "./hook-lib.js";
7
+ import { deploySkills } from "./skill-deploy.js";
8
+ import { deprecationNotice, resolveSkillsMode } from "./skills-mode.js";
7
9
  import { deployCoreSnapshot } from "./core-snapshot.js";
8
10
  import { getRuntimeConfig } from "./detect-runtime.js";
9
11
  import { loadAdapter } from "./index.js";
@@ -16,7 +18,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
16
18
  const ARKAOS_ROOT = resolve(__dirname, "..");
17
19
  const VERSION = JSON.parse(readFileSync(join(ARKAOS_ROOT, "package.json"), "utf-8")).version;
18
20
 
19
- export async function update() {
21
+ export async function update({ skillsFlag = "" } = {}) {
20
22
  const installDir = join(homedir(), ".arkaos");
21
23
  const manifestPath = join(installDir, "install-manifest.json");
22
24
  const profilePath = join(installDir, "profile.json");
@@ -207,6 +209,8 @@ export async function update() {
207
209
  "cwd-changed",
208
210
  "pre-tool-use",
209
211
  "stop",
212
+ "subagent-stop",
213
+ "session-end",
210
214
  ];
211
215
  const hookExt = HOOK_EXT;
212
216
  const srcHooksDir = join(ARKAOS_ROOT, "config", "hooks");
@@ -246,6 +250,13 @@ export async function update() {
246
250
  console.log(" ✓ Hook lib updated (_lib/)");
247
251
  }
248
252
 
253
+ // F2-6 fast-path shims + gate manifest (same shared deploy as the
254
+ // fresh-install path — single asset list in hook-lib.js).
255
+ const assetCount = copyHookAssets(srcHooksDir, destHooksDir);
256
+ if (assetCount > 0) {
257
+ console.log(` ✓ Hook fast-path assets updated (${assetCount})`);
258
+ }
259
+
249
260
  // Re-register hooks in the runtime's settings file.
250
261
  // Without this, updating from an older version leaves settings.json
251
262
  // frozen at the previous hook spec (missing new hooks, stale timeouts).
@@ -323,82 +334,36 @@ export async function update() {
323
334
  // never deployed anything else.
324
335
  console.log(" [6/8] Updating /arka skill...");
325
336
  const skillsBase = join(homedir(), ".claude", "skills");
326
- const skillSrc = join(ARKAOS_ROOT, "arka", "SKILL.md");
327
337
  const skillDest = join(skillsBase, "arka");
328
- mkdirSync(skillDest, { recursive: true });
329
- if (existsSync(skillSrc)) {
330
- safeResolveMarkdown(skillSrc, join(skillDest, "SKILL.md"));
331
- writeFileSync(join(skillDest, ".repo-path"), ARKAOS_ROOT);
332
- writeFileSync(join(skillDest, "VERSION"), VERSION);
333
- console.log(" ✓ /arka skill updated");
334
- }
335
-
336
- // Department skills + sub-skills + agent personas.
337
- // Keep in sync with installer/index.js::installSkill — if anything
338
- // changes about how top-level skills or agents are structured, both
339
- // functions must be updated together.
340
- const listSubdirs = (parent) => {
341
- if (!existsSync(parent)) return [];
342
- try {
343
- return readdirSync(parent, { withFileTypes: true })
344
- .filter((e) => e.isDirectory())
345
- .map((e) => e.name);
346
- } catch {
347
- return [];
348
- }
349
- };
350
- const copyResources = (src, dest) => {
351
- for (const res of ["scripts", "references", "assets"]) {
352
- const s = join(src, res);
353
- if (!existsSync(s)) continue;
354
- try { cpSync(s, join(dest, res), { recursive: true }); } catch {}
355
- }
356
- };
357
- const deployTop = (src, arkaName) => {
358
- const md = join(src, "SKILL.md");
359
- if (!existsSync(md)) return false;
360
- const dest = join(skillsBase, arkaName);
361
- mkdirSync(dest, { recursive: true });
362
- safeResolveMarkdown(md, join(dest, "SKILL.md"));
363
- copyResources(src, dest);
364
- return true;
365
- };
366
-
367
- const deptRoot = join(ARKAOS_ROOT, "departments");
368
- let deptCount = 0;
369
- let subCount = 0;
370
- for (const dept of listSubdirs(deptRoot)) {
371
- if (deployTop(join(deptRoot, dept), `arka-${dept}`)) deptCount++;
372
- for (const sub of listSubdirs(join(deptRoot, dept, "skills"))) {
373
- if (deployTop(join(deptRoot, dept, "skills", sub), `arka-${sub}`)) subCount++;
374
- }
375
- }
376
- if (deptCount > 0) {
377
- console.log(` ✓ ${deptCount} department skills updated`);
378
- }
379
- if (subCount > 0) {
380
- console.log(` ✓ ${subCount} sub-skills updated`);
381
- }
382
-
383
- const agentsBase = join(homedir(), ".claude", "agents");
384
- mkdirSync(agentsBase, { recursive: true });
385
- let agentCount = 0;
386
- for (const dept of listSubdirs(deptRoot)) {
387
- const agentsSrc = join(deptRoot, dept, "agents");
388
- if (!existsSync(agentsSrc)) continue;
389
- try {
390
- for (const file of readdirSync(agentsSrc)) {
391
- if (!file.endsWith(".md")) continue;
392
- const srcFile = join(agentsSrc, file);
393
- try { if (!statSync(srcFile).isFile()) continue; } catch { continue; }
394
- const base = file.replace(/\.md$/, "");
395
- copyFileSync(srcFile, join(agentsBase, `arka-${base}.md`));
396
- agentCount++;
397
- }
398
- } catch {}
399
- }
400
- if (agentCount > 0) {
401
- console.log(` ✓ ${agentCount} agent personas updated`);
338
+ // Single shared deployment (installer/skill-deploy.js) — identical
339
+ // surface to a fresh install BY CONSTRUCTION: main /arka + nested
340
+ // reference bundle + department hubs + sub-skills + META skills
341
+ // (arka-flow & co. were silently missing from update-only machines
342
+ // before F2-7c-pre) + agent personas.
343
+ const skillsMode = resolveSkillsMode({ flag: skillsFlag, fresh: false });
344
+ if (skillsMode.deprecated) {
345
+ console.log(" " + deprecationNotice());
346
+ }
347
+ const skillCounts = deploySkills({
348
+ repoRoot: ARKAOS_ROOT,
349
+ skillsBase,
350
+ agentsBase: join(homedir(), ".claude", "agents"),
351
+ version: VERSION,
352
+ mode: skillsMode.mode,
353
+ });
354
+ console.log(` ✓ skill set mode: ${skillsMode.mode}`);
355
+ if (skillCounts.main) console.log(" ✓ /arka skill updated");
356
+ if (skillCounts.depts > 0) {
357
+ console.log(` ✓ ${skillCounts.depts} department skills updated`);
358
+ }
359
+ if (skillCounts.subs > 0) {
360
+ console.log(` ✓ ${skillCounts.subs} sub-skills updated`);
361
+ }
362
+ if (skillCounts.meta > 0) {
363
+ console.log(` ✓ ${skillCounts.meta} meta skills updated`);
364
+ }
365
+ if (skillCounts.agents > 0) {
366
+ console.log(` ✓ ${skillCounts.agents} agent personas updated`);
402
367
  }
403
368
 
404
369
  // MCP infrastructure: deploy mcps/ subdirectories, registry, and
@@ -436,7 +401,18 @@ export async function update() {
436
401
  }
437
402
  }
438
403
 
439
- console.log(" ✓ MCP infrastructure updated (profiles, stacks, scripts, arka-prompts server)");
404
+ // arka-tools server (F2-3) mirrors the same block in installSkill().
405
+ const mcpToolsSrc = join(mcpsSrc, "arka-tools");
406
+ const mcpToolsDest = join(skillsBase, "arka", "mcp-tools");
407
+ if (existsSync(mcpToolsSrc)) {
408
+ if (!existsSync(mcpToolsDest)) mkdirSync(mcpToolsDest, { recursive: true });
409
+ for (const f of ["server.py", "pyproject.toml"]) {
410
+ const src = join(mcpToolsSrc, f);
411
+ if (existsSync(src)) copyFileSync(src, join(mcpToolsDest, f));
412
+ }
413
+ }
414
+
415
+ console.log(" ✓ MCP infrastructure updated (profiles, stacks, scripts, arka-prompts + arka-tools servers)");
440
416
 
441
417
  // Higgsfield MCP is registered but requires an account + API key to connect.
442
418
  // Non-blocking warning: the update succeeds even without a Higgsfield account.
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "_meta": {
3
3
  "version": "3.0.0",
4
- "generated": "2026-07-09T15:18:25Z",
5
- "total_commands": 262,
4
+ "generated": "2026-07-10T13:12:22Z",
5
+ "total_commands": 269,
6
6
  "generator": "core/registry/generator.py",
7
7
  "departments": {
8
- "arka": 19,
8
+ "arka": 21,
9
9
  "brand": 12,
10
10
  "community": 14,
11
- "content": 14,
11
+ "content": 19,
12
12
  "dev": 36,
13
13
  "ecom": 18,
14
14
  "fin": 10,
@@ -317,6 +317,44 @@
317
317
  "requires_branch": false,
318
318
  "modifies_code": false
319
319
  },
320
+ {
321
+ "id": "arka-refine",
322
+ "command": "/arka refine <rough idea>",
323
+ "department": "arka",
324
+ "description": "Turn a vague or domain-unfamiliar ask into a precise English prompt by asking about the topic first (arka-refine). Auto-suggested on vague requests.",
325
+ "lead_agent": "arka",
326
+ "keywords": [],
327
+ "examples": [],
328
+ "source": "builtin",
329
+ "tier": 2,
330
+ "requires_branch": false,
331
+ "modifies_code": false
332
+ },
333
+ {
334
+ "id": "arka-recipes",
335
+ "command": "/arka recipes [list\\|show\\|apply] <slug>",
336
+ "department": "arka",
337
+ "description": "Reuse validated QG-approved feature builds (arka-recipes). Synapse L7.6 auto-surfaces matches.",
338
+ "lead_agent": "arka",
339
+ "keywords": [
340
+ "recipe",
341
+ "recipes",
342
+ "receita",
343
+ "reuse",
344
+ "validated build",
345
+ "apply recipe",
346
+ "feature template"
347
+ ],
348
+ "examples": [
349
+ "que receitas temos",
350
+ "apply the laravel login recipe",
351
+ "reusa a receita de auth"
352
+ ],
353
+ "source": "builtin",
354
+ "tier": 2,
355
+ "requires_branch": false,
356
+ "modifies_code": false
357
+ },
320
358
  {
321
359
  "id": "do",
322
360
  "command": "/do <description>",
@@ -1213,6 +1251,135 @@
1213
1251
  "requires_branch": false,
1214
1252
  "modifies_code": false
1215
1253
  },
1254
+ {
1255
+ "id": "content-video",
1256
+ "command": "/content video <topic>",
1257
+ "department": "content",
1258
+ "description": "End-to-end video production (research → script → assets → render)",
1259
+ "lead_agent": "arka-content",
1260
+ "keywords": [
1261
+ "produce video",
1262
+ "video production",
1263
+ "produz um vídeo",
1264
+ "faz um vídeo",
1265
+ "edit video",
1266
+ "edita o vídeo",
1267
+ "render video",
1268
+ "monta o vídeo",
1269
+ "hyperframes"
1270
+ ],
1271
+ "examples": [
1272
+ "produz um vídeo sobre agentes de AI",
1273
+ "produce a video about our launch",
1274
+ "edita este vídeo com legendas e b-roll"
1275
+ ],
1276
+ "source": "builtin",
1277
+ "tier": 2,
1278
+ "requires_branch": false,
1279
+ "modifies_code": false
1280
+ },
1281
+ {
1282
+ "id": "content-trends",
1283
+ "command": "/content trends <niche>",
1284
+ "department": "content",
1285
+ "description": "Demand-first trend and niche analysis with STEPPS scoring",
1286
+ "lead_agent": "arka-content",
1287
+ "keywords": [
1288
+ "trends",
1289
+ "trending",
1290
+ "niche analysis",
1291
+ "análise de nicho",
1292
+ "que trends",
1293
+ "what's trending",
1294
+ "encontra um nicho",
1295
+ "trend hunt",
1296
+ "nichos"
1297
+ ],
1298
+ "examples": [
1299
+ "que trends há em fitness agora",
1300
+ "find me a profitable faceless niche",
1301
+ "analisa o nicho de finanças pessoais"
1302
+ ],
1303
+ "source": "builtin",
1304
+ "tier": 2,
1305
+ "requires_branch": false,
1306
+ "modifies_code": false
1307
+ },
1308
+ {
1309
+ "id": "content-research",
1310
+ "command": "/content research <topic>",
1311
+ "department": "content",
1312
+ "description": "Sourced research compiled into a production brief",
1313
+ "lead_agent": "arka-content",
1314
+ "keywords": [
1315
+ "research topic",
1316
+ "pesquisa o tema",
1317
+ "production brief",
1318
+ "brief de produção",
1319
+ "research for video",
1320
+ "pesquisa para o vídeo",
1321
+ "fact check topic"
1322
+ ],
1323
+ "examples": [
1324
+ "faz o research para o vídeo sobre LLMs",
1325
+ "research this topic with sources",
1326
+ "prepara o brief de produção do episódio 3"
1327
+ ],
1328
+ "source": "builtin",
1329
+ "tier": 2,
1330
+ "requires_branch": false,
1331
+ "modifies_code": false
1332
+ },
1333
+ {
1334
+ "id": "content-video-setup",
1335
+ "command": "/content video-setup",
1336
+ "department": "content",
1337
+ "description": "Video production environment bootstrap (Hyperframes, Agent-Reach, Higgsfield)",
1338
+ "lead_agent": "arka-content",
1339
+ "keywords": [
1340
+ "video setup",
1341
+ "setup video environment",
1342
+ "instala hyperframes",
1343
+ "configura produção de vídeo",
1344
+ "agent-reach setup",
1345
+ "video prerequisites"
1346
+ ],
1347
+ "examples": [
1348
+ "prepara o ambiente de produção de vídeo",
1349
+ "install hyperframes and agent-reach",
1350
+ "video-setup"
1351
+ ],
1352
+ "source": "builtin",
1353
+ "tier": 2,
1354
+ "requires_branch": false,
1355
+ "modifies_code": false
1356
+ },
1357
+ {
1358
+ "id": "content-shorts",
1359
+ "command": "/content shorts <niche>",
1360
+ "department": "content",
1361
+ "description": "Batch production of 3-5 rendered shorts with posting schedule",
1362
+ "lead_agent": "arka-content",
1363
+ "keywords": [
1364
+ "shorts batch",
1365
+ "produce shorts",
1366
+ "produz shorts",
1367
+ "reels batch",
1368
+ "tiktok batch",
1369
+ "faz-me uns shorts",
1370
+ "render shorts",
1371
+ "lote de shorts"
1372
+ ],
1373
+ "examples": [
1374
+ "produz um lote de 5 shorts sobre finanças",
1375
+ "produce a batch of shorts for the launch",
1376
+ "faz-me shorts desta masterclass"
1377
+ ],
1378
+ "source": "builtin",
1379
+ "tier": 2,
1380
+ "requires_branch": false,
1381
+ "modifies_code": false
1382
+ },
1216
1383
  {
1217
1384
  "id": "dev-feature",
1218
1385
  "command": "/dev feature <description>",