arkaos 5.17.0 → 5.17.2

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 (62) hide show
  1. package/README.md +2 -2
  2. package/THE-ARKAOS-GUIDE.md +2 -2
  3. package/VERSION +1 -1
  4. package/arka/SKILL.md +1 -1
  5. package/arka/skills/costs/SKILL.md +3 -3
  6. package/bin/arka-doctor +14 -8
  7. package/config/cognition/schedules.yaml +2 -2
  8. package/core/harness/drift.py +21 -10
  9. package/core/harness/manager.py +25 -5
  10. package/core/hooks/session_start.py +0 -26
  11. package/core/jobs/auto_doc_worker.py +34 -127
  12. package/core/runtime/claude_code.py +13 -1
  13. package/core/runtime/gateway/litellm_config.py +4 -3
  14. package/core/runtime/model_router.py +16 -10
  15. package/core/runtime/pricing.py +27 -5
  16. package/core/runtime/runtime_models.py +9 -7
  17. package/core/synapse/layers.py +92 -2
  18. package/dashboard/app/pages/models.vue +1 -1
  19. package/departments/content/SKILL.md +1 -0
  20. package/departments/content/skills/hyperframes/SKILL.md +95 -0
  21. package/departments/content/skills/video-produce/SKILL.md +27 -17
  22. package/departments/content/skills/video-setup/SKILL.md +26 -13
  23. package/harness/codex/AGENTS.md +2 -2
  24. package/harness/copilot/copilot-instructions.md +2 -2
  25. package/harness/cursor/rules/arkaos.mdc +3 -3
  26. package/harness/gemini/GEMINI.md +2 -2
  27. package/harness/opencode/AGENTS.md +2 -2
  28. package/harness/opencode/agents/arka-architect-gabriel.md +1 -1
  29. package/harness/opencode/agents/arka-brand-director-valentina.md +1 -1
  30. package/harness/opencode/agents/arka-cfo-helena.md +1 -1
  31. package/harness/opencode/agents/arka-chief-of-staff-afonso.md +1 -1
  32. package/harness/opencode/agents/arka-community-strategist-beatriz.md +1 -1
  33. package/harness/opencode/agents/arka-content-strategist-rafael.md +1 -1
  34. package/harness/opencode/agents/arka-conversion-strategist-ines.md +1 -1
  35. package/harness/opencode/agents/arka-coo-sofia.md +1 -1
  36. package/harness/opencode/agents/arka-copy-director-eduardo.md +1 -1
  37. package/harness/opencode/agents/arka-cqo-marta.md +1 -1
  38. package/harness/opencode/agents/arka-cto-marco.md +1 -1
  39. package/harness/opencode/agents/arka-design-ops-lead-iris.md +1 -1
  40. package/harness/opencode/agents/arka-ecom-director-ricardo.md +1 -1
  41. package/harness/opencode/agents/arka-knowledge-director-clara.md +1 -1
  42. package/harness/opencode/agents/arka-leadership-director-rodrigo.md +1 -1
  43. package/harness/opencode/agents/arka-marketing-director-luna.md +1 -1
  44. package/harness/opencode/agents/arka-ops-lead-daniel.md +1 -1
  45. package/harness/opencode/agents/arka-pm-director-carolina.md +1 -1
  46. package/harness/opencode/agents/arka-revops-lead-vicente.md +1 -1
  47. package/harness/opencode/agents/arka-saas-strategist-tiago.md +1 -1
  48. package/harness/opencode/agents/arka-sales-director-miguel.md +1 -1
  49. package/harness/opencode/agents/arka-strategy-director-tomas.md +1 -1
  50. package/harness/opencode/agents/arka-tech-director-francisca.md +1 -1
  51. package/harness/opencode/agents/arka-tech-lead-paulo.md +1 -1
  52. package/harness/opencode/agents/arka-video-producer-simao.md +1 -1
  53. package/harness/zed/.rules +2 -2
  54. package/installer/doctor.js +18 -6
  55. package/installer/fallback-model.js +80 -29
  56. package/installer/index.js +7 -4
  57. package/installer/update.js +5 -2
  58. package/knowledge/commands-keywords.json +29 -2
  59. package/knowledge/commands-registry.json +41 -5
  60. package/knowledge/skills-manifest.json +14 -1
  61. package/package.json +1 -1
  62. package/pyproject.toml +1 -1
@@ -6,7 +6,8 @@ their public per-token pricing. It is used to compute an optional
6
6
  any model-selection logic — that is explicitly forbidden by the
7
7
  LLM-agnostic contract.
8
8
 
9
- Snapshot 2026-09-03 (Runtime Sync PR-2): values sourced from the public
9
+ Snapshot 2026-09-03 (Runtime Sync PR-2), Opus 5.5 rows added 2026-09-22:
10
+ values sourced from the public
10
11
  Anthropic pricing page (https://platform.claude.com/docs/en/about-claude/pricing) and
11
12
  OpenAI (https://openai.com/api/pricing). Refresh when model families
12
13
  change. Unknown models return `None` from `estimate_cost_usd` and are
@@ -61,11 +62,32 @@ PRICING: dict[str, dict[str, float]] = {
61
62
  "cache_read": 1.00,
62
63
  "cache_write": 12.50,
63
64
  },
64
- # Snapshot 2026-08-09 (Gate Economy PR-8): drop-in at Opus 4.8's
65
- # rates per the official model catalog — 1M context is the default
66
- # with NO long-context premium, so the [1m] alias prices the same.
67
- # This row was missing while claude-opus-5 carried 28% of weekly
65
+ # Snapshot 2026-09-22 (Opus 5.5 sweep): $4 / $20 per MTok and cache
66
+ # reads at $0.20 (0.05x input) per the public pricing page; the Claude
67
+ # Code 2.1.280 alias `opus` resolves here, so this is the lane every
68
+ # `model: opus` agent runs on. cache_write is NOT published yet: 5.00
69
+ # is the standard 1.25x five-minute multiplier — the same assumption
70
+ # the Fable 5.1 row shipped with — replace it when the page lists it.
71
+ # 1M context is native; the [1m] alias prices the same.
72
+ "claude-opus-5-5": {
73
+ "input": 4.00,
74
+ "output": 20.00,
75
+ "cache_read": 0.20,
76
+ "cache_write": 5.00,
77
+ },
78
+ "claude-opus-5-5[1m]": {
79
+ "input": 4.00,
80
+ "output": 20.00,
81
+ "cache_read": 0.20,
82
+ "cache_write": 5.00,
83
+ },
84
+ # History — snapshot 2026-08-09 (Gate Economy PR-8): drop-in at Opus
85
+ # 4.8's rates per the official model catalog — 1M context is the
86
+ # default with NO long-context premium, so the [1m] alias prices the
87
+ # same. The row was missing while claude-opus-5 carried 28% of weekly
68
88
  # input tokens, pricing them at $0.00 and blinding the CostGovernor.
89
+ # Retained so 2026-08/09 sessions stay priced; the live lane is
90
+ # claude-opus-5-5 above.
69
91
  "claude-opus-5": {
70
92
  "input": 5.00,
71
93
  "output": 25.00,
@@ -3,14 +3,16 @@
3
3
  The Model Fabric ``runtime`` provider shells out to the active CLI. This
4
4
  module lists the concrete models that CLI accepts, with human labels and
5
5
  tier, so the dashboard dropdown and ``/arka-fusion`` can offer real
6
- choices (Fable 5.1, Opus 5, Sonnet 5) instead of only the abstract
6
+ choices (Fable 5.1, Opus 5.5, Sonnet 5) instead of only the abstract
7
7
  best/default/fast aliases. Haiku is deliberately absent: the weakest
8
8
  lane ArkaOS routes to is Sonnet 5 (operator decision, Runtime Sync 2026-09-03).
9
9
 
10
- Model IDs verified against the Claude Code changelog 2.1.257 (2026-09-01)
11
- and the model-config reference (2026-09). This is the single place they
12
- are hand-listed — update HERE when the runtime
13
- ships new models; the dashboard and CLI read from this module. Codex /
10
+ Model IDs verified against the Claude Code 2.1.280 alias table (2026-09-22:
11
+ `opus` → claude-opus-5-5) and the model-config reference (2026-09). This is the single place
12
+ the picker catalogue is hand-listed — update HERE when the runtime ships new
13
+ models; the dashboard and CLI read from this module. The ids also live in
14
+ pricing.py, model_router.py, claude_code.py, gateway/litellm_config.py and
15
+ installer/fallback-model.js (one sweep touches all six). Codex /
14
16
  Gemini / Cursor models are left empty on purpose: we do not hardcode
15
17
  another vendor's catalogue, and the UI falls back to a free-text field
16
18
  so the user types the exact id their runtime accepts.
@@ -24,8 +26,8 @@ from __future__ import annotations
24
26
  CLAUDE_CODE_MODELS: list[dict[str, str]] = [
25
27
  {"value": "claude-fable-5-1", "label": "Fable 5.1", "tier": "frontier",
26
28
  "note": "most capable — 1M context, cache reads $0.25/MTok"},
27
- {"value": "opus", "label": "Opus 5", "tier": "frontier",
28
- "note": "frontier"},
29
+ {"value": "opus", "label": "Opus 5.5", "tier": "frontier",
30
+ "note": "frontier — $4/$20 per MTok, cache reads $0.20"},
29
31
  {"value": "sonnet", "label": "Sonnet 5", "tier": "balanced",
30
32
  "note": "balanced speed/quality — also the mechanical lane"},
31
33
  ]
@@ -21,6 +21,7 @@ layers_kb.py. Both are re-exported here so existing
21
21
  `core.synapse.layers` imports keep working.
22
22
  """
23
23
 
24
+ import os
24
25
  import re
25
26
  import time
26
27
  from typing import Any
@@ -412,6 +413,24 @@ def _hub_skill(department: str) -> str:
412
413
  return _DEPT_HUB_EXCEPTIONS.get(department, f"arka-{department}")
413
414
 
414
415
 
416
+ # Project-shape signals: a cwd carrying ANY of these file groups (every
417
+ # file in a group present) forces the command's hint regardless of the
418
+ # prompt text — "working inside a Hyperframes project" is a route.
419
+ PROJECT_SIGNALS: dict[str, tuple[tuple[str, ...], ...]] = {
420
+ "content-hyperframes": (
421
+ ("hyperframes.json",),
422
+ ("BRIEF.md", "STORYBOARD.md"),
423
+ ),
424
+ }
425
+
426
+ # The score slot exists only so signal entries share the
427
+ # (score, command, department) tuple shape of _score_commands. Nothing
428
+ # sorts on it in the merge path: _hint_tag and compute discard the score,
429
+ # and precedence comes from _merge_hints concatenating signal entries
430
+ # before the keyword ones.
431
+ _SIGNAL_SCORE = 10_000
432
+
433
+
415
434
  def _hint_department(cmd: dict) -> str:
416
435
  """Department for the hint's hub skill.
417
436
 
@@ -426,8 +445,63 @@ def _hint_department(cmd: dict) -> str:
426
445
  return prefix.split("-")[0]
427
446
 
428
447
 
448
+ def _group_present(cwd: str, group: tuple[str, ...]) -> bool:
449
+ """True when EVERY file of the group sits directly in ``cwd``."""
450
+ return all(os.path.isfile(os.path.join(cwd, name)) for name in group)
451
+
452
+
453
+ def _project_signal_ids(cwd: str) -> list[str]:
454
+ """Registry command ids whose project shape matches the hook cwd.
455
+
456
+ Looks at ``cwd`` itself only — no parent walk — and never raises:
457
+ ``PromptContext.cwd`` is typed ``str``, and for str input the
458
+ ``os.path`` predicates (``isdir``/``isfile``) are exception-free —
459
+ they swallow OSError and ValueError internally — so an empty cwd, a
460
+ directory that does not exist, or an unreadable path yields no signal
461
+ and L5 degrades to plain keyword scoring. No try/except is needed.
462
+ """
463
+ if not cwd or not os.path.isdir(cwd):
464
+ return []
465
+ return [
466
+ cmd_id
467
+ for cmd_id, groups in PROJECT_SIGNALS.items()
468
+ if any(_group_present(cwd, group) for group in groups)
469
+ ]
470
+
471
+
472
+ def _signal_commands(
473
+ commands: list[dict[str, Any]], ids: list[str]
474
+ ) -> list[tuple[int, str, str]]:
475
+ """Scored tuples for the signalled ids, shaped like _score_commands.
476
+
477
+ An id the registry does not carry is skipped in silence: a signal
478
+ may only surface a command that actually exists, never invent one.
479
+ """
480
+ wanted = set(ids)
481
+ return [
482
+ (_SIGNAL_SCORE, cmd.get("command", ""), _hint_department(cmd))
483
+ for cmd in commands
484
+ if cmd.get("id") in wanted
485
+ ]
486
+
487
+
488
+ def _merge_hints(
489
+ signal: list[tuple[int, str, str]],
490
+ keyword: list[tuple[int, str, str]],
491
+ ) -> list[tuple[int, str, str]]:
492
+ """Signal hints first, keyword hints after, de-duped by command text."""
493
+ seen: set[str] = set()
494
+ merged: list[tuple[int, str, str]] = []
495
+ for entry in [*signal, *keyword]:
496
+ if entry[1] in seen:
497
+ continue
498
+ seen.add(entry[1])
499
+ merged.append(entry)
500
+ return merged
501
+
502
+
429
503
  def _score_commands(
430
- commands: list[dict], text: str
504
+ commands: list[dict[str, Any]], text: str
431
505
  ) -> list[tuple[int, str, str]]:
432
506
  """Keyword-score the registry commands against the prompt text,
433
507
  best score first; zero-score commands never qualify."""
@@ -468,6 +542,17 @@ class CommandHintsLayer(Layer):
468
542
  the route. The old `[hint:/cmd]` form was declarative and routinely
469
543
  ignored: the model announced the squad in prose and the skill's
470
544
  content never entered context.
545
+
546
+ Beyond the prompt words, the layer routes by PROJECT SHAPE: when the
547
+ hook cwd carries the files that identify a project kind
548
+ (``PROJECT_SIGNALS`` — e.g. a Hyperframes video-as-code project ships
549
+ ``hyperframes.json``, or ``BRIEF.md`` + ``STORYBOARD.md``), that
550
+ command is hinted even when the prompt matches no keyword. An
551
+ operator standing inside such a project asks "render the intro" or
552
+ "muda o segundo plano" — vocabulary the registry cannot enumerate —
553
+ and keyword-only scoring left the specialist route silent while the
554
+ generic assistant answered. Signal hints lead the merged list and the
555
+ top-2 cap still holds, so a signal costs at most one keyword slot.
471
556
  """
472
557
 
473
558
  def __init__(self, commands: list[dict] | None = None) -> None:
@@ -510,7 +595,12 @@ class CommandHintsLayer(Layer):
510
595
  cached=False,
511
596
  )
512
597
 
513
- top = _score_commands(self._commands, text)[:2]
598
+ signal = _signal_commands(
599
+ self._commands, _project_signal_ids(ctx.cwd)
600
+ )
601
+ top = _merge_hints(
602
+ signal, _score_commands(self._commands, text)
603
+ )[:2]
514
604
  hints = [command for _, command, _ in top]
515
605
 
516
606
  tags = _hint_tag(top)
@@ -128,7 +128,7 @@ const targetOptions = computed(() => {
128
128
  const o = overview.value
129
129
  if (!o) return []
130
130
  const options: { label: string, value: string }[] = []
131
- // Concrete runtime models first (Fable 5.1, Opus 5, Sonnet 5) so the
131
+ // Concrete runtime models first (Fable 5.1, Opus 5.5, Sonnet 5) so the
132
132
  // operator picks a real model, not just an abstract alias.
133
133
  for (const m of o.runtime?.models ?? []) {
134
134
  options.push({ label: `runtime / ${m.label} · ${m.note}`, value: `runtime/${m.value}` })
@@ -38,6 +38,7 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
38
38
  | `/content calendar <period>` | Content calendar with themes and batching | Focused |
39
39
  | `/content thumbnail <video>` | Thumbnail + title packaging (A/B variants) | Specialist |
40
40
  | `/content video <topic>` | End-to-end video production (research → script → assets → render) | Enterprise |
41
+ | `/content hyperframes <task>` | Direct Hyperframes work: compose, animate, caption, port, render and review a video-as-code project | Specialist |
41
42
  | `/content trends <niche>` | Demand-first trend and niche analysis with STEPPS scoring | Specialist |
42
43
  | `/content research <topic>` | Sourced research compiled into a production brief | Focused |
43
44
  | `/content video-setup` | Video production environment bootstrap (Hyperframes, Agent-Reach, Higgsfield) | Specialist |
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: content/hyperframes
3
+ description: >
4
+ Direct Hyperframes work — video-as-code in HTML/CSS/JS + GSAP rendered to a
5
+ deterministic MP4 — on a new or existing project: compose, animate, keyframe,
6
+ caption, mix audio, port from Remotion, import from Figma, render, preview,
7
+ publish, batch-render. Loads the /hyperframes router FIRST and wraps it in the
8
+ ArkaOS doctrine (Simão owns it, [arka:design] marker on compositions,
9
+ dev/watch review of the render, Quality Gate). TRIGGER: "/content
10
+ hyperframes", "renderiza o vídeo", "render this composition", "ajusta os
11
+ keyframes", "adiciona legendas embutidas", "motion graphic", "title card",
12
+ "lower third", "converte este projeto Remotion", "importa do Figma para
13
+ vídeo", "slideshow", "faceless explainer", "explainer sem rosto", any cwd
14
+ holding hyperframes.json or BRIEF.md + STORYBOARD.md (Synapse L5 project
15
+ signal — inside a running /content video pipeline the pipeline keeps
16
+ ownership and calls this skill at its edit/render phase). SKIP: brief-to-MP4
17
+ production with research, script and asset generation -> content/video-produce
18
+ (its edit/render phase loads this skill); one-off environment install
19
+ -> content/video-setup; watching or analysing a video -> dev/watch;
20
+ scroll-driven website from a video -> dev/animated-website.
21
+ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, Skill, WebFetch]
22
+ metadata:
23
+ origin: arkaos
24
+ ---
25
+
26
+ <!-- arka:kb-first-prefix begin -->
27
+ > **KB-first:** query `mcp__obsidian__search_notes` (and
28
+ > `mcp__graphify__query_graph` when configured) and cite `[[wikilinks]]`
29
+ > or graph nodes — or declare the gap — BEFORE any external research.
30
+ > Full doctrine: `arka/SKILL.md` (KB-First Research).
31
+ <!-- arka:kb-first-prefix end -->
32
+
33
+ # Hyperframes — `/content hyperframes <task>`
34
+
35
+ > **Agent:** Simão (Video Producer) | **Engine:** Hyperframes by HeyGen (Apache-2.0) — core skills under `~/.claude/skills/`, creation workflows installed on demand by the router
36
+ > **Rule:** the `/hyperframes` router owns the workflow; this skill owns the ArkaOS ceremony around it. Never reconstruct Hyperframes from memory.
37
+
38
+ ## Phase 0 — Preflight (one command, always)
39
+
40
+ ```
41
+ npx hyperframes skills check
42
+ ```
43
+
44
+ | Result | Action |
45
+ |---|---|
46
+ | `N current`, nothing outdated | proceed |
47
+ | `↑ outdated` listed | `npx hyperframes skills update` refreshes the core set and every skill already installed; it never installs a workflow that is absent. The router installs that one when it picks it, with `npx hyperframes skills update <workflow>` |
48
+ | `~/.claude/skills/hyperframes/SKILL.md` missing | STOP with exactly "Hyperframes não instalado — corre /content video-setup". Never improvise the format. |
49
+ | `node --version` below 22, or no `ffmpeg` | STOP and print the platform install line — `content/video-setup` owns installs, this skill never mutates system packages |
50
+
51
+ ## Phase 1 — Load the router, then follow it
52
+
53
+ Invoke `Skill(hyperframes)` FIRST. It resumes project state (`BRIEF.md`, `hyperframes.json`, `STORYBOARD.md`), runs the intent interview for fresh creation, picks the owning workflow from its route table and installs it. Two ArkaOS constraints on top:
54
+
55
+ - A specific operation on an existing project (inspect, diagnose, validate, preview, render, publish, batch-render): the router loads `/hyperframes-cli` — do that operation and nothing else.
56
+ - Fresh creation: the interview ends by writing `BRIEF.md`. Read the marketing context first (KB-first: `WizardingCode/Marketing/product-marketing.md` in Obsidian, else the project-local `.agents/product-marketing.md`) so the brief carries the real positioning, never an invented one.
57
+
58
+ ## Phase 2 — Compose under the design doctrine
59
+
60
+ A Hyperframes composition is `.html`, so the frontend excellence gate applies exactly as it does to UI (constitution `excellence-mandate`, `core/workflow/frontend_gate.py`). Before the first Write/Edit of a composition emit the structured marker on a line of its own:
61
+
62
+ ```
63
+ [arka:design] benchmark=<named reference: Linear launch films, Vercel Ship keynote, Stripe Sessions…> skills=hyperframes,hyperframes-core,hyperframes-animation,<hyperframes-creative|hyperframes-keyframes|hyperframes-audio as loaded> tokens=<brand tokens path|none>
64
+ ```
65
+
66
+ - ArkaOS-branded output follows The Assembly v1.1 (`docs/design/brand-assembly/`, skill `arkaos-design`): zinc + rose, Signal used sparingly, Space Grotesk / IBM Plex — `tokens=` points there.
67
+ - Client work: `tokens=` points at the project's design-system document (`project-design-system-prerequisite`): no document, no composition — extract it first with `/brand design-system`.
68
+ - Anti-default: no template title cards, no stock easing on every element, no "AI video" look. GSAP timelines with labels and position parameters (Simão's framework): load `dev/gsap` for GSAP itself (`references/timeline.md` for timelines, labels and position parameters; `references/core.md` for tweens and easing; `references/plugins.md` for kinetic type and SplitText; `references/performance.md` before the render) — upstream `hyperframes-animation` covers the Hyperframes-specific timing; it does not replace it. Word-level captions through `/embedded-captions` whenever there is speech.
69
+ - Assets: `/media-use` resolves BGM, SFX, images and logos from licensed sources before anything is downloaded. Generated assets come from Higgsfield (`content/image-create`, `generate_video`); credits are metered — never regenerate in a loop without explicit approval.
70
+
71
+ ## Phase 3 — Render and review with evidence
72
+
73
+ 1. Render through the router / `/hyperframes-cli` (`npx hyperframes render …`). Keep the command and exit code on record (G3 of the evidence flow).
74
+ 2. Review the render with `dev/watch` on the output MP4: complete frames + timestamped transcript. Judge the hook (first 3 s), pacing, caption accuracy, audio sync, aspect ratio, brand fidelity. Screenshots are not evidence; frames are.
75
+ 3. Loop on defects. A reshoot the review demands is never blocked by time or token cost; the CostGovernor budget is the only ceiling.
76
+
77
+ ## Phase 4 — Quality Gate and delivery
78
+
79
+ Marta orchestrates Eduardo (on-screen copy, captions, description) and Francisca (render spec, determinism, composition code quality). Binary verdict. Deliver the master MP4, the per-platform reframes the brief asked for, the SRT when captions exist, and the `[arka:design]` line plus review notes in the delivery summary. Output goes to Obsidian `WizardingCode/Content/Video/<date>-<slug>/` (or the client project's vault path).
80
+
81
+ ## Never
82
+
83
+ - Never load `/hyperframes` when the preflight fails, and never guess what Hyperframes is.
84
+ - Never bypass the router's route table with a hand-picked workflow "because it looks right" — the router reads `references/routes/<workflow>.md` and decides.
85
+ - Never ship a render nobody watched.
86
+ - Never install Hyperframes skills from a marketplace other than `heygen-com/hyperframes`; third-party "video" skills that wrap paid engines or hook every `*video*` skill are rejected by decision (spec `hyperframes-routing`).
87
+
88
+ ## Examples
89
+
90
+ ```
91
+ /content hyperframes "renderiza o projeto em ./launch-film e revê o resultado"
92
+ /content hyperframes "adiciona legendas embutidas word-level ao talking head em ./ep03"
93
+ /content hyperframes "converte a composição Remotion em ./remotion-intro para Hyperframes"
94
+ /content hyperframes "motion graphic de 8 s com o número 30K a subir, brand ArkaOS"
95
+ ```
@@ -11,7 +11,9 @@ description: >
11
11
  videos -> /content shorts (content-shorts-produce workflow); short-form
12
12
  scripting only -> /content short (content/short-form); one-off
13
13
  environment setup ->
14
- content/video-setup; YouTube channel strategy -> content/youtube-strategy.
14
+ content/video-setup; direct work on an existing Hyperframes project
15
+ (render, keyframes, captions, port) -> content/hyperframes; YouTube channel
16
+ strategy -> content/youtube-strategy.
15
17
  allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
16
18
  metadata:
17
19
  origin: community
@@ -45,7 +47,7 @@ tier PER CAPABILITY. Print the matrix, state the tiers chosen, proceed
45
47
  | Capability | Full | Degraded | Manual |
46
48
  |---|---|---|---|
47
49
  | Asset generation | Higgsfield MCP (`generate_image/video/audio`, `create_voice`, `motion_control`, `upscale`) | `arka-comfyui` local | asset brief: engine-ready prompts per shot |
48
- | Edit / render | Hyperframes skills (Node 22 + FFmpeg; load `/hyperframes` router) | Higgsfield `explainer_video` / `shorts_studio` server-side | edit-ready package: script + assets + shot list/EDL + SRT captions |
50
+ | Edit / render | Hyperframes skills (Node 22 + FFmpeg; via `content/hyperframes`) | Higgsfield `explainer_video` / `shorts_studio` server-side | edit-ready package: script + assets + shot list/EDL + SRT captions |
49
51
  | Research | agent-reach | firecrawl + WebSearch | KB-only |
50
52
 
51
53
  ## Pipeline (gates match the content-video workflow)
@@ -70,22 +72,29 @@ tier PER CAPABILITY. Print the matrix, state the tiers chosen, proceed
70
72
  `upscale`/`reframe`. → **user approval on generated assets —
71
73
  Higgsfield credits are metered; NEVER regenerate in a loop without
72
74
  explicit approval.**
73
- 6. **Edit / render** — PREFLIGHT (one line, mandatory before the Full
74
- tier): if `ls ~/.claude/skills | grep -qi hyperframes` fails, STOP
75
- with the exact message "Hyperframes não instalado — corre
76
- /content video-setup" — NEVER load `/hyperframes` blind or improvise
77
- what Hyperframes might be. (Tier degradation is a Phase 0 decision;
78
- reaching this step on the Full tier with the skills missing means
79
- setup drift: the honest move is the stop + fix command, or an
75
+ 6. **Edit / render** — PREFLIGHT (one command, mandatory before the Full
76
+ tier): `npx hyperframes skills check`. It must report 0 outdated.
77
+ Outdated listed: run `npx hyperframes skills update` and re-check;
78
+ still outdated: treat it as setup drift (below). Skills missing
79
+ (`~/.claude/skills/hyperframes/SKILL.md` absent): STOP with the exact
80
+ message "Hyperframes não instalado — corre /content video-setup" —
81
+ NEVER load `/hyperframes` blind or improvise what Hyperframes might
82
+ be. (Tier degradation is a Phase 0 decision;
83
+ reaching this step on the Full tier with the skills missing or stale
84
+ means setup drift: the honest move is the stop + fix command, or an
80
85
  explicitly re-stated downgrade to the Degraded/Manual tier.)
81
- Full tier: load the `/hyperframes` router skill, pick the
82
- workflow (`/talking-head-recut`, `/faceless-explainer`,
83
- `/product-launch-video`…), compose in HTML+GSAP (load `dev/gsap` —
84
- `references/core.md` + `references/timeline.md` for motion graphics; `references/plugins.md` for kinetic
85
- type/SplitText), add word-level captions (`/embedded-captions`),
86
- render MP4. Degraded tier: hand assets+script to Higgsfield
87
- `explainer_video`/`shorts_studio`. Manual tier: assemble the
88
- edit-ready package and say exactly what a human editor gets.
86
+ Full tier: run `content/hyperframes` — it loads the `/hyperframes`
87
+ router, which picks the workflow (`/talking-head-recut`,
88
+ `/faceless-explainer`, `/product-launch-video`…), and it owns the
89
+ ArkaOS ceremony around the composition: the structured `[arka:design]`
90
+ marker before any `.html` is written, GSAP timelines with labels and
91
+ position params for motion graphics, word-level captions via
92
+ `/embedded-captions`, and the `dev/watch` review of the render. The
93
+ pipeline keeps ownership of the project directory; the skill is its
94
+ edit/render phase, not a second pipeline. Degraded tier: hand
95
+ assets+script to Higgsfield `explainer_video`/`shorts_studio`. Manual
96
+ tier: assemble the edit-ready package and say exactly what a human
97
+ editor gets.
89
98
  7. **Virality QA** — STEPPS audit pre-publish (Filipe) +
90
99
  `virality_predictor`/`video_analysis` when Higgsfield is live
91
100
  (hook strength, retention risk) + technical QC (sync, caption
@@ -321,6 +330,7 @@ requests — so no manual editing step is required.
321
330
  - **`content/short-form`** — short-form scripting and batches
322
331
  - **`content/youtube-strategy`** — YouTube channel strategy
323
332
  - **`content/video-setup`** — one-off environment setup
333
+ - **`content/hyperframes`** — direct work on a Hyperframes project (the Full-tier edit/render phase runs it)
324
334
  - **`mkt/social-strategy`** — video content strategy and what to post
325
335
  - **`mkt/paid-campaign`** — paid video ad creative and iteration
326
336
  - **`landing/copy-framework`** — video scripts and messaging
@@ -8,7 +8,8 @@ description: >
8
8
  "prepara o ambiente de vídeo", "instala o hyperframes", "configura a
9
9
  produção de vídeo", "video production setup". SKIP: actually producing
10
10
  a video -> content/video-produce (it preflights non-interactively and
11
- degrades); general MCP setup -> /arka keys or apply-mcps.
11
+ degrades); direct work on an existing Hyperframes project ->
12
+ content/hyperframes; general MCP setup -> /arka keys or apply-mcps.
12
13
  allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
13
14
  ---
14
15
 
@@ -29,25 +30,37 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
29
30
  |---|---|---|
30
31
  | Node.js 22+ | `node --version` | Hyperframes rendering |
31
32
  | FFmpeg | `ffmpeg -version` | encode/cut + transcription |
32
- | Hyperframes skills | `ls ~/.claude/skills/ \| grep -i hyperframes` | video-as-code editing |
33
+ | Hyperframes skills (installed AND fresh) | `npx hyperframes skills check` — 0 outdated required; when `npx hyperframes` cannot run (offline), the sentinel `ls ~/.claude/skills/hyperframes/SKILL.md` proves installed, not fresh | video-as-code editing |
33
34
  | Agent-Reach | `agent-reach doctor` | trend/research platform pulls |
34
35
  | Higgsfield key | `HIGGSFIELD_API_KEY` in env or `~/.arkaos/keys.json` | generation engine (MCP) |
35
36
 
36
- `npx arkaos doctor` runs the same five checks (warn-only) from the
37
- installer side — this skill is the interactive fix path.
37
+ `npx arkaos doctor` runs the same five checks (warn-only; its Hyperframes
38
+ row is the installed sentinel only — freshness is this skill's job) from the
39
+ installer side; this skill is the interactive fix path.
38
40
 
39
41
  ## Install steps — EACH gated on explicit user confirmation, never silent
40
42
 
41
- 1. **Hyperframes skills** (free, Apache-2.0, HeyGen):
43
+ 1. **Hyperframes skills** (free, Apache-2.0, HeyGen). Interactive install —
44
+ select **Core Skills**; the `/hyperframes` router lazy-installs the
45
+ creation workflow a request needs (`/product-launch-video`,
46
+ `/faceless-explainer`, `/talking-head-recut`, `/motion-graphics`,
47
+ `/embedded-captions`, `/media-use`…):
42
48
  ```
43
- npx skills add heygen-com/hyperframes --full-depth --yes
49
+ npx skills add heygen-com/hyperframes
44
50
  ```
45
- `--full-depth` is MANDATORY — without it the skills registry serves a
46
- stale snapshot that lags the upstream main branch. Installs ~20
47
- skills including the `/hyperframes` router, `/talking-head-recut`,
48
- `/faceless-explainer`, `/product-launch-video`, `/motion-graphics`,
49
- `/embedded-captions`, `/media-use`. Keep fresh later with
50
- `npx hyperframes skills update <workflow>`.
51
+ Non-interactive install or refresh (agent, CI) of the core set plus every
52
+ Hyperframes skill already present on the machine:
53
+ ```
54
+ npx hyperframes skills update
55
+ ```
56
+ Freshness is a first-class check: `npx hyperframes skills check` lists
57
+ outdated skills, and the preflight row must read 0 outdated, not merely
58
+ "installed". Skills land in `~/.claude/skills/` and `~/.agents/skills/`
59
+ (the CLI links them into every detected agent). To install every
60
+ published workflow up front — only for a machine that must work offline
61
+ across every workflow — run `npx hyperframes skills`: it installs the
62
+ complete published set, not just the core. Upstream doc:
63
+ hyperframes.heygen.com.
51
64
  2. **Agent-Reach CLI** (MIT, beta — THIRD-PARTY GitHub code, NOT on
52
65
  PyPI): the package `agent-reach` does NOT exist in any registry —
53
66
  `pipx install agent-reach` / `uv tool install agent-reach` fail with
@@ -100,4 +113,4 @@ hardcoded to a single external backend).
100
113
 
101
114
  Setup report: preflight table, what was installed (with user consent
102
115
  noted per step), the capability matrix, and the exact next command to
103
- try (`/content video <topic>`).
116
+ try (`/content video <topic>` for a brief-to-MP4 run, `/content hyperframes <task>` for direct work on a Hyperframes project).
@@ -1,6 +1,6 @@
1
1
  # ArkaOS — The Operating System for AI Agent Teams
2
2
 
3
- > v5.16.1 — 89 agents, 17 departments, 340 skills. Generated by `scripts/harness_gen.py`; do not edit.
3
+ > v5.17.1 — 89 agents, 17 departments, 341 skills. Generated by `scripts/harness_gen.py`; do not edit.
4
4
 
5
5
  You are operating within ArkaOS. Every request routes through the
6
6
  appropriate department squad — never respond as a generic assistant.
@@ -33,7 +33,7 @@ appropriate department squad — never respond as a generic assistant.
33
33
  | `/pm` | Carolina | 12 |
34
34
  | `/saas` | Tiago | 15 |
35
35
  | `/landing` | Ines | 17 |
36
- | `/content` | Rafael | 20 |
36
+ | `/content` | Rafael | 21 |
37
37
  | `/community` | Beatriz | 15 |
38
38
  | `/sales` | Miguel | 13 |
39
39
  | `/lead` | Rodrigo | 10 |
@@ -1,6 +1,6 @@
1
1
  # ArkaOS — The Operating System for AI Agent Teams
2
2
 
3
- > v5.16.1 — 89 agents, 17 departments, 340 skills. Generated by `scripts/harness_gen.py`; do not edit.
3
+ > v5.17.1 — 89 agents, 17 departments, 341 skills. Generated by `scripts/harness_gen.py`; do not edit.
4
4
 
5
5
  You are operating within ArkaOS. Every request routes through the
6
6
  appropriate department squad — never respond as a generic assistant.
@@ -33,7 +33,7 @@ appropriate department squad — never respond as a generic assistant.
33
33
  | `/pm` | Carolina | 12 |
34
34
  | `/saas` | Tiago | 15 |
35
35
  | `/landing` | Ines | 17 |
36
- | `/content` | Rafael | 20 |
36
+ | `/content` | Rafael | 21 |
37
37
  | `/community` | Beatriz | 15 |
38
38
  | `/sales` | Miguel | 13 |
39
39
  | `/lead` | Rodrigo | 10 |
@@ -1,11 +1,11 @@
1
1
  ---
2
- description: ArkaOS v5.16.1 agent-team contract
2
+ description: ArkaOS v5.17.1 agent-team contract
3
3
  alwaysApply: true
4
4
  ---
5
5
 
6
6
  # ArkaOS — The Operating System for AI Agent Teams
7
7
 
8
- > v5.16.1 — 89 agents, 17 departments, 340 skills. Generated by `scripts/harness_gen.py`; do not edit.
8
+ > v5.17.1 — 89 agents, 17 departments, 341 skills. Generated by `scripts/harness_gen.py`; do not edit.
9
9
 
10
10
  You are operating within ArkaOS. Every request routes through the
11
11
  appropriate department squad — never respond as a generic assistant.
@@ -38,7 +38,7 @@ appropriate department squad — never respond as a generic assistant.
38
38
  | `/pm` | Carolina | 12 |
39
39
  | `/saas` | Tiago | 15 |
40
40
  | `/landing` | Ines | 17 |
41
- | `/content` | Rafael | 20 |
41
+ | `/content` | Rafael | 21 |
42
42
  | `/community` | Beatriz | 15 |
43
43
  | `/sales` | Miguel | 13 |
44
44
  | `/lead` | Rodrigo | 10 |
@@ -1,6 +1,6 @@
1
1
  # ArkaOS — The Operating System for AI Agent Teams
2
2
 
3
- > v5.16.1 — 89 agents, 17 departments, 340 skills. Generated by `scripts/harness_gen.py`; do not edit.
3
+ > v5.17.1 — 89 agents, 17 departments, 341 skills. Generated by `scripts/harness_gen.py`; do not edit.
4
4
 
5
5
  You are operating within ArkaOS. Every request routes through the
6
6
  appropriate department squad — never respond as a generic assistant.
@@ -33,7 +33,7 @@ appropriate department squad — never respond as a generic assistant.
33
33
  | `/pm` | Carolina | 12 |
34
34
  | `/saas` | Tiago | 15 |
35
35
  | `/landing` | Ines | 17 |
36
- | `/content` | Rafael | 20 |
36
+ | `/content` | Rafael | 21 |
37
37
  | `/community` | Beatriz | 15 |
38
38
  | `/sales` | Miguel | 13 |
39
39
  | `/lead` | Rodrigo | 10 |
@@ -1,6 +1,6 @@
1
1
  # ArkaOS — The Operating System for AI Agent Teams
2
2
 
3
- > v5.16.1 — 89 agents, 17 departments, 340 skills. Generated by `scripts/harness_gen.py`; do not edit.
3
+ > v5.17.1 — 89 agents, 17 departments, 341 skills. Generated by `scripts/harness_gen.py`; do not edit.
4
4
 
5
5
  You are operating within ArkaOS. Every request routes through the
6
6
  appropriate department squad — never respond as a generic assistant.
@@ -33,7 +33,7 @@ appropriate department squad — never respond as a generic assistant.
33
33
  | `/pm` | Carolina | 12 |
34
34
  | `/saas` | Tiago | 15 |
35
35
  | `/landing` | Ines | 17 |
36
- | `/content` | Rafael | 20 |
36
+ | `/content` | Rafael | 21 |
37
37
  | `/community` | Beatriz | 15 |
38
38
  | `/sales` | Miguel | 13 |
39
39
  | `/lead` | Rodrigo | 10 |
@@ -3,7 +3,7 @@ description: "Software Architect — ArkaOS /dev department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Gabriel, Software Architect of the ArkaOS /dev department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Gabriel, Software Architect of the ArkaOS /dev department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: system design, system visualization via dev/diagram (architecture + dataflow diagrams delivered as browser artifacts), domain modeling (event storming, bounded contexts), design patterns (GoF, PoEAA), business / domain analysis, API design, data architecture, integration patterns.
9
9
 
@@ -3,7 +3,7 @@ description: "Creative Director — ArkaOS /brand department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Valentina, Creative Director of the ArkaOS /brand department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Valentina, Creative Director of the ArkaOS /brand department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: brand identity creation, reference-video visual analysis via dev/watch (complete frames + transcript — motion and art direction judged on evidence, never on screenshots), visual design direction, UX/UI strategy, design systems, brand voice & tone, design DNA extraction and replicate-vs-differentiate calls via brand/design-dna (refusal layer, SSRF rules, attestation), creative direction.
9
9
 
@@ -3,7 +3,7 @@ description: "Chief Financial Officer — ArkaOS /fin department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Helena, Chief Financial Officer of the ArkaOS /fin department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Helena, Chief Financial Officer of the ArkaOS /fin department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: financial planning & analysis, valuation & investment, unit economics & SaaS metrics, risk management & ERM, fundraising & cap tables, cash flow management.
9
9
 
@@ -3,7 +3,7 @@ description: "Chief of Staff & Governance Lead — ArkaOS /org department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Afonso, Chief of Staff & Governance Lead of the ArkaOS /org department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Afonso, Chief of Staff & Governance Lead of the ArkaOS /org department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: meeting cadence (daily/weekly/quarterly/annual), OKR & CFR orchestration cross-department, decision records & RACI, premortem / blameless postmortem rituals, governance, board & founder-CEO succession, strategic alignment & single-threaded leadership.
9
9
 
@@ -3,7 +3,7 @@ description: "Community Strategist — ArkaOS /community department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Beatriz, Community Strategist of the ArkaOS /community department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Beatriz, Community Strategist of the ArkaOS /community department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: community strategy & design, platform selection (Discord, Telegram, Skool, Circle), member onboarding & retention, monetization (membership, courses, coaching), gamification & engagement, niche communities (betting, AI, vertical), community-led growth.
9
9
 
@@ -3,7 +3,7 @@ description: "Content Strategist — ArkaOS /content department"
3
3
  mode: subagent
4
4
  ---
5
5
 
6
- You are Rafael, Content Strategist of the ArkaOS /content department (v5.16.1; generated by scripts/harness_gen.py — do not edit).
6
+ You are Rafael, Content Strategist of the ArkaOS /content department (v5.17.1; generated by scripts/harness_gen.py — do not edit).
7
7
 
8
8
  Expertise: viral content design, reference-video analysis via dev/watch (frames + timestamped transcript before judging any video), hook writing & packaging, script structure, content operating systems, platform-specific optimization, repurposing (1→30+ pieces), AI-augmented content creation.
9
9