arkaos 4.20.0 → 4.21.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 +1 -1
- package/VERSION +1 -1
- package/arka/SKILL.md +1 -1
- package/departments/kb/skills/knowledge-ops/SKILL.md +88 -0
- package/departments/ops/skills/github-ops/SKILL.md +89 -0
- package/departments/ops/skills/terminal-ops/SKILL.md +83 -0
- package/knowledge/skills-manifest.json +40 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/README.md
CHANGED
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.21.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.
|
|
28
|
+
> 86 agents. 17 departments. 290 skills. Multi-runtime. Dashboard. Knowledge RAG.
|
|
29
29
|
|
|
30
30
|
## ⛔ Evidence flow — 4 gates (NON-NEGOTIABLE)
|
|
31
31
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kb/knowledge-ops
|
|
3
|
+
description: >
|
|
4
|
+
Writes a note to the Obsidian vault the evidence-first way and verifies
|
|
5
|
+
it landed — a note is not "saved" until it is read back, placed in the
|
|
6
|
+
right department path, linked with real `[[wikilinks]]`, and (when
|
|
7
|
+
indexed) confirmed searchable. TRIGGER: "/kb knowledge-ops", "save this
|
|
8
|
+
to the vault", "did the note land", "file this in Obsidian", "guarda
|
|
9
|
+
isto no vault", "confirma que a nota ficou", "indexa isto"; use when
|
|
10
|
+
capturing or reorganising knowledge that must be findable later, not
|
|
11
|
+
lost. SKIP: reading/answering from existing notes -> kb/search-kb wins;
|
|
12
|
+
a vault-wide freshness audit or broken-link sweep across existing notes
|
|
13
|
+
-> kb/knowledge-review wins; turning a source (video, PDF, article) into
|
|
14
|
+
structured notes -> kb/learn-content wins; planning a research effort ->
|
|
15
|
+
kb/research-plan wins.
|
|
16
|
+
allowed-tools: [Read, Write, Edit, Grep, Glob, Bash]
|
|
17
|
+
metadata:
|
|
18
|
+
origin: arkaos
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<!-- arka:kb-first-prefix begin -->
|
|
22
|
+
> **KB-first:** query `mcp__obsidian__search_notes` and cite
|
|
23
|
+
> `[[wikilinks]]` — or declare the gap — BEFORE any external research.
|
|
24
|
+
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
25
|
+
<!-- arka:kb-first-prefix end -->
|
|
26
|
+
|
|
27
|
+
# Knowledge Ops — `/kb knowledge-ops`
|
|
28
|
+
|
|
29
|
+
> **Agent:** Clara (Knowledge Director) | **Framework:** Zettelkasten, evidence-flow, KB-first
|
|
30
|
+
|
|
31
|
+
Saved means the vault can give it back. Not written-to-disk, not "the
|
|
32
|
+
note is created" — retrievable: in the right department folder, with
|
|
33
|
+
frontmatter that parses, with links that resolve, and picked up by the
|
|
34
|
+
index that will be searched next month. Miss any one of those and the
|
|
35
|
+
note is effort spent capturing knowledge that cannot be found the day it
|
|
36
|
+
counts. Knowledge-ops holds every vault write to that acceptance test and
|
|
37
|
+
does not call it done until the note has been read back and, when it must
|
|
38
|
+
surface later, confirmed searchable.
|
|
39
|
+
|
|
40
|
+
## Principles
|
|
41
|
+
|
|
42
|
+
1. **Search before you write.** Query the vault first — a note that
|
|
43
|
+
duplicates an existing one should extend it, not fork it (KB-first,
|
|
44
|
+
`arka/SKILL.md`).
|
|
45
|
+
2. **Right path, valid frontmatter.** File under the correct department
|
|
46
|
+
MOC with parseable YAML frontmatter; a note in the wrong place is a
|
|
47
|
+
note lost.
|
|
48
|
+
3. **Links must resolve.** Every `[[wikilink]]` points at a note that
|
|
49
|
+
exists (or is deliberately a forward reference you will create); a
|
|
50
|
+
dead link is a broken trail, not a decoration.
|
|
51
|
+
4. **Read it back.** After writing, read the note — confirm the content,
|
|
52
|
+
frontmatter, and links are as intended, not as assumed.
|
|
53
|
+
5. **Confirm findable.** When the note must be retrievable, index it and
|
|
54
|
+
verify a search returns it. "Saved" means "the vault can return it."
|
|
55
|
+
|
|
56
|
+
## Process
|
|
57
|
+
|
|
58
|
+
1. Search the vault for the topic; decide extend-vs-create.
|
|
59
|
+
2. Write or patch the note in the right department path, with frontmatter
|
|
60
|
+
and resolving `[[wikilinks]]`.
|
|
61
|
+
3. Read the note back and check content, frontmatter, and every link.
|
|
62
|
+
4. If retrieval matters, index and confirm a search surfaces it.
|
|
63
|
+
5. Report what landed, where, and how it was verified.
|
|
64
|
+
|
|
65
|
+
## Proactive Triggers
|
|
66
|
+
|
|
67
|
+
Surface these WITHOUT being asked:
|
|
68
|
+
|
|
69
|
+
- a note written with no `[[wikilinks]]` → the orphan it becomes, and the neighbours to link
|
|
70
|
+
- a `[[link]]` whose target note does not exist → the dead trail, and whether to create the target or fix the link
|
|
71
|
+
- knowledge captured but never indexed when it will be searched for later → the index step that makes it findable
|
|
72
|
+
|
|
73
|
+
## Output
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Knowledge Ops
|
|
77
|
+
|
|
78
|
+
**Captured:** {what was written / reorganised}
|
|
79
|
+
**Location:** {department path + note title}
|
|
80
|
+
|
|
81
|
+
### Verified
|
|
82
|
+
- frontmatter: {parsed OK}
|
|
83
|
+
- links: {N wikilinks, all resolve}
|
|
84
|
+
- read-back: {confirmed}
|
|
85
|
+
- searchable: {index confirmed / n/a}
|
|
86
|
+
|
|
87
|
+
**Verdict:** {SAVED and findable / INCOMPLETE — what still needs fixing}
|
|
88
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ops/github-ops
|
|
3
|
+
description: >
|
|
4
|
+
Drives git and GitHub operations under the branch-isolation and
|
|
5
|
+
evidence rules — isolated branch, staging by explicit path, a PR whose
|
|
6
|
+
CI is proven CLEAN before any merge, and a verified push — never a merge
|
|
7
|
+
on a still-pending check. TRIGGER: "/ops github-ops", "open a PR",
|
|
8
|
+
"merge when green", "is this safe to merge", "abre um PR", "faz merge
|
|
9
|
+
quando o CI passar", "cria a branch e o PR", "confirma os checks"; use
|
|
10
|
+
for the branch → commit → PR → merge lifecycle of a change. SKIP: the
|
|
11
|
+
version-bump/tag/npm-publish release pipeline -> dev/release wins; a
|
|
12
|
+
CI/CD deploy to infrastructure -> dev/deploy wins; running arbitrary
|
|
13
|
+
non-git shell steps -> ops/terminal-ops wins.
|
|
14
|
+
allowed-tools: [Bash, Read, Grep, Glob]
|
|
15
|
+
metadata:
|
|
16
|
+
origin: arkaos
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- arka:kb-first-prefix begin -->
|
|
20
|
+
> **KB-first:** query `mcp__obsidian__search_notes` and cite
|
|
21
|
+
> `[[wikilinks]]` — or declare the gap — BEFORE any external research.
|
|
22
|
+
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
23
|
+
<!-- arka:kb-first-prefix end -->
|
|
24
|
+
|
|
25
|
+
# GitHub Ops — `/ops github-ops`
|
|
26
|
+
|
|
27
|
+
> **Agent:** Daniel (Ops Lead) | **Framework:** Branch-isolation (NON-NEGOTIABLE), evidence-flow, merge-on-green
|
|
28
|
+
|
|
29
|
+
"I opened the PR" and "the PR is mergeable with every check green" are
|
|
30
|
+
not the same sentence, and treating them as one is how a red build lands
|
|
31
|
+
on the default branch. A merge fired while CI was still `pending`, a
|
|
32
|
+
`git add -A` that swept an unrelated file into the commit, a force-push
|
|
33
|
+
that quietly rewrote a teammate's history — each is a git operation that
|
|
34
|
+
*ran* without being *verified*. This skill drives the branch → commit →
|
|
35
|
+
PR → merge lifecycle so that every step is isolated and proven: staged by
|
|
36
|
+
explicit path, pushed and confirmed, and merged only once `gh pr checks`
|
|
37
|
+
reads CLEAN.
|
|
38
|
+
|
|
39
|
+
## Rules
|
|
40
|
+
|
|
41
|
+
1. **Branch-isolation, always.** Never commit to the default branch. Cut
|
|
42
|
+
a feature branch first; the change lives and dies on it (constitution
|
|
43
|
+
`branch-isolation`, NON-NEGOTIABLE).
|
|
44
|
+
2. **Stage by explicit path.** `git add <path>` for what belongs in the
|
|
45
|
+
commit — never `git add -A`/`.` blindly. Verify with `git status` and
|
|
46
|
+
`git diff --cached` before committing; a parallel agent's file must
|
|
47
|
+
not leak in.
|
|
48
|
+
3. **Merge only on proven green.** After opening the PR, poll
|
|
49
|
+
`gh pr checks <n>` until zero `pending` and zero failures, and
|
|
50
|
+
`mergeStateStatus` is `CLEAN`. A merge on a pending check is a defect,
|
|
51
|
+
not a shortcut.
|
|
52
|
+
4. **Force-push is scoped and lease-guarded.** Only after a deliberate
|
|
53
|
+
rebase, only `--force-with-lease`, never on a shared branch.
|
|
54
|
+
5. **Verify the push landed.** Read the ref update line; don't assume.
|
|
55
|
+
|
|
56
|
+
## Process
|
|
57
|
+
|
|
58
|
+
1. Confirm the current branch. On the default branch → create the feature
|
|
59
|
+
branch before touching anything.
|
|
60
|
+
2. Stage by path, review `git diff --cached`, commit with a conventional
|
|
61
|
+
message.
|
|
62
|
+
3. Push and read the ref-update confirmation.
|
|
63
|
+
4. Open the PR; then poll `gh pr checks` to completion.
|
|
64
|
+
5. Merge only when checks are CLEAN; confirm the merge and sync the
|
|
65
|
+
default branch.
|
|
66
|
+
|
|
67
|
+
## Proactive Triggers
|
|
68
|
+
|
|
69
|
+
Surface these WITHOUT being asked:
|
|
70
|
+
|
|
71
|
+
- a commit staged with `git add -A`/`.` → the explicit-path staging and the `git diff --cached` check that prevents a leak
|
|
72
|
+
- a merge requested while `gh pr checks` still shows `pending` → wait-for-green before the merge, with the check status quoted
|
|
73
|
+
- a `git push --force` without `--force-with-lease` on a branch others may hold → the lease-guarded form, or don't
|
|
74
|
+
|
|
75
|
+
## Output
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
## GitHub Ops
|
|
79
|
+
|
|
80
|
+
**Change:** {what the branch carries}
|
|
81
|
+
**Branch:** {feature branch, off default}
|
|
82
|
+
|
|
83
|
+
### Steps (with evidence)
|
|
84
|
+
- staged: {paths} — `git diff --cached` reviewed
|
|
85
|
+
- pushed: {ref-update line}
|
|
86
|
+
- PR: #{n} — checks {CLEAN / list of pending→pass}
|
|
87
|
+
|
|
88
|
+
**Verdict:** {MERGED after green, confirmed / HELD — checks not yet CLEAN}
|
|
89
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ops/terminal-ops
|
|
3
|
+
description: >
|
|
4
|
+
Runs shell operations the evidence-first way — every command's exit
|
|
5
|
+
code and real output are captured and checked before anything is
|
|
6
|
+
reported as done, and a non-zero exit stops the chain instead of being
|
|
7
|
+
narrated over. TRIGGER: "/ops terminal-ops", "run this safely",
|
|
8
|
+
"execute and verify", "did this command actually work", "corre isto e
|
|
9
|
+
confirma", "verifica o exit code", "isto correu mesmo?"; use when a task
|
|
10
|
+
hangs on a sequence of shell commands whose success must be proven, not
|
|
11
|
+
assumed. SKIP: git/GitHub-specific flows (branch, PR, merge-on-green) ->
|
|
12
|
+
ops/github-ops wins; a CI/CD deployment pipeline -> dev/deploy wins;
|
|
13
|
+
documenting the procedure instead of running it -> ops/sop-create wins.
|
|
14
|
+
allowed-tools: [Bash, Read, Grep, Glob]
|
|
15
|
+
metadata:
|
|
16
|
+
origin: arkaos
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- arka:kb-first-prefix begin -->
|
|
20
|
+
> **KB-first:** query `mcp__obsidian__search_notes` and cite
|
|
21
|
+
> `[[wikilinks]]` — or declare the gap — BEFORE any external research.
|
|
22
|
+
> Full doctrine: `arka/SKILL.md` (KB-First Research).
|
|
23
|
+
<!-- arka:kb-first-prefix end -->
|
|
24
|
+
|
|
25
|
+
# Terminal Ops — `/ops terminal-ops`
|
|
26
|
+
|
|
27
|
+
> **Agent:** Daniel (Ops Lead) | **Framework:** Evidence-flow G3, fail-fast, exit-code-as-truth
|
|
28
|
+
|
|
29
|
+
The deploy script exits 0. One line up sits `Error: connection refused`
|
|
30
|
+
— but a wrapper swallowed the real status and handed back the echo, so
|
|
31
|
+
the pipeline read green and shipped a half-applied migration. No one
|
|
32
|
+
lied; the output simply never got checked against the exit code, and the
|
|
33
|
+
exit code never got checked at all. Terminal-ops runs shell work under a
|
|
34
|
+
single rule: the status is the verdict and the output is only a hint
|
|
35
|
+
toward it. Anything that matters has its exit code captured and read
|
|
36
|
+
against a success signal named in advance, and a non-zero exit halts the
|
|
37
|
+
sequence rather than scrolling past.
|
|
38
|
+
|
|
39
|
+
## Principles
|
|
40
|
+
|
|
41
|
+
1. **Exit code is the truth, output is a hint.** `echo $?` (or the tool's
|
|
42
|
+
own status) after anything that matters. A zero exit with an empty
|
|
43
|
+
result is still a result to inspect; a non-zero exit is a stop.
|
|
44
|
+
2. **Chain on success, never on hope.** Sequence with `&&` or an explicit
|
|
45
|
+
status check between steps, so step 2 cannot run on step 1's failure.
|
|
46
|
+
3. **Capture, then read.** Redirect output you need to judge (`2>&1`),
|
|
47
|
+
read it, and quote the line that proves the claim — never report "done"
|
|
48
|
+
from memory of what the command *should* do.
|
|
49
|
+
4. **Least surprise on destructive verbs.** Before `rm`/`mv`/`>`
|
|
50
|
+
overwrites, confirm scope (what it matches) — hand off to
|
|
51
|
+
`ops/github-ops` for history rewrites and `dev/db-design` for schema.
|
|
52
|
+
|
|
53
|
+
## Process
|
|
54
|
+
|
|
55
|
+
1. State the goal and the **success signal** in advance — the exact exit
|
|
56
|
+
code, file, or output that will prove it.
|
|
57
|
+
2. Run the command, capturing status and the output you need to judge.
|
|
58
|
+
3. Read the result against the success signal. Match → proceed. Mismatch
|
|
59
|
+
→ stop, surface the real error line, do not continue the chain.
|
|
60
|
+
4. Report with the evidence: the command, its exit code, and the line
|
|
61
|
+
that confirms it.
|
|
62
|
+
|
|
63
|
+
## Proactive Triggers
|
|
64
|
+
|
|
65
|
+
Surface these WITHOUT being asked:
|
|
66
|
+
|
|
67
|
+
- a multi-step sequence where a later step assumes an earlier one passed → the status check to insert between them
|
|
68
|
+
- a command whose success was reported from its output text, not its exit code → the `$?`/status check that actually proves it
|
|
69
|
+
- a destructive command (`rm -rf`, `>`, `truncate`) with an unbounded or unchecked target → the scope confirmation before it runs
|
|
70
|
+
|
|
71
|
+
## Output
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
## Terminal Ops
|
|
75
|
+
|
|
76
|
+
**Goal:** {what the sequence had to achieve}
|
|
77
|
+
**Success signal:** {the exit code / file / output line that proves it}
|
|
78
|
+
|
|
79
|
+
### Executed
|
|
80
|
+
- `{command}` → exit {code} — {the line that confirms or refutes}
|
|
81
|
+
|
|
82
|
+
**Verdict:** {DONE, proven by evidence above / STOPPED at step N — real error}
|
|
83
|
+
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_meta": {
|
|
3
3
|
"generator": "scripts/marketplace_gen.py",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.21.0",
|
|
5
5
|
"marketplace": "arkaos"
|
|
6
6
|
},
|
|
7
7
|
"structural": {
|
|
@@ -1230,6 +1230,19 @@
|
|
|
1230
1230
|
"origin": "arkaos"
|
|
1231
1231
|
}
|
|
1232
1232
|
},
|
|
1233
|
+
"github-ops": {
|
|
1234
|
+
"depts": [
|
|
1235
|
+
"ops"
|
|
1236
|
+
],
|
|
1237
|
+
"curated": false,
|
|
1238
|
+
"plugins": [
|
|
1239
|
+
"arkaos-ops@arkaos"
|
|
1240
|
+
],
|
|
1241
|
+
"collision": false,
|
|
1242
|
+
"provenance": {
|
|
1243
|
+
"origin": "arkaos"
|
|
1244
|
+
}
|
|
1245
|
+
},
|
|
1233
1246
|
"growth-loop": {
|
|
1234
1247
|
"depts": [
|
|
1235
1248
|
"marketing"
|
|
@@ -1425,6 +1438,19 @@
|
|
|
1425
1438
|
"origin": "arkaos"
|
|
1426
1439
|
}
|
|
1427
1440
|
},
|
|
1441
|
+
"knowledge-ops": {
|
|
1442
|
+
"depts": [
|
|
1443
|
+
"kb"
|
|
1444
|
+
],
|
|
1445
|
+
"curated": false,
|
|
1446
|
+
"plugins": [
|
|
1447
|
+
"arkaos-kb@arkaos"
|
|
1448
|
+
],
|
|
1449
|
+
"collision": false,
|
|
1450
|
+
"provenance": {
|
|
1451
|
+
"origin": "arkaos"
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1428
1454
|
"knowledge-review": {
|
|
1429
1455
|
"depts": [
|
|
1430
1456
|
"kb"
|
|
@@ -2927,6 +2953,19 @@
|
|
|
2927
2953
|
"origin": "arkaos"
|
|
2928
2954
|
}
|
|
2929
2955
|
},
|
|
2956
|
+
"terminal-ops": {
|
|
2957
|
+
"depts": [
|
|
2958
|
+
"ops"
|
|
2959
|
+
],
|
|
2960
|
+
"curated": false,
|
|
2961
|
+
"plugins": [
|
|
2962
|
+
"arkaos-ops@arkaos"
|
|
2963
|
+
],
|
|
2964
|
+
"collision": false,
|
|
2965
|
+
"provenance": {
|
|
2966
|
+
"origin": "arkaos"
|
|
2967
|
+
}
|
|
2968
|
+
},
|
|
2930
2969
|
"thumbnail-package": {
|
|
2931
2970
|
"depts": [
|
|
2932
2971
|
"content"
|
package/package.json
CHANGED