arkaos 4.19.0 → 4.20.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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **The Operating System for AI Agent Teams.**
4
4
 
5
- 86 agents. 17 departments. 283 skills. Enterprise frameworks. Multi-runtime. One install.
5
+ 86 agents. 17 departments. 287 skills. Enterprise frameworks. Multi-runtime. One install.
6
6
 
7
7
  ```bash
8
8
  npx arkaos install
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.19.0
1
+ 4.20.0
package/arka/SKILL.md CHANGED
@@ -25,7 +25,7 @@ measures citation compliance per turn.
25
25
  # ArkaOS — Main Orchestrator
26
26
 
27
27
  > **The Operating System for AI Agent Teams**
28
- > 86 agents. 17 departments. 283 skills. Multi-runtime. Dashboard. Knowledge RAG.
28
+ > 86 agents. 17 departments. 287 skills. Multi-runtime. Dashboard. Knowledge RAG.
29
29
 
30
30
  ## ⛔ Evidence flow — 4 gates (NON-NEGOTIABLE)
31
31
 
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: dev/exploit-triage
3
+ description: >
4
+ Reviews code for the vulnerabilities that are actually reachable and
5
+ actually exploitable — SSRF, auth bypass, injection, insecure
6
+ deserialisation, IDOR — biased toward a remote, unauthenticated
7
+ attacker, and discards the theoretical. Answers "can someone reach and
8
+ weaponise this?", not "is this textbook-perfect?". TRIGGER: "/dev
9
+ exploit-triage", "is this exploitable", "attack surface", "can this be
10
+ reached", "SSRF/IDOR/auth bypass", "isto é explorável?", "que dano real
11
+ se tira daqui?"; run on a diff touching auth, input handling, requests,
12
+ deserialisation, or file/db access. SKIP: broad OWASP/quality pass ->
13
+ dev/security-audit wins; adversarially breaking a diff (abuse cases,
14
+ threat-modelling a change) -> dev/adversarial-review wins; planning a
15
+ full offensive engagement (signed RoE, ATT&CK campaign) -> dev/red-team
16
+ wins; agent/prompt-injection threats -> dev/ai-security wins.
17
+ allowed-tools: [Read, Grep, Glob]
18
+ metadata:
19
+ origin: arkaos
20
+ ---
21
+
22
+ # Exploit Triage — `/dev exploit-triage`
23
+
24
+ > **Agent:** Bruno (Security Engineer) | **Framework:** Reachability-first, attacker-economics, CWE Top 25
25
+
26
+ A security review that lists every theoretical weakness buries the one
27
+ that gets you breached. This lens inverts the priority: it starts from a
28
+ remote, unauthenticated attacker and asks, of each finding, whether they
29
+ can reach the code path and whether reaching it actually pays. A missing
30
+ security header on an internal admin page is a note; an SSRF on a
31
+ user-supplied URL that reaches the cloud metadata endpoint is the report.
32
+ Reachability and impact rank everything; the textbook comes second.
33
+
34
+ ## What to hunt (reachability-first)
35
+
36
+ | Class | The question that decides severity |
37
+ |-------|-----------------------------------|
38
+ | **SSRF** (CWE-918) | Does a user-controlled URL/host reach a fetch, and can it hit internal services or a metadata endpoint? |
39
+ | **Auth / access bypass** (CWE-287/862, IDOR CWE-639) | Can the check be skipped, or an object accessed by ID without ownership (IDOR)? |
40
+ | **Injection** (CWE-74: SQLi/command/template) | Does untrusted input reach a query, a shell, or a template unparameterised? |
41
+ | **Insecure deserialisation** (CWE-502) | Is attacker-controlled data deserialised into objects (pickle, unsafe YAML, native serialisers)? |
42
+ | **Path traversal / upload** | Can a user steer a file path or upload an executable/served type? |
43
+ | **Secrets & SSRF-adjacent** | A leaked credential or an open redirect that chains into the above. |
44
+
45
+ ## Process
46
+
47
+ 1. Map the **entry points** in the diff — what an unauthenticated request can reach, then what an authenticated-but-untrusted user can.
48
+ 2. For each candidate, trace the taint: does attacker input reach the sink, and is there a real control in the way?
49
+ 3. Rank by **reachability × impact**, not by CWE checklist order. Discard the theoretically-imperfect-but-unreachable with a one-line note, so the real findings are not buried.
50
+ 4. For each real finding, give the **concrete attack** (the request an attacker sends) and the fix.
51
+
52
+ ## Proactive Triggers
53
+
54
+ Surface these WITHOUT being asked:
55
+
56
+ - a user-supplied URL or hostname flowing into an HTTP client → the SSRF, and whether it can reach the metadata endpoint
57
+ - an object fetched by an ID from the request with no ownership check → the IDOR and the horizontal access it grants
58
+ - `pickle.loads` / `yaml.load` / a native deserialiser on request data → the deserialisation-to-RCE path
59
+
60
+ ## Output
61
+
62
+ ```markdown
63
+ ## Exploit Triage
64
+
65
+ **Scope:** {diff / entry points reviewed}
66
+ **Attacker model:** {remote unauth / authenticated untrusted}
67
+
68
+ ### Exploitable (reachable + impactful)
69
+ - **{class}** {file}:{line}
70
+ - **Reach:** {how the attacker gets input to the sink}
71
+ - **Attack:** {the concrete request/payload}
72
+ - **Impact:** {what it grants}
73
+ - **Fix:** {the specific control}
74
+
75
+ ### Noted, not exploitable (unreachable or low impact)
76
+ - {finding} — {why it does not pay}, one line each
77
+ ```
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: dev/ml-adoption-playbook
3
+ description: >
4
+ Decides whether a problem needs ML at all, then adds it to a non-ML
5
+ codebase the cheap way — heuristic baseline first, a defined metric and
6
+ mistake budget, data readiness, and a decoupled seam before any model.
7
+ TRIGGER: "/dev ml-adoption-playbook", "should we use ML for this", "add
8
+ ML to", "is this an ML problem", "machine learning for X", "vale a pena
9
+ ML aqui?", "adicionar ML ao projeto", "modelo ou regras?". SKIP: the
10
+ model is already chosen and the job is to productionise it ->
11
+ dev/mle-workflow wins; a ranking/feed pipeline's plumbing ->
12
+ dev/rag-architect or dev/architecture-design wins.
13
+ allowed-tools: [Read, Grep, Glob]
14
+ metadata:
15
+ origin: arkaos
16
+ ---
17
+
18
+ # ML Adoption Playbook — `/dev ml-adoption-playbook`
19
+
20
+ > **Agent:** Salvador (AI Engineering Specialist) | **Framework:** Heuristic-first, metric-and-mistake-budget, incremental adoption
21
+
22
+ The most expensive way to add machine learning to a product is to reach
23
+ for a model before asking whether rules would do. A regex, a threshold,
24
+ or a lookup table ships in an afternoon, is trivial to debug, and is
25
+ often within a few points of what a model would give — and if it is not,
26
+ it becomes the baseline the model has to beat. This playbook decides
27
+ whether the problem is really an ML problem, and if it is, adds ML to a
28
+ codebase that has none of the scaffolding, one committed step at a time.
29
+
30
+ ## Phase 1 — Framing & feasibility (before any model)
31
+
32
+ - **Heuristic check.** Could a rule, threshold, or lookup solve this
33
+ acceptably? If yes, ship that first — it is the baseline and often the
34
+ answer. A model that cannot beat a well-tuned heuristic is not worth
35
+ its operational cost.
36
+ - **Metric.** Define how success is measured, tied to the product
37
+ decision — before touching data. No metric, no project.
38
+ - **Mistake budget.** State what a wrong prediction costs and how many
39
+ are tolerable. This sets the bar the model must clear and whether a
40
+ human stays in the loop.
41
+ - **Data reality.** Do labelled examples exist, or a path to them? Is the
42
+ outcome observable, and when? A problem with no labels and no path to
43
+ them is not yet an ML problem.
44
+
45
+ ## Phase 2 — Data readiness
46
+
47
+ - Locate the data that would feed the model; assess volume, quality, and
48
+ bias before assuming it is usable.
49
+ - Confirm the label is available at the time a prediction is needed, not
50
+ only in hindsight.
51
+
52
+ ## Phase 3 — Architectural seam
53
+
54
+ - Add a decoupled boundary where the prediction plugs in — an interface
55
+ the current heuristic satisfies too, so the model can replace the rule
56
+ without rewiring the app.
57
+ - Keep the heuristic as the fallback and the regression baseline.
58
+
59
+ ## Phase 4 — Baseline model
60
+
61
+ - Integrate the simplest model that could work behind the seam; compare
62
+ it to the heuristic on the defined metric and mistake budget.
63
+ - Promote only if it clears the bar. If it does not, the heuristic stays
64
+ and the finding is recorded — a negative result is still a result.
65
+
66
+ ## Proactive Triggers
67
+
68
+ Surface these WITHOUT being asked:
69
+
70
+ - a request to "use ML" for something a threshold or lookup handles → propose the heuristic baseline first and the bar the model must beat
71
+ - an ML plan with no defined metric or mistake budget → stop; those come before data
72
+ - no labelled data and no path to it → this is not yet an ML problem; name what would make it one
73
+
74
+ ## Output
75
+
76
+ ```markdown
77
+ ## ML Adoption Assessment
78
+
79
+ **Problem:** {what decision needs to be made}
80
+ **Heuristic baseline:** {the rule that ships today, and how close it gets}
81
+ **Verdict:** {ML justified? / heuristic suffices / not yet an ML problem}
82
+
83
+ ### If ML is justified
84
+ - **Metric & bar:** {measure + threshold the model must beat the baseline by}
85
+ - **Mistake budget:** {cost of a wrong call + human-in-loop or not}
86
+ - **Data readiness:** {labels? volume? label latency?}
87
+ - **Seam:** {the interface where the model plugs in, heuristic as fallback}
88
+ ```
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: dev/mle-workflow
3
+ description: >
4
+ Turns model work into a production ML system — data contracts,
5
+ reproducible training, measurable eval gates, a deployable artifact,
6
+ and monitoring with a rollback path — using only the lanes the system
7
+ needs. TRIGGER: "/dev mle-workflow", "productionise this model", "ML
8
+ pipeline", "ranking/recommender/classifier/forecasting system", "model
9
+ refresh", "pôr o modelo em produção", "notebook para pipeline", "eval
10
+ gate do modelo". SKIP: RAG retrieval/context design -> dev/rag-architect
11
+ wins; the app/API around the model with no ML lifecycle concern ->
12
+ dev/architecture-design wins; prompt-injection/model-abuse threats ->
13
+ dev/ai-security wins.
14
+ allowed-tools: [Read, Grep, Glob, Bash]
15
+ metadata:
16
+ origin: arkaos
17
+ ---
18
+
19
+ # ML Engineering Workflow — `/dev mle-workflow`
20
+
21
+ > **Agent:** Salvador (AI Engineering Specialist) | **Framework:** Data contracts, reproducible training, eval-gated promotion, monitored rollout
22
+
23
+ A model in a notebook is a result; a model in production is a system that
24
+ has to keep being right as the data underneath it moves. The gap between
25
+ the two is not the algorithm — it is the plumbing that makes a prediction
26
+ reproducible, gated on measured quality, deployable as an artifact, and
27
+ observable once real traffic arrives. This workflow builds that plumbing,
28
+ using only the lanes the system in front of you actually needs.
29
+
30
+ ## Scope calibration first
31
+
32
+ Not every model has labels, online serving, a feature store, GPUs, or A/B
33
+ tests. Pick the lanes that fit and make the missing ones explicit
34
+ assumptions. A change that a data contract, a baseline, an eval script,
35
+ and a rollback note would make reviewable does not need a feature store.
36
+
37
+ ## Lanes
38
+
39
+ ### 1. Data contract
40
+ - Define the input schema, types, and allowed ranges; version it. A model is only as trustworthy as the guarantee on what reaches it.
41
+ - Name the label source and its latency (is the outcome known now, or in 30 days?). Undelayed evaluation of a delayed-label problem is a lie.
42
+ - Guard against **leakage**: a feature that encodes the target, or is computed with information unavailable at prediction time.
43
+
44
+ ### 2. Reproducible training
45
+ - Pin the data snapshot, code version, dependency lockfile/environment, seed, and hyperparameters — a training run nobody can reproduce is not evidence.
46
+ - Separate train/validation/test by the axis that matches production (time-based split for anything time-ordered, not random).
47
+ - Emit a single versioned artifact (weights + preprocessing + the input schema it expects).
48
+
49
+ ### 3. Eval gate (promotion criteria)
50
+ - State the metric and the threshold BEFORE training, tied to the decision the model drives — not accuracy for its own sake.
51
+ - Evaluate on **slices**, not just the aggregate: a model that is 95% overall and 40% on the segment that matters is a failure.
52
+ - Offline gate to promote; where traffic exists, an online check (shadow or canary) before full rollout.
53
+
54
+ ### 4. Deployable artifact & serving
55
+ - The serving path must run the **same** preprocessing as training — train/serve skew is the most common silent production failure.
56
+ - Batch vs online: choose by the freshness the decision needs, not by default.
57
+ - Idempotent, versioned, with a health check.
58
+
59
+ ### 5. Monitoring & rollback
60
+ - Watch input drift, prediction distribution, and — when labels arrive — realised quality against the offline estimate.
61
+ - A **rollback path** to the previous artifact that can be triggered without a retrain.
62
+ - Preserve every production failure (bad feature, stale label, artifact mismatch, drift) as a regression case.
63
+
64
+ ## Process
65
+
66
+ 1. Map the change onto the five lanes; mark which apply and which are explicit assumptions.
67
+ 2. Find the existing training/feature/serving/eval paths before adding a parallel ML stack (`git grep`, read them).
68
+ 3. Build the data contract and the eval gate first — they define what "done" means before any model work.
69
+
70
+ ## Proactive Triggers
71
+
72
+ Surface these WITHOUT being asked:
73
+
74
+ - a feature computed from data unavailable at prediction time → the leakage, and the realistic offline score once it is removed
75
+ - a random train/test split on time-ordered data → the optimistic metric it produces and the time-based split that fixes it
76
+ - preprocessing written twice (once in training, once in serving) → the train/serve skew waiting to happen; share the code path
77
+
78
+ ## Output
79
+
80
+ ```markdown
81
+ ## ML Engineering Plan
82
+
83
+ **System:** {what the model decides} · **Lanes in scope:** {of the five}
84
+ **Explicit assumptions:** {labels / serving / traffic / monitoring owner}
85
+
86
+ ### Data contract
87
+ {schema, label source + latency, leakage checks}
88
+
89
+ ### Training & eval gate
90
+ {reproducibility pins, split axis, metric + threshold + slices}
91
+
92
+ ### Serving & monitoring
93
+ {batch/online, skew guard, drift signals, rollback trigger}
94
+
95
+ ### Risks
96
+ - {the failure mode} → {the guard}
97
+ ```
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: dev/safety-review
3
+ description: >
4
+ Audits a change or an automation for destructive, irreversible
5
+ operations — bulk deletes, DROP/TRUNCATE, force pushes, mass emails,
6
+ raw disk or filesystem writes — and checks each has a guard: a scope
7
+ limit, a dry-run, a confirmation, a backup, a rollback. TRIGGER: "/dev
8
+ safety-review", "is this safe to run", "destructive operation", "will
9
+ this delete/overwrite", "review this migration/script/cron", "isto
10
+ apaga alguma coisa?", "revê este script destrutivo", "posso correr isto
11
+ em produção?"; run before shipping a migration, a bulk job, a cron, or
12
+ an autonomous automation. SKIP: exploitable-vulnerability review ->
13
+ dev/exploit-triage wins; general code review -> dev/code-review wins;
14
+ the deploy/rollout mechanics themselves -> dev/deploy wins.
15
+ allowed-tools: [Read, Grep, Glob]
16
+ metadata:
17
+ origin: arkaos
18
+ ---
19
+
20
+ # Safety Review — `/dev safety-review`
21
+
22
+ > **Agent:** Bruno (Security Engineer) | **Framework:** Blast-radius analysis, reversibility, guard-before-execute
23
+
24
+ The dangerous change is rarely the one that fails — it is the one that
25
+ succeeds at the wrong scope. A migration that runs, a cleanup cron that
26
+ fires, a bulk update that commits: each does exactly what it was told, to
27
+ more rows or files or people than the author pictured. This pass finds
28
+ the destructive and irreversible operations in a change or an automation
29
+ and checks that every one is fenced — scoped, reversible, dry-runnable,
30
+ or gated behind a confirmation — before it can run unattended.
31
+
32
+ ## What to flag
33
+
34
+ | Operation | The guard it needs |
35
+ |-----------|--------------------|
36
+ | **Bulk delete / update** (`DELETE`/`UPDATE` without a tight `WHERE`, `deleteMany`, `rm -rf`) | An explicit scope, a row-count check, and a backup or soft-delete |
37
+ | **Schema destruction** (`DROP`, `TRUNCATE`, a down-migration that loses data) | Reversibility or a snapshot; never irreversible without sign-off |
38
+ | **Force / history rewrite** (`git push --force`, `reset --hard`, `filter-branch`) | Branch scoping; never on a shared branch |
39
+ | **Mass outbound** (bulk email/notification/webhook) | A dry-run count, a rate limit, a test-recipient path |
40
+ | **Raw disk / filesystem** (`dd`, recursive writes, `chmod -R`) | Path scoping and a confirmation |
41
+ | **Unbounded loop / job** over production data | A limit, idempotency, and a resumable/rollback path |
42
+
43
+ ## Process
44
+
45
+ 1. Grep the change/automation for the destructive verbs — `DELETE`, `DROP`, `TRUNCATE`, `deleteMany`, `rm`, `--force`, `reset --hard`, bulk-send calls.
46
+ 2. For each, determine the **blast radius**: what is the maximum it can affect if a parameter is wrong or empty (an empty `WHERE` deletes the table; a null filter matches everything)?
47
+ 3. Check the guard is present and correct: scope, dry-run, confirmation, backup, rollback. A destructive op with no guard, or a guard that fails open, is a finding.
48
+ 4. Rank by reversibility — an irreversible op with no backup is critical; a scoped, reversible one is clean.
49
+
50
+ ## Proactive Triggers
51
+
52
+ Surface these WITHOUT being asked:
53
+
54
+ - a `DELETE`/`UPDATE` whose `WHERE` could evaluate to empty or all-rows → the full-table blast radius and the scope/guard it needs
55
+ - a down-migration or `DROP`/`TRUNCATE` with no snapshot → the irreversible data loss
56
+ - an automation that runs unattended (cron, agent, CI job) touching production data with no dry-run or rollback → the guard to add before it ships
57
+
58
+ ## Output
59
+
60
+ ```markdown
61
+ ## Safety Review
62
+
63
+ **Scope:** {change / automation reviewed}
64
+ **Verdict:** {SAFE TO RUN / GUARDS REQUIRED}
65
+
66
+ ### Destructive operations
67
+ - **{operation}** {file}:{line}
68
+ - **Blast radius:** {worst case if a parameter is wrong/empty}
69
+ - **Reversible?** {yes + how / no}
70
+ - **Guard present?** {scope/dry-run/confirmation/backup — or missing}
71
+ - **Fix:** {the guard to add before this runs}
72
+
73
+ ### Safe
74
+ {operations already correctly fenced}
75
+ ```
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_meta": {
3
3
  "generator": "scripts/marketplace_gen.py",
4
- "version": "4.19.0",
4
+ "version": "4.20.0",
5
5
  "marketplace": "arkaos"
6
6
  },
7
7
  "structural": {
@@ -1095,6 +1095,19 @@
1095
1095
  "origin": "arkaos"
1096
1096
  }
1097
1097
  },
1098
+ "exploit-triage": {
1099
+ "depts": [
1100
+ "dev"
1101
+ ],
1102
+ "curated": false,
1103
+ "plugins": [
1104
+ "arkaos-dev@arkaos"
1105
+ ],
1106
+ "collision": false,
1107
+ "provenance": {
1108
+ "origin": "arkaos"
1109
+ }
1110
+ },
1098
1111
  "extract-data": {
1099
1112
  "depts": [
1100
1113
  "strategy"
@@ -1633,6 +1646,32 @@
1633
1646
  "origin": "arkaos"
1634
1647
  }
1635
1648
  },
1649
+ "ml-adoption-playbook": {
1650
+ "depts": [
1651
+ "dev"
1652
+ ],
1653
+ "curated": false,
1654
+ "plugins": [
1655
+ "arkaos-dev@arkaos"
1656
+ ],
1657
+ "collision": false,
1658
+ "provenance": {
1659
+ "origin": "arkaos"
1660
+ }
1661
+ },
1662
+ "mle-workflow": {
1663
+ "depts": [
1664
+ "dev"
1665
+ ],
1666
+ "curated": false,
1667
+ "plugins": [
1668
+ "arkaos-dev@arkaos"
1669
+ ],
1670
+ "collision": false,
1671
+ "provenance": {
1672
+ "origin": "arkaos"
1673
+ }
1674
+ },
1636
1675
  "moat-analysis": {
1637
1676
  "depts": [
1638
1677
  "strategy"
@@ -2475,6 +2514,19 @@
2475
2514
  "origin": "arkaos"
2476
2515
  }
2477
2516
  },
2517
+ "safety-review": {
2518
+ "depts": [
2519
+ "dev"
2520
+ ],
2521
+ "curated": false,
2522
+ "plugins": [
2523
+ "arkaos-dev@arkaos"
2524
+ ],
2525
+ "collision": false,
2526
+ "provenance": {
2527
+ "origin": "arkaos"
2528
+ }
2529
+ },
2478
2530
  "scaffold": {
2479
2531
  "depts": [
2480
2532
  "dev"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkaos",
3
- "version": "4.19.0",
3
+ "version": "4.20.0",
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 = "4.19.0"
3
+ version = "4.20.0"
4
4
  description = "Core engine for ArkaOS — The Operating System for AI Agent Teams"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}