@kubbisec/ai-linux-x64 0.1.3 → 0.1.5

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.
Files changed (218) hide show
  1. package/bin/kubbisec +0 -0
  2. package/bundled/assets/terminal/banner-compact.ansi +7 -0
  3. package/bundled/assets/terminal/banner-wide.ansi +10 -0
  4. package/bundled/assets/terminal/logotipo-compact-fallback.ansi +7 -0
  5. package/bundled/assets/terminal/logotipo-compact.ansi +1 -0
  6. package/bundled/assets/terminal/logotipo-compact.png +0 -0
  7. package/bundled/assets/terminal/logotipo-wide-fallback.ansi +10 -0
  8. package/bundled/assets/terminal/logotipo-wide.ansi +1 -0
  9. package/bundled/assets/terminal/logotipo-wide.png +0 -0
  10. package/bundled/assets/terminal/mark.ansi +7 -0
  11. package/bundled/clarify/clarify-gate.d.ts +27 -0
  12. package/bundled/clarify/clarify-gate.d.ts.map +1 -0
  13. package/bundled/clarify/clarify-gate.js +152 -0
  14. package/bundled/clarify/clarify-gate.js.map +1 -0
  15. package/bundled/clarify/clarify-ui-state.d.ts +12 -0
  16. package/bundled/clarify/clarify-ui-state.d.ts.map +1 -0
  17. package/bundled/clarify/clarify-ui-state.js +27 -0
  18. package/bundled/clarify/clarify-ui-state.js.map +1 -0
  19. package/bundled/clarify/parse-clarify-answer.d.ts +16 -0
  20. package/bundled/clarify/parse-clarify-answer.d.ts.map +1 -0
  21. package/bundled/clarify/parse-clarify-answer.js +22 -0
  22. package/bundled/clarify/parse-clarify-answer.js.map +1 -0
  23. package/bundled/clarify/question-format.d.ts +36 -0
  24. package/bundled/clarify/question-format.d.ts.map +1 -0
  25. package/bundled/clarify/question-format.js +150 -0
  26. package/bundled/clarify/question-format.js.map +1 -0
  27. package/bundled/clarify/questionnaire-tool.d.ts +25 -0
  28. package/bundled/clarify/questionnaire-tool.d.ts.map +1 -0
  29. package/bundled/clarify/questionnaire-tool.js +157 -0
  30. package/bundled/clarify/questionnaire-tool.js.map +1 -0
  31. package/bundled/clarify/session-questionnaire.d.ts +23 -0
  32. package/bundled/clarify/session-questionnaire.d.ts.map +1 -0
  33. package/bundled/clarify/session-questionnaire.js +319 -0
  34. package/bundled/clarify/session-questionnaire.js.map +1 -0
  35. package/bundled/clarify/session-questionnaire.types.d.ts +45 -0
  36. package/bundled/clarify/session-questionnaire.types.d.ts.map +1 -0
  37. package/bundled/clarify/session-questionnaire.types.js +13 -0
  38. package/bundled/clarify/session-questionnaire.types.js.map +1 -0
  39. package/bundled/config/config.d.ts +14 -0
  40. package/bundled/config/config.d.ts.map +1 -0
  41. package/bundled/config/config.js +58 -0
  42. package/bundled/config/config.js.map +1 -0
  43. package/bundled/config/ensure-kubbisec-project-settings.d.ts +20 -0
  44. package/bundled/config/ensure-kubbisec-project-settings.d.ts.map +1 -0
  45. package/bundled/config/ensure-kubbisec-project-settings.js +65 -0
  46. package/bundled/config/ensure-kubbisec-project-settings.js.map +1 -0
  47. package/bundled/config/feature-flags.d.ts +2 -0
  48. package/bundled/config/feature-flags.d.ts.map +1 -0
  49. package/bundled/config/feature-flags.js +2 -0
  50. package/bundled/config/feature-flags.js.map +1 -0
  51. package/bundled/config/format-kubbisec-footer-status.d.ts +2 -0
  52. package/bundled/config/format-kubbisec-footer-status.d.ts.map +1 -0
  53. package/bundled/config/format-kubbisec-footer-status.js +21 -0
  54. package/bundled/config/format-kubbisec-footer-status.js.map +1 -0
  55. package/bundled/config/resolve-agents-context-file.d.ts +4 -0
  56. package/bundled/config/resolve-agents-context-file.d.ts.map +1 -0
  57. package/bundled/config/resolve-agents-context-file.js +48 -0
  58. package/bundled/config/resolve-agents-context-file.js.map +1 -0
  59. package/bundled/config/resource-budget.d.ts +17 -0
  60. package/bundled/config/resource-budget.d.ts.map +1 -0
  61. package/bundled/config/resource-budget.js +35 -0
  62. package/bundled/config/resource-budget.js.map +1 -0
  63. package/bundled/copy/kubbisec-shell-copy.d.ts +8 -0
  64. package/bundled/copy/kubbisec-shell-copy.d.ts.map +1 -0
  65. package/bundled/copy/kubbisec-shell-copy.js +8 -0
  66. package/bundled/copy/kubbisec-shell-copy.js.map +1 -0
  67. package/bundled/edit-format.md +17 -0
  68. package/bundled/extensions/cli-local-shared.d.ts +26 -0
  69. package/bundled/extensions/cli-local-shared.d.ts.map +1 -0
  70. package/bundled/extensions/cli-local-shared.js +97 -0
  71. package/bundled/extensions/cli-local-shared.js.map +1 -0
  72. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts +17 -0
  73. package/bundled/extensions/kubbisec-aspm-local.extension.d.ts.map +1 -0
  74. package/bundled/extensions/kubbisec-aspm-local.extension.js +134 -0
  75. package/bundled/extensions/kubbisec-aspm-local.extension.js.map +1 -0
  76. package/bundled/extensions/kubbisec-brand.extension.d.ts +20 -0
  77. package/bundled/extensions/kubbisec-brand.extension.d.ts.map +1 -0
  78. package/bundled/extensions/kubbisec-brand.extension.js +84 -0
  79. package/bundled/extensions/kubbisec-brand.extension.js.map +1 -0
  80. package/bundled/extensions/kubbisec-byok-provider.extension.d.ts +30 -0
  81. package/bundled/extensions/kubbisec-byok-provider.extension.d.ts.map +1 -0
  82. package/bundled/extensions/kubbisec-byok-provider.extension.js +44 -0
  83. package/bundled/extensions/kubbisec-byok-provider.extension.js.map +1 -0
  84. package/bundled/extensions/kubbisec-clarify.extension.d.ts +45 -0
  85. package/bundled/extensions/kubbisec-clarify.extension.d.ts.map +1 -0
  86. package/bundled/extensions/kubbisec-clarify.extension.js +305 -0
  87. package/bundled/extensions/kubbisec-clarify.extension.js.map +1 -0
  88. package/bundled/extensions/kubbisec-footer.extension.d.ts +64 -0
  89. package/bundled/extensions/kubbisec-footer.extension.d.ts.map +1 -0
  90. package/bundled/extensions/kubbisec-footer.extension.js +187 -0
  91. package/bundled/extensions/kubbisec-footer.extension.js.map +1 -0
  92. package/bundled/extensions/kubbisec-github-local.extension.d.ts +23 -0
  93. package/bundled/extensions/kubbisec-github-local.extension.d.ts.map +1 -0
  94. package/bundled/extensions/kubbisec-github-local.extension.js +105 -0
  95. package/bundled/extensions/kubbisec-github-local.extension.js.map +1 -0
  96. package/bundled/extensions/kubbisec-memory.extension.d.ts +12 -0
  97. package/bundled/extensions/kubbisec-memory.extension.d.ts.map +1 -0
  98. package/bundled/extensions/kubbisec-memory.extension.js +107 -0
  99. package/bundled/extensions/kubbisec-memory.extension.js.map +1 -0
  100. package/bundled/extensions/kubbisec-naus-local.extension.d.ts +17 -0
  101. package/bundled/extensions/kubbisec-naus-local.extension.d.ts.map +1 -0
  102. package/bundled/extensions/kubbisec-naus-local.extension.js +125 -0
  103. package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -0
  104. package/bundled/extensions/kubbisec-platform-tools.extension.d.ts +27 -0
  105. package/bundled/extensions/kubbisec-platform-tools.extension.d.ts.map +1 -0
  106. package/bundled/extensions/kubbisec-platform-tools.extension.js +144 -0
  107. package/bundled/extensions/kubbisec-platform-tools.extension.js.map +1 -0
  108. package/bundled/extensions/kubbisec-runtime-status.extension.d.ts +13 -0
  109. package/bundled/extensions/kubbisec-runtime-status.extension.d.ts.map +1 -0
  110. package/bundled/extensions/kubbisec-runtime-status.extension.js +18 -0
  111. package/bundled/extensions/kubbisec-runtime-status.extension.js.map +1 -0
  112. package/bundled/extensions/kubbisec-scope.extension.d.ts +14 -0
  113. package/bundled/extensions/kubbisec-scope.extension.d.ts.map +1 -0
  114. package/bundled/extensions/kubbisec-scope.extension.js +14 -0
  115. package/bundled/extensions/kubbisec-scope.extension.js.map +1 -0
  116. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts +24 -0
  117. package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts.map +1 -0
  118. package/bundled/extensions/kubbisec-skill-mentions.extension.js +54 -0
  119. package/bundled/extensions/kubbisec-skill-mentions.extension.js.map +1 -0
  120. package/bundled/extensions/kubbisec-skill-telemetry.extension.d.ts +6 -0
  121. package/bundled/extensions/kubbisec-skill-telemetry.extension.d.ts.map +1 -0
  122. package/bundled/extensions/kubbisec-skill-telemetry.extension.js +85 -0
  123. package/bundled/extensions/kubbisec-skill-telemetry.extension.js.map +1 -0
  124. package/bundled/extensions/kubbisec-ui.extension.d.ts +6 -0
  125. package/bundled/extensions/kubbisec-ui.extension.d.ts.map +1 -0
  126. package/bundled/extensions/kubbisec-ui.extension.js +116 -0
  127. package/bundled/extensions/kubbisec-ui.extension.js.map +1 -0
  128. package/bundled/extensions/kubbisec-workflow.extension.d.ts +38 -0
  129. package/bundled/extensions/kubbisec-workflow.extension.d.ts.map +1 -0
  130. package/bundled/extensions/kubbisec-workflow.extension.js +169 -0
  131. package/bundled/extensions/kubbisec-workflow.extension.js.map +1 -0
  132. package/bundled/gate-system.md +27 -0
  133. package/bundled/node_modules/@kubbisec/chat-memory/dist/client.d.ts +20 -0
  134. package/bundled/node_modules/@kubbisec/chat-memory/dist/client.d.ts.map +1 -0
  135. package/bundled/node_modules/@kubbisec/chat-memory/dist/client.js +121 -0
  136. package/bundled/node_modules/@kubbisec/chat-memory/dist/client.js.map +1 -0
  137. package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.d.ts +15 -0
  138. package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.d.ts.map +1 -0
  139. package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.js +34 -0
  140. package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.js.map +1 -0
  141. package/bundled/node_modules/@kubbisec/chat-memory/dist/index.d.ts +12 -0
  142. package/bundled/node_modules/@kubbisec/chat-memory/dist/index.d.ts.map +1 -0
  143. package/bundled/node_modules/@kubbisec/chat-memory/dist/index.js +35 -0
  144. package/bundled/node_modules/@kubbisec/chat-memory/dist/index.js.map +1 -0
  145. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.d.ts +4 -0
  146. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.d.ts.map +1 -0
  147. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js +89 -0
  148. package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js.map +1 -0
  149. package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.d.ts +2 -0
  150. package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.d.ts.map +1 -0
  151. package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.js +13 -0
  152. package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.js.map +1 -0
  153. package/bundled/node_modules/@kubbisec/chat-memory/dist/types.d.ts +24 -0
  154. package/bundled/node_modules/@kubbisec/chat-memory/dist/types.d.ts.map +1 -0
  155. package/bundled/node_modules/@kubbisec/chat-memory/dist/types.js +9 -0
  156. package/bundled/node_modules/@kubbisec/chat-memory/dist/types.js.map +1 -0
  157. package/bundled/node_modules/@kubbisec/chat-memory/package.json +32 -0
  158. package/bundled/node_modules/@kubbisec/home/dist/index.d.ts +3 -0
  159. package/bundled/node_modules/@kubbisec/home/dist/index.d.ts.map +1 -0
  160. package/bundled/node_modules/@kubbisec/home/dist/index.js +3 -0
  161. package/bundled/node_modules/@kubbisec/home/dist/index.js.map +1 -0
  162. package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts +10 -0
  163. package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts.map +1 -0
  164. package/bundled/node_modules/@kubbisec/home/dist/migrate.js +107 -0
  165. package/bundled/node_modules/@kubbisec/home/dist/migrate.js.map +1 -0
  166. package/bundled/node_modules/@kubbisec/home/dist/paths.d.ts +22 -0
  167. package/bundled/node_modules/@kubbisec/home/dist/paths.d.ts.map +1 -0
  168. package/bundled/node_modules/@kubbisec/home/dist/paths.js +69 -0
  169. package/bundled/node_modules/@kubbisec/home/dist/paths.js.map +1 -0
  170. package/bundled/node_modules/@kubbisec/home/package.json +26 -0
  171. package/bundled/reflect-system.md +31 -0
  172. package/bundled/resolve-bundled-dist-root.js +165 -0
  173. package/bundled/resolve-bundled-dist-root.js.map +1 -0
  174. package/bundled/skills/aspm-platform/SKILL.md +58 -0
  175. package/bundled/skills/chat-mention-render.d.ts +7 -0
  176. package/bundled/skills/chat-mention-render.d.ts.map +1 -0
  177. package/bundled/skills/chat-mention-render.js +122 -0
  178. package/bundled/skills/chat-mention-render.js.map +1 -0
  179. package/bundled/skills/chat-mention-render.test.ts +47 -0
  180. package/bundled/skills/chat-mention-render.ts +141 -0
  181. package/bundled/skills/chat-mentions.d.ts +27 -0
  182. package/bundled/skills/chat-mentions.d.ts.map +1 -0
  183. package/bundled/skills/chat-mentions.js +104 -0
  184. package/bundled/skills/chat-mentions.js.map +1 -0
  185. package/bundled/skills/chat-mentions.test.ts +32 -0
  186. package/bundled/skills/chat-mentions.ts +126 -0
  187. package/bundled/skills/github-local/SKILL.md +16 -0
  188. package/bundled/skills/list-bundled-skills.d.ts +7 -0
  189. package/bundled/skills/list-bundled-skills.d.ts.map +1 -0
  190. package/bundled/skills/list-bundled-skills.js +44 -0
  191. package/bundled/skills/list-bundled-skills.js.map +1 -0
  192. package/bundled/skills/list-bundled-skills.ts +46 -0
  193. package/bundled/skills/naus-pipelines/SKILL.md +31 -0
  194. package/bundled/skills/remediation/SKILL.md +12 -0
  195. package/bundled/skills/scanner-gitleaks/SKILL.md +10 -0
  196. package/bundled/skills/scanner-nmap/SKILL.md +10 -0
  197. package/bundled/skills/scanner-osv/SKILL.md +10 -0
  198. package/bundled/skills/scanner-semgrep/SKILL.md +10 -0
  199. package/bundled/skills/scanner-skipfish/SKILL.md +10 -0
  200. package/bundled/skills/scanner-sonar/SKILL.md +10 -0
  201. package/bundled/skills/scanner-syft/SKILL.md +10 -0
  202. package/bundled/skills/scanner-trivy/SKILL.md +10 -0
  203. package/bundled/skills/sec-brainstorm/SKILL.md +74 -0
  204. package/bundled/skills/sec-clarify/SKILL.md +68 -0
  205. package/bundled/skills/sec-debug/SKILL.md +94 -0
  206. package/bundled/skills/sec-plan/SKILL.md +101 -0
  207. package/bundled/skills/sec-review/SKILL.md +110 -0
  208. package/bundled/skills/sec-review/code-reviewer-sec.md +176 -0
  209. package/bundled/skills/sec-using-skills/SKILL.md +79 -0
  210. package/bundled/skills/sec-verify/SKILL.md +77 -0
  211. package/bundled/skills/skill-mention.d.ts +3 -0
  212. package/bundled/skills/skill-mention.d.ts.map +1 -0
  213. package/bundled/skills/skill-mention.js +3 -0
  214. package/bundled/skills/skill-mention.js.map +1 -0
  215. package/bundled/skills/skill-mention.test.ts +46 -0
  216. package/bundled/skills/skill-mention.ts +10 -0
  217. package/bundled/theme/kubbisec.json +93 -0
  218. package/package.json +3 -2
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: sec-using-skills
3
+ description: "Route KubbiSec chat to sec-* workflow skills vs domain skills (naus-pipelines, remediation, scanner-*, aspm-platform). Invoke before choosing a skill path."
4
+ metadata:
5
+ kubbisec:
6
+ category: workflow
7
+ surfaces: [chat]
8
+ ---
9
+
10
+ # sec-using-skills — Skill routing (KubbiSec)
11
+
12
+ Use this skill when the user intent is unclear, when multiple skills could apply, or at the start of a non-trivial session.
13
+
14
+ **Announce:** `Using sec-using-skills to pick the right workflow.`
15
+
16
+ ## The rule
17
+
18
+ If a **sec-*** workflow skill might apply, invoke it **before** domain skills or code changes. User explicit `@skill <name>` overrides routing.
19
+
20
+ ## Skill categories
21
+
22
+ | Category | Examples | Purpose |
23
+ |----------|----------|---------|
24
+ | **workflow** | `sec-clarify`, `sec-brainstorm`, `sec-plan`, `sec-review`, `sec-verify`, `sec-debug` | Specify, plan, review, verify |
25
+ | **domain** | `naus-pipelines`, `remediation`, `aspm-platform`, `github-local` | ASPM, CI, CVE fixes, GitHub |
26
+ | **scanner** | `scanner-semgrep`, `scanner-trivy`, … | Run one scanner per turn |
27
+
28
+ ## Routing matrix
29
+
30
+ | User intent | Primary skill | Optional secondary | Never combine |
31
+ |-------------|---------------|-------------------|---------------|
32
+ | Vague scope, missing org/project/CVE context | `sec-clarify` | — | `sec-plan` before clarify done |
33
+ | New feature / refactor / policy (chat) | `sec-brainstorm` → `sec-plan` | `naus-pipelines` if CI-only | `remediation` |
34
+ | Implement approved `.kbs/specs/*.md` | `sec-plan` | domain skill for file area | `sec-brainstorm` mid-implementation |
35
+ | Review diff before merge / after fix | `sec-review` | `sec-verify` | `sec-brainstorm` |
36
+ | Claim "done", "tests pass", open PR | `sec-verify` | — | skip verify |
37
+ | Failed remediation / flaky test / regression | `sec-debug` | `remediation` (CVE-scoped) | `sec-plan` |
38
+ | NAUS pipeline YAML | `naus-pipelines` | `sec-review` if auth/secrets touched | — |
39
+ | CVE minimal patch | `remediation` | `sec-verify` on exit | `sec-brainstorm` |
40
+ | ASPM API / findings | `aspm-platform` | — | — |
41
+ | Local GitHub clone/status | `github-local` | — | — |
42
+ | Run Semgrep/Trivy/etc. | one `scanner-*` | — | multiple scanners same turn |
43
+
44
+ ## Invocation surfaces
45
+
46
+ | Surface | sec-* | Domain |
47
+ |---------|-------|--------|
48
+ | `kbs chat` | Yes (`/skill:sec-*`, `@skill sec-*`) | Yes |
49
+ | `kbs chat --mode plan` | **Required:** clarify → brainstorm → plan | Read-only discovery only |
50
+ | `kbs chat --mode review` | **Prefer** `sec-review` | Read + diff tools |
51
+ | `kbs fix` / remediation harness | `sec-review` + `sec-verify` only | `remediation` implicit |
52
+ | `kbs watch` | `sec-debug` on failure | scanner-* per policy |
53
+
54
+ ## Typical greenfield flow
55
+
56
+ 1. `sec-clarify` — lock org/project/acceptance criteria → `.kbs/context/session-questionnaire.json`
57
+ 2. `sec-brainstorm` — threat model + design → `.kbs/specs/YYYY-MM-DD-<slug>.md` (HARD-GATE until `approved`)
58
+ 3. `sec-plan` — bite-sized tasks → `.kbs/plans/YYYY-MM-DD-<slug>.md`
59
+ 4. Implement with domain skills as needed
60
+ 5. `sec-review` on diff, then `sec-verify` with command evidence before PR
61
+
62
+ ## Env / flags
63
+
64
+ ```bash
65
+ KUBBISEC_CHAT_MODE=default|plan|review
66
+ KUBBISEC_FORCE_SKILL=sec-brainstorm # escape hatch; log warning
67
+ KUBBISEC_SKIP_CLARIFY=1 # skip questionnaire; still log skip
68
+ ```
69
+
70
+ ## Anti-patterns
71
+
72
+ - Loading `sec-brainstorm` + `remediation` in the same turn
73
+ - Running `sec-plan` before spec is `approved`
74
+ - Claiming merge-ready without `sec-review` + `sec-verify`
75
+ - Multiple `scanner-*` skills in one turn
76
+
77
+ ---
78
+
79
+ *Adapted from Superpowers (obra/superpowers) — MIT License.*
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: sec-verify
3
+ description: "Run verification commands and attach evidence before claiming tests pass, build OK, or PR ready."
4
+ metadata:
5
+ kubbisec:
6
+ category: workflow
7
+ surfaces: [chat, fix, watch]
8
+ blocks: [false-completion-claims]
9
+ ---
10
+
11
+ # sec-verify — Evidence before completion (KubbiSec)
12
+
13
+ **Announce:** `Using sec-verify for <claim>.`
14
+
15
+ ## Iron Law
16
+
17
+ **No completion claims without fresh command output in this session.**
18
+
19
+ ## Gate function
20
+
21
+ Before claiming any status (pass, fixed, ready, done):
22
+
23
+ 1. **IDENTIFY** — What command proves this claim?
24
+ 2. **RUN** — Execute the FULL command in this session (fresh)
25
+ 3. **READ** — Full stdout/stderr, exit code, failure count
26
+ 4. **VERIFY** — Does output support the claim?
27
+ 5. **REPORT** — State claim ONLY with quoted evidence snippet
28
+
29
+ ## Claim → evidence map (monorepo defaults)
30
+
31
+ | Claim | Required command | Not sufficient |
32
+ |-------|------------------|----------------|
33
+ | Unit tests pass | `pnpm --filter <pkg> test <file> -v` | Prior run, "should pass" |
34
+ | API tests pass | `pnpm --filter api test -v` | Lint only |
35
+ | Lint clean | `pnpm exec eslint <paths>` | Partial file |
36
+ | Typecheck | `pnpm exec tsc -p <tsconfig> --noEmit` | IDE green |
37
+ | Build | `pnpm --filter <pkg> build` | Types only |
38
+ | CVE fixed | Re-run scanner + target test | Code changed only |
39
+ | sec-review clear | sec-review output attached | Self-review |
40
+ | No secrets | `gitleaks detect --no-git` or scanner skill | grep once |
41
+
42
+ ## Forbidden phrases (without step 5 evidence)
43
+
44
+ - "should work", "probably", "seems fine", "looks good"
45
+ - "Great!", "Done!", "Perfect!" before evidence
46
+ - "Tests pass" without exit code 0 in same turn
47
+
48
+ ## Process — after plan task
49
+
50
+ 1. Read plan step **Verify:** command
51
+ 2. Run via `bash`; capture full output
52
+ 3. Post: `Claim: tests pass. Evidence: exit 0, N passed` + excerpt (max 2k chars)
53
+ 4. Check plan checkbox only after evidence posted
54
+ 5. Scrub `*TOKEN*`, `*SECRET*` from excerpts
55
+
56
+ ## Process — before PR (fix flow)
57
+
58
+ 1. Remediation diff + sec-review done
59
+ 2. Run package tests + optional semgrep/trivy per policy
60
+ 3. Append `verifyEvidence[]` to progress log
61
+ 4. PR creation allowed
62
+
63
+ ## Failures and waivers
64
+
65
+ - Command fails → report actual failures; no "mostly pass"
66
+ - Command not found → suggest `pnpm install`; fail verify
67
+ - Timeout (>10m) → report timeout; no pass claim
68
+ - Flaky test → report flake; suggest `sec-debug`
69
+ - User requests skip → refuse false claim; allow `verifyWaived: true` only with user-typed waiver in chat
70
+
71
+ ## Copy (PT)
72
+
73
+ `Sem saída de comando nesta sessão, não afirmamos sucesso.`
74
+
75
+ ---
76
+
77
+ *Adapted from Superpowers (obra/superpowers) — MIT License.*
@@ -0,0 +1,3 @@
1
+ /** @deprecated Import from chat-mentions.js — re-export shim for backward compatibility. */
2
+ export { SKILL_MENTION_TOKEN, extractAtPrefix, extractSkillMentionPrefix, parseSkillMentionPrefix, filterSkillSuggestions, transformAtSkillMentions, applySkillMentionCompletion, } from "./chat-mentions.js";
3
+ //# sourceMappingURL=skill-mention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-mention.d.ts","sourceRoot":"","sources":["../../src/skills/skill-mention.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** @deprecated Import from chat-mentions.js — re-export shim for backward compatibility. */
2
+ export { SKILL_MENTION_TOKEN, extractAtPrefix, extractSkillMentionPrefix, parseSkillMentionPrefix, filterSkillSuggestions, transformAtSkillMentions, applySkillMentionCompletion, } from "./chat-mentions.js";
3
+ //# sourceMappingURL=skill-mention.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-mention.js","sourceRoot":"","sources":["../../src/skills/skill-mention.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ extractAtPrefix,
4
+ extractSkillMentionPrefix,
5
+ filterSkillSuggestions,
6
+ parseSkillMentionPrefix,
7
+ transformAtSkillMentions,
8
+ } from "./skill-mention.js";
9
+
10
+ describe("skill-mention", () => {
11
+ it("detects @skill mention prefix", () => {
12
+ expect(parseSkillMentionPrefix("@skill")).toEqual({ query: "" });
13
+ expect(parseSkillMentionPrefix("@skill naus")).toEqual({ query: "naus" });
14
+ expect(parseSkillMentionPrefix("@skillful")).toBeNull();
15
+ expect(parseSkillMentionPrefix("@skill/foo")).toBeNull();
16
+ });
17
+
18
+ it("extracts @skill mention including partial name after space", () => {
19
+ expect(extractSkillMentionPrefix("use @skill naus")).toBe("@skill naus");
20
+ expect(extractSkillMentionPrefix("@skill")).toBe("@skill");
21
+ expect(extractSkillMentionPrefix("foo@skill")).toBeNull();
22
+ });
23
+
24
+ it("extractAtPrefix only matches when @ starts the last token", () => {
25
+ expect(extractAtPrefix("@skill")).toBe("@skill");
26
+ expect(extractAtPrefix("use @skill na")).toBeNull();
27
+ });
28
+
29
+ it("lists all skills when query is empty", () => {
30
+ const items = filterSkillSuggestions(
31
+ [
32
+ { name: "alpha", description: "A" },
33
+ { name: "beta", description: "B" },
34
+ ],
35
+ "",
36
+ );
37
+ expect(items).toHaveLength(2);
38
+ });
39
+
40
+ it("transforms @skill name to /skill:name for Pi expansion", () => {
41
+ expect(transformAtSkillMentions("@skill naus-pipelines validate")).toBe(
42
+ "/skill:naus-pipelines validate",
43
+ );
44
+ expect(transformAtSkillMentions("@skill")).toBe("@skill");
45
+ });
46
+ });
@@ -0,0 +1,10 @@
1
+ /** @deprecated Import from chat-mentions.js — re-export shim for backward compatibility. */
2
+ export {
3
+ SKILL_MENTION_TOKEN,
4
+ extractAtPrefix,
5
+ extractSkillMentionPrefix,
6
+ parseSkillMentionPrefix,
7
+ filterSkillSuggestions,
8
+ transformAtSkillMentions,
9
+ applySkillMentionCompletion,
10
+ } from "./chat-mentions.js";
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
+ "name": "kubbisec",
4
+ "description": "KubbiSec — black canvas, brand cyan accent (#28DCF9)",
5
+ "vars": {
6
+ "cyan": "#28DCF9",
7
+ "cyanDim": "#1a8fa3",
8
+ "cyanMuted": "#0d3d47",
9
+ "text": "#E8E8E8",
10
+ "gray": "#8A8A8A",
11
+ "dimGray": "#5C5C5C",
12
+ "darkGray": "#2A2A2A",
13
+ "accent": "#28DCF9",
14
+ "selectedBg": "#0a1f24",
15
+ "userMsgBg": "#0c1418",
16
+ "toolPendingBg": "#0a1012",
17
+ "toolSuccessBg": "#0a1612",
18
+ "toolErrorBg": "#1a0e0e",
19
+ "customMsgBg": "#101820",
20
+ "green": "#34D399",
21
+ "red": "#F87171",
22
+ "yellow": "#FBBF24",
23
+ "blue": "#5f87ff",
24
+ "purple": "#A78BFA",
25
+ "purpleDim": "#7C5CBF",
26
+ "purpleMuted": "#3D2E5C"
27
+ },
28
+ "colors": {
29
+ "accent": "cyan",
30
+ "border": "cyanMuted",
31
+ "borderAccent": "cyan",
32
+ "borderMuted": "darkGray",
33
+ "success": "green",
34
+ "error": "red",
35
+ "warning": "yellow",
36
+ "muted": "gray",
37
+ "dim": "dimGray",
38
+ "text": "text",
39
+ "thinkingText": "gray",
40
+
41
+ "selectedBg": "selectedBg",
42
+ "userMessageBg": "userMsgBg",
43
+ "userMessageText": "text",
44
+ "customMessageBg": "customMsgBg",
45
+ "customMessageText": "text",
46
+ "customMessageLabel": "cyan",
47
+ "toolPendingBg": "toolPendingBg",
48
+ "toolSuccessBg": "toolSuccessBg",
49
+ "toolErrorBg": "toolErrorBg",
50
+ "toolTitle": "cyan",
51
+ "toolOutput": "gray",
52
+
53
+ "mdHeading": "cyan",
54
+ "mdLink": "cyan",
55
+ "mdLinkUrl": "cyanDim",
56
+ "mdCode": "cyan",
57
+ "mdCodeBlock": "green",
58
+ "mdCodeBlockBorder": "cyanMuted",
59
+ "mdQuote": "gray",
60
+ "mdQuoteBorder": "cyanMuted",
61
+ "mdHr": "darkGray",
62
+ "mdListBullet": "cyan",
63
+
64
+ "toolDiffAdded": "green",
65
+ "toolDiffRemoved": "red",
66
+ "toolDiffContext": "gray",
67
+
68
+ "syntaxComment": "#5C6B72",
69
+ "syntaxKeyword": "#28DCF9",
70
+ "syntaxFunction": "#7EE8FF",
71
+ "syntaxVariable": "#B8F0FC",
72
+ "syntaxString": "#34D399",
73
+ "syntaxNumber": "#FBBF24",
74
+ "syntaxType": "#5f87ff",
75
+ "syntaxOperator": "#E8E8E8",
76
+ "syntaxPunctuation": "#8A8A8A",
77
+
78
+ "thinkingOff": "darkGray",
79
+ "thinkingMinimal": "dimGray",
80
+ "thinkingLow": "cyanDim",
81
+ "thinkingMedium": "cyan",
82
+ "thinkingHigh": "#7EE8FF",
83
+ "thinkingXhigh": "#B8F0FC",
84
+
85
+ "bashMode": "cyan",
86
+ "planAccent": "purple"
87
+ },
88
+ "export": {
89
+ "pageBg": "#000000",
90
+ "cardBg": "#0c1014",
91
+ "infoBg": "#0a1f24"
92
+ }
93
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubbisec/ai-linux-x64",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "KubbiSec CLI — Linux x64 binary",
5
5
  "license": "UNLICENSED",
6
6
  "os": [
@@ -10,7 +10,8 @@
10
10
  "x64"
11
11
  ],
12
12
  "files": [
13
- "bin/kubbisec"
13
+ "bin/kubbisec",
14
+ "bundled/**"
14
15
  ],
15
16
  "preferUnplugged": true,
16
17
  "engines": {