arkaos 4.36.0 → 4.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/VERSION +1 -1
- package/core/runtime/opencode.py +16 -5
- package/core/runtime/opencode_hooks.py +313 -0
- package/harness/codex/AGENTS.md +1 -1
- package/harness/copilot/copilot-instructions.md +1 -1
- package/harness/cursor/rules/arkaos.mdc +2 -2
- package/harness/gemini/GEMINI.md +1 -1
- package/harness/opencode/AGENTS.md +1 -1
- 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/opencode/agents-meta.json +27 -0
- package/harness/opencode/opencode.json +23 -0
- package/harness/opencode/plugins/arka.ts +113 -0
- package/harness/zed/.rules +1 -1
- package/installer/adapters/opencode.js +142 -16
- package/installer/assets/opencode/arka.ts +113 -0
- package/knowledge/skills-manifest.json +1 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/harness_gen.py +43 -3
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.37.0
|
package/core/runtime/opencode.py
CHANGED
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
OpenCode (opencode.ai) — open-source terminal AI coding agent with
|
|
4
4
|
native agents (markdown, ``~/.config/opencode/agents/``), custom
|
|
5
|
-
commands (``commands/``), MCP servers (``opencode.json``),
|
|
6
|
-
instructions
|
|
7
|
-
|
|
5
|
+
commands (``commands/``), MCP servers (``opencode.json``), AGENTS.md
|
|
6
|
+
instructions, and a TypeScript plugin system (``plugins/``). The
|
|
7
|
+
installer adapter (installer/adapters/opencode.js) deploys the
|
|
8
|
+
generated harness bundle onto those surfaces, including
|
|
9
|
+
``plugins/arka.ts``, which bridges OpenCode events into
|
|
10
|
+
``core.runtime.opencode_hooks`` (kb-first research gate, frontend
|
|
11
|
+
gate, MCP telemetry, stop-hook compliance, compaction context).
|
|
8
12
|
|
|
9
13
|
Headless invocation (live-verified against the installed binary,
|
|
10
14
|
opencode 1.18.4, ``opencode run --help`` + a real probe, 2026-07-23):
|
|
@@ -60,18 +64,25 @@ class OpenCodeAdapter(RuntimeAdapter):
|
|
|
60
64
|
config_dir=config_dir,
|
|
61
65
|
skills_dir=config_dir / "commands",
|
|
62
66
|
settings_file=config_dir / "opencode.json",
|
|
63
|
-
supports_hooks=
|
|
67
|
+
supports_hooks=(config_dir / "plugins" / "arka.ts").exists(),
|
|
64
68
|
supports_subagents=True,
|
|
65
69
|
supports_mcp=True,
|
|
66
70
|
max_context_tokens=200_000,
|
|
67
71
|
)
|
|
68
72
|
|
|
69
73
|
def capabilities(self) -> dict[str, bool]:
|
|
74
|
+
plugin = (
|
|
75
|
+
Path(expanduser("~")) / ".config" / "opencode" / "plugins" / "arka.ts"
|
|
76
|
+
)
|
|
70
77
|
return {
|
|
71
78
|
"agent_dispatch": False, # native agents exist; no ArkaOS wiring yet
|
|
72
79
|
"headless": True, # `opencode run` live-verified 2026-07-23
|
|
73
80
|
"file_ops": True, # terminal agent edits files natively
|
|
74
|
-
|
|
81
|
+
# plugins/arka.ts (deployed by the installer adapter) bridges
|
|
82
|
+
# prompt/pre_tool/post_tool/idle/compact events into
|
|
83
|
+
# core.runtime.opencode_hooks — kb-first, frontend gate,
|
|
84
|
+
# telemetry, compliance. True only when actually deployed.
|
|
85
|
+
"hooks": plugin.exists(),
|
|
75
86
|
}
|
|
76
87
|
|
|
77
88
|
def inject_context(self, layers: dict[str, str]) -> str:
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"""OpenCode plugin bridge — JSON stdin/stdout hook adapter.
|
|
2
|
+
|
|
3
|
+
OpenCode has no shell-hook chain like Claude Code; its plugin system
|
|
4
|
+
(TypeScript, ``~/.config/opencode/plugins/``) emits events instead. The
|
|
5
|
+
``arka.ts`` plugin shells out to this module so the OpenCode runtime
|
|
6
|
+
gets the same governance stack as the Claude runtime:
|
|
7
|
+
|
|
8
|
+
prompt token-hygiene checks (UserPromptSubmit parity)
|
|
9
|
+
pre_tool research gate + frontend gate (PreToolUse parity)
|
|
10
|
+
post_tool MCP usage telemetry (PostToolUse parity)
|
|
11
|
+
idle kb-citation + [arka:meta] compliance (Stop-hook parity)
|
|
12
|
+
compact gate state context (PreCompact parity)
|
|
13
|
+
|
|
14
|
+
CLI contract::
|
|
15
|
+
|
|
16
|
+
echo '{"action": "pre_tool", ...}' | arka-py -m core.runtime.opencode_hooks
|
|
17
|
+
|
|
18
|
+
Output is a single JSON object on stdout. The module NEVER raises and
|
|
19
|
+
always exits 0 — a hook bridge must never break a turn (fail-open,
|
|
20
|
+
same posture as the bash hooks it mirrors).
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
import json
|
|
26
|
+
import re
|
|
27
|
+
import sys
|
|
28
|
+
from datetime import datetime, timezone
|
|
29
|
+
from pathlib import Path
|
|
30
|
+
|
|
31
|
+
_TELEMETRY_DIR = Path.home() / ".arkaos" / "telemetry"
|
|
32
|
+
_PROMPT_CACHE_DIR = Path.home() / ".arkaos" / "context-cache"
|
|
33
|
+
|
|
34
|
+
_BUILTIN_MAP = {
|
|
35
|
+
"webfetch": "WebFetch",
|
|
36
|
+
"websearch": "WebSearch",
|
|
37
|
+
"edit": "Edit",
|
|
38
|
+
"write": "Write",
|
|
39
|
+
"read": "Read",
|
|
40
|
+
"bash": "Bash",
|
|
41
|
+
"grep": "Grep",
|
|
42
|
+
"glob": "Glob",
|
|
43
|
+
"task": "Task",
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
_ARG_KEY_MAP = {
|
|
47
|
+
"filePath": "file_path",
|
|
48
|
+
"newString": "new_string",
|
|
49
|
+
"oldString": "old_string",
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_VAGUE_RE = re.compile(
|
|
53
|
+
r"\b(fix the bug|that file|esse ficheiro|esse bug|o erro|aquilo)\b",
|
|
54
|
+
re.IGNORECASE,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
_STOPWORDS = frozenset({
|
|
58
|
+
"a", "o", "e", "de", "do", "da", "que", "em", "um", "uma", "para",
|
|
59
|
+
"com", "os", "as", "no", "na", "the", "and", "to", "of", "in", "is",
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _map_tool_name(name: str) -> str:
|
|
64
|
+
"""OpenCode ``server_tool`` / builtin -> Claude-style tool name."""
|
|
65
|
+
if name in _BUILTIN_MAP:
|
|
66
|
+
return _BUILTIN_MAP[name]
|
|
67
|
+
if name.startswith("mcp__"):
|
|
68
|
+
return name
|
|
69
|
+
server, sep, tool = name.partition("_")
|
|
70
|
+
if sep and server and tool:
|
|
71
|
+
return f"mcp__{server}__{tool}"
|
|
72
|
+
return name
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def _map_args(args: dict) -> dict:
|
|
76
|
+
return {_ARG_KEY_MAP.get(k, k): v for k, v in (args or {}).items()}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _keywords(text: str) -> set[str]:
|
|
80
|
+
return {
|
|
81
|
+
w
|
|
82
|
+
for w in re.findall(r"[a-zA-ZÀ-ÿ]{4,}", text.lower())
|
|
83
|
+
if w not in _STOPWORDS
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _append_jsonl(path: Path, entry: dict) -> None:
|
|
88
|
+
try:
|
|
89
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
90
|
+
with path.open("a", encoding="utf-8") as fh:
|
|
91
|
+
fh.write(json.dumps(entry, ensure_ascii=False) + "\n")
|
|
92
|
+
except OSError:
|
|
93
|
+
pass
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def _recent_prompts(session_id: str) -> list[str]:
|
|
97
|
+
safe = re.sub(r"[^A-Za-z0-9_-]", "", session_id or "default")
|
|
98
|
+
path = _PROMPT_CACHE_DIR / f"opencode-prompts-{safe}.json"
|
|
99
|
+
try:
|
|
100
|
+
return json.loads(path.read_text(encoding="utf-8"))
|
|
101
|
+
except (OSError, json.JSONDecodeError):
|
|
102
|
+
return []
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _store_prompt(session_id: str, prompt: str) -> None:
|
|
106
|
+
safe = re.sub(r"[^A-Za-z0-9_-]", "", session_id or "default")
|
|
107
|
+
path = _PROMPT_CACHE_DIR / f"opencode-prompts-{safe}.json"
|
|
108
|
+
history = _recent_prompts(session_id)
|
|
109
|
+
history.append(prompt[:500])
|
|
110
|
+
_append = history[-3:]
|
|
111
|
+
try:
|
|
112
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
113
|
+
path.write_text(json.dumps(_append), encoding="utf-8")
|
|
114
|
+
except OSError:
|
|
115
|
+
pass
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def _action_prompt(payload: dict) -> dict:
|
|
119
|
+
"""Token-hygiene parity (config/hooks/token-hygiene.sh)."""
|
|
120
|
+
prompt = str(payload.get("prompt", ""))
|
|
121
|
+
session_id = str(payload.get("session_id", ""))
|
|
122
|
+
suggestions: list[str] = []
|
|
123
|
+
|
|
124
|
+
ctx = payload.get("context_pct")
|
|
125
|
+
if isinstance(ctx, (int, float)):
|
|
126
|
+
if ctx > 80:
|
|
127
|
+
suggestions.append(
|
|
128
|
+
f"[arka:warn] Contexto a {int(ctx)}% — considera /compact."
|
|
129
|
+
)
|
|
130
|
+
elif ctx > 60:
|
|
131
|
+
suggestions.append(
|
|
132
|
+
f"[arka:suggest] Contexto a {int(ctx)}% — vigia o orçamento."
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
history = _recent_prompts(session_id)
|
|
136
|
+
if history and prompt:
|
|
137
|
+
current = _keywords(prompt)
|
|
138
|
+
if current:
|
|
139
|
+
recent = set().union(*(_keywords(p) for p in history[-3:]))
|
|
140
|
+
if recent and len(current & recent) / len(current) < 0.3:
|
|
141
|
+
suggestions.append(
|
|
142
|
+
"[arka:suggest] Mudança de tópico — considera /clear "
|
|
143
|
+
"para libertar contexto."
|
|
144
|
+
)
|
|
145
|
+
if prompt:
|
|
146
|
+
_store_prompt(session_id, prompt)
|
|
147
|
+
|
|
148
|
+
if len(prompt) > 2000 and "```" in prompt:
|
|
149
|
+
suggestions.append(
|
|
150
|
+
"[arka:suggest] Paste grande — usa @filepath em vez de colar "
|
|
151
|
+
"código no prompt."
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
if _VAGUE_RE.search(prompt) and "@" not in prompt:
|
|
155
|
+
suggestions.append(
|
|
156
|
+
"[arka:suggest] Referência vaga — usa @path para apontar o "
|
|
157
|
+
"ficheiro concreto."
|
|
158
|
+
)
|
|
159
|
+
|
|
160
|
+
return {"suggestions": suggestions}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _action_pre_tool(payload: dict) -> dict:
|
|
164
|
+
tool = str(payload.get("tool", ""))
|
|
165
|
+
mapped = _map_tool_name(tool)
|
|
166
|
+
session_id = str(payload.get("session_id", ""))
|
|
167
|
+
args = _map_args(payload.get("args") or {})
|
|
168
|
+
|
|
169
|
+
from core.workflow import research_gate
|
|
170
|
+
|
|
171
|
+
decision = research_gate.evaluate_research_gate(
|
|
172
|
+
mapped,
|
|
173
|
+
session_id=session_id,
|
|
174
|
+
query=str(args.get("query", "") or args.get("url", "")),
|
|
175
|
+
)
|
|
176
|
+
if not decision.allow:
|
|
177
|
+
research_gate.record_telemetry(session_id, mapped, decision)
|
|
178
|
+
return {
|
|
179
|
+
"allow": False,
|
|
180
|
+
"reason": decision.reason,
|
|
181
|
+
"message": decision.to_stderr_message(),
|
|
182
|
+
}
|
|
183
|
+
if decision.nudge:
|
|
184
|
+
research_gate.record_telemetry(session_id, mapped, decision)
|
|
185
|
+
return {
|
|
186
|
+
"allow": True,
|
|
187
|
+
"reason": decision.reason,
|
|
188
|
+
"message": decision.to_stderr_message(),
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if tool in ("edit", "write"):
|
|
192
|
+
from core.workflow import frontend_gate
|
|
193
|
+
|
|
194
|
+
fe = frontend_gate.evaluate(
|
|
195
|
+
_map_tool_name(tool),
|
|
196
|
+
"",
|
|
197
|
+
session_id,
|
|
198
|
+
str(payload.get("cwd", "")),
|
|
199
|
+
args,
|
|
200
|
+
messages=payload.get("messages") or [],
|
|
201
|
+
)
|
|
202
|
+
frontend_gate.record_telemetry(session_id, mapped, fe)
|
|
203
|
+
if not fe.allow or fe.reason == "no-design-marker":
|
|
204
|
+
return {
|
|
205
|
+
"allow": fe.allow,
|
|
206
|
+
"reason": fe.reason,
|
|
207
|
+
"message": fe.to_stderr_message(),
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return {"allow": True, "reason": "ok", "message": ""}
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
def _action_post_tool(payload: dict) -> dict:
|
|
214
|
+
tool = str(payload.get("tool", ""))
|
|
215
|
+
mapped = _map_tool_name(tool)
|
|
216
|
+
session_id = str(payload.get("session_id", ""))
|
|
217
|
+
|
|
218
|
+
from core.runtime import mcp_telemetry
|
|
219
|
+
|
|
220
|
+
recorded = mcp_telemetry.record(mapped, session_id=session_id)
|
|
221
|
+
_append_jsonl(
|
|
222
|
+
_TELEMETRY_DIR / "opencode-tools.jsonl",
|
|
223
|
+
{
|
|
224
|
+
"ts": datetime.now(timezone.utc).isoformat(),
|
|
225
|
+
"session": session_id,
|
|
226
|
+
"tool": mapped,
|
|
227
|
+
"ok": bool(payload.get("ok", True)),
|
|
228
|
+
},
|
|
229
|
+
)
|
|
230
|
+
return {"recorded_mcp": recorded}
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def _action_idle(payload: dict) -> dict:
|
|
234
|
+
"""Stop-hook parity: kb-citation + [arka:meta] compliance (soft)."""
|
|
235
|
+
text = str(payload.get("response_text", ""))
|
|
236
|
+
session_id = str(payload.get("session_id", ""))
|
|
237
|
+
nudges: list[str] = []
|
|
238
|
+
|
|
239
|
+
from core.governance import kb_cite_check
|
|
240
|
+
|
|
241
|
+
result = kb_cite_check.check_citation(text)
|
|
242
|
+
if not result.passed and result.suggestion:
|
|
243
|
+
nudges.append(result.suggestion)
|
|
244
|
+
|
|
245
|
+
if len(text) > 400 and "[arka:meta]" not in text and "[arka:trivial]" not in text:
|
|
246
|
+
nudges.append(
|
|
247
|
+
"[arka:suggest] Resposta substantiva sem tag [arka:meta] — "
|
|
248
|
+
"fecha com kb=N research=X persona=Y gap=Z critic=W."
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
_append_jsonl(
|
|
252
|
+
_TELEMETRY_DIR / "opencode-compliance.jsonl",
|
|
253
|
+
{
|
|
254
|
+
"ts": datetime.now(timezone.utc).isoformat(),
|
|
255
|
+
"session": session_id,
|
|
256
|
+
"kb_cite": result.reason,
|
|
257
|
+
"meta_tag": "[arka:meta]" in text,
|
|
258
|
+
"nudges": len(nudges),
|
|
259
|
+
},
|
|
260
|
+
)
|
|
261
|
+
return {"nudges": nudges}
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def _action_compact(payload: dict) -> dict:
|
|
265
|
+
"""PreCompact parity: carry gate state across compaction."""
|
|
266
|
+
from core.workflow import state
|
|
267
|
+
|
|
268
|
+
context: list[str] = [
|
|
269
|
+
"## ArkaOS gate state (injected by the opencode bridge)",
|
|
270
|
+
"Obrigatório: evidence flow G1 contexto -> G2 plano (aprovação) "
|
|
271
|
+
"-> G3 execução (teste real, exit 0) -> G4 review. Emite "
|
|
272
|
+
"[arka:gate:N] em cada gate; [arka:trivial] <razão> só para "
|
|
273
|
+
"edição de 1 ficheiro < 10 linhas.",
|
|
274
|
+
]
|
|
275
|
+
try:
|
|
276
|
+
current = state.get_state()
|
|
277
|
+
if current:
|
|
278
|
+
context.append(f"Workflow activo: {json.dumps(current)[:400]}")
|
|
279
|
+
except Exception: # noqa: BLE001 — fail-open
|
|
280
|
+
pass
|
|
281
|
+
return {"context": context}
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
_ACTIONS = {
|
|
285
|
+
"prompt": _action_prompt,
|
|
286
|
+
"pre_tool": _action_pre_tool,
|
|
287
|
+
"post_tool": _action_post_tool,
|
|
288
|
+
"idle": _action_idle,
|
|
289
|
+
"compact": _action_compact,
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
def main() -> int:
|
|
294
|
+
try:
|
|
295
|
+
payload = json.loads(sys.stdin.read() or "{}")
|
|
296
|
+
except json.JSONDecodeError:
|
|
297
|
+
payload = {}
|
|
298
|
+
action = str(payload.pop("action", ""))
|
|
299
|
+
handler = _ACTIONS.get(action)
|
|
300
|
+
result: dict
|
|
301
|
+
if handler is None:
|
|
302
|
+
result = {"error": f"unknown action: {action!r}"}
|
|
303
|
+
else:
|
|
304
|
+
try:
|
|
305
|
+
result = handler(payload)
|
|
306
|
+
except Exception as exc: # noqa: BLE001 — fail-open, never block
|
|
307
|
+
result = {"error": f"{type(exc).__name__}: {exc}"}
|
|
308
|
+
sys.stdout.write(json.dumps(result, ensure_ascii=False) + "\n")
|
|
309
|
+
return 0
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
if __name__ == "__main__":
|
|
313
|
+
raise SystemExit(main())
|
package/harness/codex/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v4.
|
|
3
|
+
> v4.37.0 — 89 agents, 17 departments, 331 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v4.
|
|
3
|
+
> v4.37.0 — 89 agents, 17 departments, 331 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.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: ArkaOS v4.
|
|
2
|
+
description: ArkaOS v4.37.0 agent-team contract
|
|
3
3
|
alwaysApply: true
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
7
7
|
|
|
8
|
-
> v4.
|
|
8
|
+
> v4.37.0 — 89 agents, 17 departments, 331 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.
|
package/harness/gemini/GEMINI.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v4.
|
|
3
|
+
> v4.37.0 — 89 agents, 17 departments, 331 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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ArkaOS — The Operating System for AI Agent Teams
|
|
2
2
|
|
|
3
|
-
> v4.
|
|
3
|
+
> v4.37.0 — 89 agents, 17 departments, 331 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.
|
|
@@ -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 (v4.
|
|
6
|
+
You are Gabriel, Software Architect of the ArkaOS /dev department (v4.37.0; 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.
|
|
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 (v4.
|
|
6
|
+
You are Valentina, Creative Director of the ArkaOS /brand department (v4.37.0; 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.
|
|
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 (v4.
|
|
6
|
+
You are Helena, Chief Financial Officer of the ArkaOS /fin department (v4.37.0; 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 (v4.
|
|
6
|
+
You are Afonso, Chief of Staff & Governance Lead of the ArkaOS /org department (v4.37.0; 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 (v4.
|
|
6
|
+
You are Beatriz, Community Strategist of the ArkaOS /community department (v4.37.0; 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).
|
|
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 (v4.
|
|
6
|
+
You are Rafael, Content Strategist of the ArkaOS /content department (v4.37.0; 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.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Conversion Strategist — ArkaOS /landing department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Ines, Conversion Strategist of the ArkaOS /landing department (v4.
|
|
6
|
+
You are Ines, Conversion Strategist of the ArkaOS /landing department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: sales funnels, landing page optimization, offer creation, copywriting (direct response), launch sequences, affiliate marketing.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Chief Operations Officer — ArkaOS /org department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Sofia, Chief Operations Officer of the ArkaOS /org department (v4.
|
|
6
|
+
You are Sofia, Chief Operations Officer of the ArkaOS /org department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: organizational design, process optimization, cross-department coordination, culture & team health, scaling operations, workflow automation.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Copy & Language Director — ArkaOS /quality department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Eduardo, Copy & Language Director of the ArkaOS /quality department (v4.
|
|
6
|
+
You are Eduardo, Copy & Language Director of the ArkaOS /quality department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: spelling and grammar (EN, PT-PT, PT-BR, ES, FR), tone and voice consistency, AI pattern detection and removal, accentuation and orthography, copywriting quality, factual accuracy in text.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Chief Quality Officer — ArkaOS /quality department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Marta, Chief Quality Officer of the ArkaOS /quality department (v4.
|
|
6
|
+
You are Marta, Chief Quality Officer of the ArkaOS /quality department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: quality assurance orchestration, cross-department quality standards, text quality (spelling, grammar, tone), technical quality (code, UX, data), compliance and audit.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Chief Technology Officer — ArkaOS /dev department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Marco, Chief Technology Officer of the ArkaOS /dev department (v4.
|
|
6
|
+
You are Marco, Chief Technology Officer of the ArkaOS /dev department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: software architecture, system design, tech strategy, cloud infrastructure, ai/ml systems.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Design Ops Lead — ArkaOS /brand department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Iris, Design Ops Lead of the ArkaOS /brand department (v4.
|
|
6
|
+
You are Iris, Design Ops Lead of the ArkaOS /brand department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: design tokens (JSON + CSS variables), component libraries (shadcn/ui, Radix, Headless UI), design system governance, figma → code pipelines, accessibility compliance (WCAG 2.2 AA/AAA), cross-platform tokenisation (Style Dictionary, Tailwind).
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "E-Commerce Director — ArkaOS /ecom department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Ricardo, E-Commerce Director of the ArkaOS /ecom department (v4.
|
|
6
|
+
You are Ricardo, E-Commerce Director of the ArkaOS /ecom department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: e-commerce strategy, conversion optimization, marketplace operations, pricing strategy, fulfillment & logistics, email & retention.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Knowledge Director — ArkaOS /kb department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Clara, Knowledge Director of the ArkaOS /kb department (v4.
|
|
6
|
+
You are Clara, Knowledge Director of the ArkaOS /kb department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: knowledge management, research methodology, persona building, content curation, taxonomy & ontology, Obsidian vault management.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Leadership & People Director — ArkaOS /lead department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Rodrigo, Leadership & People Director of the ArkaOS /lead department (v4.
|
|
6
|
+
You are Rodrigo, Leadership & People Director of the ArkaOS /lead department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: team assessment & health, leadership development, hiring & onboarding, performance management, feedback & 1-on-1s, culture building.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Marketing Director — ArkaOS /mkt department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Luna, Marketing Director of the ArkaOS /mkt department (v4.
|
|
6
|
+
You are Luna, Marketing Director of the ArkaOS /mkt department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: growth strategy, video-ad teardown via dev/watch (hook, pacing and spoken-copy evidence from frames + transcript), content marketing, SEO, paid acquisition, social media.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Operations Lead — ArkaOS /ops department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Daniel, Operations Lead of the ArkaOS /ops department (v4.
|
|
6
|
+
You are Daniel, Operations Lead of the ArkaOS /ops department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: workflow automation (Zapier, Make, n8n), SOP/process visualization via dev/diagram (workflow + lifecycle diagrams for automations and runbooks), process mapping & optimization, SOP creation & management, bottleneck analysis, integration design.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Product Manager — ArkaOS /pm department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Carolina, Product Manager of the ArkaOS /pm department (v4.
|
|
6
|
+
You are Carolina, Product Manager of the ArkaOS /pm department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: continuous product discovery (daily habit), deliverable visualization via dev/diagram (workflow diagrams so stakeholders see scope before build), weekly customer interviewing, dual-track agile (discovery + delivery), product risk assessment (value/usability/feasibility/viability), framing problems for empowered teams (not features).
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "RevOps Lead — ArkaOS /saas department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Vicente, RevOps Lead of the ArkaOS /saas department (v4.
|
|
6
|
+
You are Vicente, RevOps Lead of the ArkaOS /saas department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: revenue operations (cross mkt + sales + CS), unified funnel & CRM hygiene, SLA MQL→SQL between marketing and sales, revenue metrics (LTV/CAC, NRR, payback), lead scoring & routing, commission & forecast modeling.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "SaaS Strategist — ArkaOS /saas department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Tiago, SaaS Strategist of the ArkaOS /saas department (v4.
|
|
6
|
+
You are Tiago, SaaS Strategist of the ArkaOS /saas department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: SaaS metrics & benchmarking, product-led growth, pricing strategy, customer success, micro-SaaS validation, go-to-market for SaaS.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Sales Director — ArkaOS /sales department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Miguel, Sales Director of the ArkaOS /sales department (v4.
|
|
6
|
+
You are Miguel, Sales Director of the ArkaOS /sales department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: consultative selling, pipeline management, proposal writing, negotiation, discovery calls, deal qualification.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Chief Strategist — ArkaOS /strat department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Tomas, Chief Strategist of the ArkaOS /strat department (v4.
|
|
6
|
+
You are Tomas, Chief Strategist of the ArkaOS /strat department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: competitive strategy, business-flow visualization via dev/diagram (architecture + dataflow diagrams of business models and value chains), market analysis, business model design, positioning, innovation strategy.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: "Technical & UX Quality Director — ArkaOS /quality department"
|
|
|
3
3
|
mode: subagent
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are Francisca, Technical & UX Quality Director of the ArkaOS /quality department (v4.
|
|
6
|
+
You are Francisca, Technical & UX Quality Director of the ArkaOS /quality department (v4.37.0; generated by scripts/harness_gen.py — do not edit).
|
|
7
7
|
|
|
8
8
|
Expertise: code quality (SOLID, Clean Code, DRY), test coverage and quality, UX/UI review (heuristics, accessibility), security review (OWASP), performance review (CWV, API latency), data integrity and API contracts.
|
|
9
9
|
|