arkaos 2.19.1 → 2.19.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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.19.1
1
+ 2.19.2
package/arka/SKILL.md CHANGED
@@ -12,6 +12,50 @@ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent, WebFetch, WebSearch]
12
12
  > **The Operating System for AI Agent Teams**
13
13
  > 65 agents. 17 departments. 244+ skills. Multi-runtime. Dashboard. Knowledge RAG.
14
14
 
15
+ ## ⛔ Enforcement contract (read before responding)
16
+
17
+ This overrides every default. If the UserPromptSubmit hook injected a
18
+ `[ARKA:WORKFLOW-REQUIRED]` tag, you MUST, on the first line of your reply:
19
+
20
+ ```
21
+ [arka:routing] <department-slug> -> <lead-agent>
22
+ ```
23
+
24
+ Example first lines (pick the right department for the ask):
25
+
26
+ - `[arka:routing] dev -> Paulo` — code, features, refactors, tests
27
+ - `[arka:routing] brand -> Valentina` — identity, design, logos, voice
28
+ - `[arka:routing] kb -> Clara` — knowledge base, research, Obsidian
29
+ - `[arka:routing] mkt -> Luna` — marketing, growth, SEO, campaigns
30
+ - `[arka:routing] content -> Rafael` — content, video, social, copy
31
+ - `[arka:routing] landing -> Ines` — landing pages, funnels, offers
32
+ - `[arka:routing] ecom -> Ricardo` — e-commerce, stores, conversion
33
+ - `[arka:routing] saas -> Tiago` — SaaS, validation, PLG, metrics
34
+ - `[arka:routing] sales -> Miguel` — pipeline, discovery, negotiation
35
+ - `[arka:routing] pm -> Carolina` — roadmap, sprints, backlog, stories
36
+ - `[arka:routing] ops -> Daniel` — automation, SOPs, workflows
37
+ - `[arka:routing] strat -> Tomas` — strategy, positioning, moats
38
+ - `[arka:routing] fin -> Helena` — finance, modeling, budgets
39
+ - `[arka:routing] lead -> Rodrigo` — team health, feedback, hiring
40
+ - `[arka:routing] org -> Sofia` — org design, COO, operations
41
+ - `[arka:routing] community -> Beatriz` — communities, platforms, retention
42
+
43
+ After the routing line, in order:
44
+
45
+ 1. State the workflow name and its phase count.
46
+ 2. Run Phase 1 (usually spec via `arka-spec` or plan via `arka-forge`) BEFORE writing any code.
47
+ 3. Execute sequential phases with visibility (one at a time, report status).
48
+ 4. Run the Quality Gate (Marta CQO + Eduardo Copy + Francisca Tech, model Opus) BEFORE marking done.
49
+
50
+ The only exception is a trivial 1-file edit under 10 lines. In that case emit:
51
+
52
+ ```
53
+ [arka:trivial] <one-sentence reason>
54
+ ```
55
+
56
+ and proceed directly. Anything else without a routing line is a constitution
57
+ violation (squad-routing, arka-supremacy, spec-driven, mandatory-qa).
58
+
15
59
  ## System Commands
16
60
 
17
61
  | Command | Description |
@@ -275,8 +275,41 @@ NO generic assistant replies. Announce the squad before responding.
275
275
  When [knowledge:N chunks] is present, cite at least one source.
276
276
  If [knowledge:N chunks] is absent on a non-trivial ArkaOS topic, query Obsidian first."
277
277
 
278
+ # ─── Workflow Classifier (hard enforcement for creation/implementation) ──
279
+ # Classifies the user prompt. If it looks like a creation/implementation/
280
+ # modification request that is NOT already routed with an explicit /prefix,
281
+ # emits a directive that the agent MUST acknowledge with [arka:routing]
282
+ # BEFORE using any write tool. Trivial quick questions pass through
283
+ # untouched. Explicit slash commands pass through untouched.
284
+ _WORKFLOW_DIRECTIVE=""
285
+ if [ -n "$user_input" ]; then
286
+ # Skip: explicit slash command (already routed)
287
+ _FIRST_CHAR=$(echo "$user_input" | head -c 1)
288
+ if [ "$_FIRST_CHAR" != "/" ] && [ "$_FIRST_CHAR" != "!" ]; then
289
+ # Match creation/implementation verbs in EN and PT (case-insensitive).
290
+ _VERB_PATTERN='(criar?|crie[ms]?|cria[mr]?|adicionar?|adiciona[mr]?|implementar?|implementa[mr]?|desenvolver?|desenvolve[mr]?|construir?|constru[ií]a?[mr]?|fazer?|faz[ae][mr]?|refactor(izar?)?|corrigir?|corrige[mr]?|consertar?|conserta[mr]?|create[sd]?|creating|build(s|ing)?|add(s|ed|ing)?|implement(s|ed|ing)?|develop(s|ed|ing)?|fix(es|ed|ing)?|refactor(s|ed|ing)?|make[sd]?|making)'
291
+ _NOUN_PATTERN='(feature|funcionalidade|skill|squad|agent[e]?|workflow|endpoint|api|component[e]?|module|m[oó]dulo|page|p[aá]gina|hook|pipeline|integration|integra[cç][aã]o|dashboard|report|report[eó]|script|test[es]?)'
292
+ if echo "$user_input" | grep -qiE "\b${_VERB_PATTERN}\b"; then
293
+ _WORKFLOW_DIRECTIVE="
294
+ [ARKA:WORKFLOW-REQUIRED] Your user request matched a CREATION/IMPLEMENTATION pattern.
295
+ You MUST, before using any Write, Edit, Bash with side-effects, or Agent tool:
296
+ 1. Output on the first line: [arka:routing] <department-slug> -> <lead-agent>
297
+ (e.g. [arka:routing] dev -> Paulo, [arka:routing] brand -> Valentina,
298
+ [arka:routing] kb -> Clara, [arka:routing] mkt -> Luna)
299
+ 2. State the workflow name and phase count in one short sentence.
300
+ 3. Begin phase 1 (spec or plan) BEFORE any code is written.
301
+ 4. Run the Quality Gate (Marta + Eduardo + Francisca, Opus) before claiming done.
302
+ Trivial override: if the request is a single-file edit under 10 lines AND the user
303
+ used an imperative like 'rename X', 'fix typo', you MAY emit [arka:trivial] <reason>
304
+ and proceed directly. Anything else requires routing. This is enforced, not advisory.
305
+ Skipping routing violates constitution rules squad-routing, arka-supremacy,
306
+ spec-driven, mandatory-qa, sequential-validation."
307
+ fi
308
+ fi
309
+ fi
310
+
278
311
  # ─── Output ──────────────────────────────────────────────────────────────
279
- _OUT_CONTEXT="${_ARKA_GREETING:-}${_SYNC_NOTICE:-}${_ROUTE_REMINDER} $python_result"
312
+ _OUT_CONTEXT="${_ARKA_GREETING:-}${_SYNC_NOTICE:-}${_ROUTE_REMINDER}${_WORKFLOW_DIRECTIVE} $python_result"
280
313
  [ -n "$_HYGIENE" ] && _OUT_CONTEXT="$_OUT_CONTEXT $_HYGIENE"
281
314
  # Escape for JSON
282
315
  _OUT_JSON=$(python3 -c "import json,sys; print(json.dumps(sys.stdin.read()))" <<< "$_OUT_CONTEXT" 2>/dev/null)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkaos",
3
- "version": "2.19.1",
3
+ "version": "2.19.2",
4
4
  "description": "The Operating System for AI Agent Teams",
5
5
  "type": "module",
6
6
  "bin": {
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "arkaos-core"
3
- version = "2.19.1"
3
+ version = "2.19.2"
4
4
  description = "Core engine for ArkaOS — The Operating System for AI Agent Teams"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}