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.
- package/README.md +2 -2
- package/THE-ARKAOS-GUIDE.md +2 -2
- package/VERSION +1 -1
- package/arka/SKILL.md +1 -1
- package/arka/skills/costs/SKILL.md +3 -3
- package/bin/arka-doctor +14 -8
- package/config/cognition/schedules.yaml +2 -2
- package/core/harness/drift.py +21 -10
- package/core/harness/manager.py +25 -5
- package/core/hooks/session_start.py +0 -26
- package/core/jobs/auto_doc_worker.py +34 -127
- package/core/runtime/claude_code.py +13 -1
- package/core/runtime/gateway/litellm_config.py +4 -3
- package/core/runtime/model_router.py +16 -10
- package/core/runtime/pricing.py +27 -5
- package/core/runtime/runtime_models.py +9 -7
- package/core/synapse/layers.py +92 -2
- package/dashboard/app/pages/models.vue +1 -1
- package/departments/content/SKILL.md +1 -0
- package/departments/content/skills/hyperframes/SKILL.md +95 -0
- package/departments/content/skills/video-produce/SKILL.md +27 -17
- package/departments/content/skills/video-setup/SKILL.md +26 -13
- package/harness/codex/AGENTS.md +2 -2
- package/harness/copilot/copilot-instructions.md +2 -2
- package/harness/cursor/rules/arkaos.mdc +3 -3
- package/harness/gemini/GEMINI.md +2 -2
- package/harness/opencode/AGENTS.md +2 -2
- package/harness/opencode/agents/arka-architect-gabriel.md +1 -1
- package/harness/opencode/agents/arka-brand-director-valentina.md +1 -1
- package/harness/opencode/agents/arka-cfo-helena.md +1 -1
- package/harness/opencode/agents/arka-chief-of-staff-afonso.md +1 -1
- package/harness/opencode/agents/arka-community-strategist-beatriz.md +1 -1
- package/harness/opencode/agents/arka-content-strategist-rafael.md +1 -1
- package/harness/opencode/agents/arka-conversion-strategist-ines.md +1 -1
- package/harness/opencode/agents/arka-coo-sofia.md +1 -1
- package/harness/opencode/agents/arka-copy-director-eduardo.md +1 -1
- package/harness/opencode/agents/arka-cqo-marta.md +1 -1
- package/harness/opencode/agents/arka-cto-marco.md +1 -1
- package/harness/opencode/agents/arka-design-ops-lead-iris.md +1 -1
- package/harness/opencode/agents/arka-ecom-director-ricardo.md +1 -1
- package/harness/opencode/agents/arka-knowledge-director-clara.md +1 -1
- package/harness/opencode/agents/arka-leadership-director-rodrigo.md +1 -1
- package/harness/opencode/agents/arka-marketing-director-luna.md +1 -1
- package/harness/opencode/agents/arka-ops-lead-daniel.md +1 -1
- package/harness/opencode/agents/arka-pm-director-carolina.md +1 -1
- package/harness/opencode/agents/arka-revops-lead-vicente.md +1 -1
- package/harness/opencode/agents/arka-saas-strategist-tiago.md +1 -1
- package/harness/opencode/agents/arka-sales-director-miguel.md +1 -1
- package/harness/opencode/agents/arka-strategy-director-tomas.md +1 -1
- package/harness/opencode/agents/arka-tech-director-francisca.md +1 -1
- package/harness/opencode/agents/arka-tech-lead-paulo.md +1 -1
- package/harness/opencode/agents/arka-video-producer-simao.md +1 -1
- package/harness/zed/.rules +2 -2
- package/installer/doctor.js +18 -6
- package/installer/fallback-model.js +80 -29
- package/installer/index.js +7 -4
- package/installer/update.js +5 -2
- package/knowledge/commands-keywords.json +29 -2
- package/knowledge/commands-registry.json +41 -5
- package/knowledge/skills-manifest.json +14 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/core/runtime/pricing.py
CHANGED
|
@@ -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)
|
|
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-
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
#
|
|
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
|
|
11
|
-
and the model-config reference (2026-09). This is the single place
|
|
12
|
-
|
|
13
|
-
|
|
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
|
]
|
package/core/synapse/layers.py
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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;
|
|
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
|
|
74
|
-
tier):
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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:
|
|
82
|
-
workflow (`/talking-head-recut`,
|
|
83
|
-
`/product-launch-video`…),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
|
|
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);
|
|
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/
|
|
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
|
|
37
|
-
|
|
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
|
|
49
|
+
npx skills add heygen-com/hyperframes
|
|
44
50
|
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
`npx hyperframes skills
|
|
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).
|
package/harness/codex/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v5.
|
|
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 |
|
|
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.
|
|
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 |
|
|
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.
|
|
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.
|
|
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 |
|
|
41
|
+
| `/content` | Rafael | 21 |
|
|
42
42
|
| `/community` | Beatriz | 15 |
|
|
43
43
|
| `/sales` | Miguel | 13 |
|
|
44
44
|
| `/lead` | Rodrigo | 10 |
|
package/harness/gemini/GEMINI.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v5.
|
|
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 |
|
|
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.
|
|
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 |
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|