@kubbisec/ai-linux-arm64 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.
- package/bin/kubbisec +0 -0
- package/bundled/assets/terminal/banner-compact.ansi +7 -0
- package/bundled/assets/terminal/banner-wide.ansi +10 -0
- package/bundled/assets/terminal/logotipo-compact-fallback.ansi +7 -0
- package/bundled/assets/terminal/logotipo-compact.ansi +1 -0
- package/bundled/assets/terminal/logotipo-compact.png +0 -0
- package/bundled/assets/terminal/logotipo-wide-fallback.ansi +10 -0
- package/bundled/assets/terminal/logotipo-wide.ansi +1 -0
- package/bundled/assets/terminal/logotipo-wide.png +0 -0
- package/bundled/assets/terminal/mark.ansi +7 -0
- package/bundled/clarify/clarify-gate.d.ts +27 -0
- package/bundled/clarify/clarify-gate.d.ts.map +1 -0
- package/bundled/clarify/clarify-gate.js +152 -0
- package/bundled/clarify/clarify-gate.js.map +1 -0
- package/bundled/clarify/clarify-ui-state.d.ts +12 -0
- package/bundled/clarify/clarify-ui-state.d.ts.map +1 -0
- package/bundled/clarify/clarify-ui-state.js +27 -0
- package/bundled/clarify/clarify-ui-state.js.map +1 -0
- package/bundled/clarify/parse-clarify-answer.d.ts +16 -0
- package/bundled/clarify/parse-clarify-answer.d.ts.map +1 -0
- package/bundled/clarify/parse-clarify-answer.js +22 -0
- package/bundled/clarify/parse-clarify-answer.js.map +1 -0
- package/bundled/clarify/question-format.d.ts +36 -0
- package/bundled/clarify/question-format.d.ts.map +1 -0
- package/bundled/clarify/question-format.js +150 -0
- package/bundled/clarify/question-format.js.map +1 -0
- package/bundled/clarify/questionnaire-tool.d.ts +25 -0
- package/bundled/clarify/questionnaire-tool.d.ts.map +1 -0
- package/bundled/clarify/questionnaire-tool.js +157 -0
- package/bundled/clarify/questionnaire-tool.js.map +1 -0
- package/bundled/clarify/session-questionnaire.d.ts +23 -0
- package/bundled/clarify/session-questionnaire.d.ts.map +1 -0
- package/bundled/clarify/session-questionnaire.js +319 -0
- package/bundled/clarify/session-questionnaire.js.map +1 -0
- package/bundled/clarify/session-questionnaire.types.d.ts +45 -0
- package/bundled/clarify/session-questionnaire.types.d.ts.map +1 -0
- package/bundled/clarify/session-questionnaire.types.js +13 -0
- package/bundled/clarify/session-questionnaire.types.js.map +1 -0
- package/bundled/config/config.d.ts +14 -0
- package/bundled/config/config.d.ts.map +1 -0
- package/bundled/config/config.js +58 -0
- package/bundled/config/config.js.map +1 -0
- package/bundled/config/ensure-kubbisec-project-settings.d.ts +20 -0
- package/bundled/config/ensure-kubbisec-project-settings.d.ts.map +1 -0
- package/bundled/config/ensure-kubbisec-project-settings.js +65 -0
- package/bundled/config/ensure-kubbisec-project-settings.js.map +1 -0
- package/bundled/config/feature-flags.d.ts +2 -0
- package/bundled/config/feature-flags.d.ts.map +1 -0
- package/bundled/config/feature-flags.js +2 -0
- package/bundled/config/feature-flags.js.map +1 -0
- package/bundled/config/format-kubbisec-footer-status.d.ts +2 -0
- package/bundled/config/format-kubbisec-footer-status.d.ts.map +1 -0
- package/bundled/config/format-kubbisec-footer-status.js +21 -0
- package/bundled/config/format-kubbisec-footer-status.js.map +1 -0
- package/bundled/config/resolve-agents-context-file.d.ts +4 -0
- package/bundled/config/resolve-agents-context-file.d.ts.map +1 -0
- package/bundled/config/resolve-agents-context-file.js +48 -0
- package/bundled/config/resolve-agents-context-file.js.map +1 -0
- package/bundled/config/resource-budget.d.ts +17 -0
- package/bundled/config/resource-budget.d.ts.map +1 -0
- package/bundled/config/resource-budget.js +35 -0
- package/bundled/config/resource-budget.js.map +1 -0
- package/bundled/copy/kubbisec-shell-copy.d.ts +8 -0
- package/bundled/copy/kubbisec-shell-copy.d.ts.map +1 -0
- package/bundled/copy/kubbisec-shell-copy.js +8 -0
- package/bundled/copy/kubbisec-shell-copy.js.map +1 -0
- package/bundled/edit-format.md +17 -0
- package/bundled/extensions/cli-local-shared.d.ts +26 -0
- package/bundled/extensions/cli-local-shared.d.ts.map +1 -0
- package/bundled/extensions/cli-local-shared.js +97 -0
- package/bundled/extensions/cli-local-shared.js.map +1 -0
- package/bundled/extensions/kubbisec-aspm-local.extension.d.ts +17 -0
- package/bundled/extensions/kubbisec-aspm-local.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-aspm-local.extension.js +134 -0
- package/bundled/extensions/kubbisec-aspm-local.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-brand.extension.d.ts +20 -0
- package/bundled/extensions/kubbisec-brand.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-brand.extension.js +84 -0
- package/bundled/extensions/kubbisec-brand.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-byok-provider.extension.d.ts +30 -0
- package/bundled/extensions/kubbisec-byok-provider.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-byok-provider.extension.js +44 -0
- package/bundled/extensions/kubbisec-byok-provider.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-clarify.extension.d.ts +45 -0
- package/bundled/extensions/kubbisec-clarify.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-clarify.extension.js +305 -0
- package/bundled/extensions/kubbisec-clarify.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-footer.extension.d.ts +64 -0
- package/bundled/extensions/kubbisec-footer.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-footer.extension.js +187 -0
- package/bundled/extensions/kubbisec-footer.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-github-local.extension.d.ts +23 -0
- package/bundled/extensions/kubbisec-github-local.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-github-local.extension.js +105 -0
- package/bundled/extensions/kubbisec-github-local.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-memory.extension.d.ts +12 -0
- package/bundled/extensions/kubbisec-memory.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-memory.extension.js +107 -0
- package/bundled/extensions/kubbisec-memory.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-naus-local.extension.d.ts +17 -0
- package/bundled/extensions/kubbisec-naus-local.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-naus-local.extension.js +125 -0
- package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-platform-tools.extension.d.ts +27 -0
- package/bundled/extensions/kubbisec-platform-tools.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-platform-tools.extension.js +144 -0
- package/bundled/extensions/kubbisec-platform-tools.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-runtime-status.extension.d.ts +13 -0
- package/bundled/extensions/kubbisec-runtime-status.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-runtime-status.extension.js +18 -0
- package/bundled/extensions/kubbisec-runtime-status.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-scope.extension.d.ts +14 -0
- package/bundled/extensions/kubbisec-scope.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-scope.extension.js +14 -0
- package/bundled/extensions/kubbisec-scope.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts +24 -0
- package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-skill-mentions.extension.js +54 -0
- package/bundled/extensions/kubbisec-skill-mentions.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-skill-telemetry.extension.d.ts +6 -0
- package/bundled/extensions/kubbisec-skill-telemetry.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-skill-telemetry.extension.js +85 -0
- package/bundled/extensions/kubbisec-skill-telemetry.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-ui.extension.d.ts +6 -0
- package/bundled/extensions/kubbisec-ui.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-ui.extension.js +116 -0
- package/bundled/extensions/kubbisec-ui.extension.js.map +1 -0
- package/bundled/extensions/kubbisec-workflow.extension.d.ts +38 -0
- package/bundled/extensions/kubbisec-workflow.extension.d.ts.map +1 -0
- package/bundled/extensions/kubbisec-workflow.extension.js +169 -0
- package/bundled/extensions/kubbisec-workflow.extension.js.map +1 -0
- package/bundled/gate-system.md +27 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/client.d.ts +20 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/client.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/client.js +121 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/client.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.d.ts +15 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.js +34 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/feature-flags.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/index.d.ts +12 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/index.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/index.js +35 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/index.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.d.ts +4 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js +89 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.d.ts +2 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.js +13 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/storage-paths.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/types.d.ts +24 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/types.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/types.js +9 -0
- package/bundled/node_modules/@kubbisec/chat-memory/dist/types.js.map +1 -0
- package/bundled/node_modules/@kubbisec/chat-memory/package.json +32 -0
- package/bundled/node_modules/@kubbisec/home/dist/index.d.ts +3 -0
- package/bundled/node_modules/@kubbisec/home/dist/index.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/home/dist/index.js +3 -0
- package/bundled/node_modules/@kubbisec/home/dist/index.js.map +1 -0
- package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts +10 -0
- package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/home/dist/migrate.js +107 -0
- package/bundled/node_modules/@kubbisec/home/dist/migrate.js.map +1 -0
- package/bundled/node_modules/@kubbisec/home/dist/paths.d.ts +22 -0
- package/bundled/node_modules/@kubbisec/home/dist/paths.d.ts.map +1 -0
- package/bundled/node_modules/@kubbisec/home/dist/paths.js +69 -0
- package/bundled/node_modules/@kubbisec/home/dist/paths.js.map +1 -0
- package/bundled/node_modules/@kubbisec/home/package.json +26 -0
- package/bundled/reflect-system.md +31 -0
- package/bundled/resolve-bundled-dist-root.js +165 -0
- package/bundled/resolve-bundled-dist-root.js.map +1 -0
- package/bundled/skills/aspm-platform/SKILL.md +58 -0
- package/bundled/skills/chat-mention-render.d.ts +7 -0
- package/bundled/skills/chat-mention-render.d.ts.map +1 -0
- package/bundled/skills/chat-mention-render.js +122 -0
- package/bundled/skills/chat-mention-render.js.map +1 -0
- package/bundled/skills/chat-mention-render.test.ts +47 -0
- package/bundled/skills/chat-mention-render.ts +141 -0
- package/bundled/skills/chat-mentions.d.ts +27 -0
- package/bundled/skills/chat-mentions.d.ts.map +1 -0
- package/bundled/skills/chat-mentions.js +104 -0
- package/bundled/skills/chat-mentions.js.map +1 -0
- package/bundled/skills/chat-mentions.test.ts +32 -0
- package/bundled/skills/chat-mentions.ts +126 -0
- package/bundled/skills/github-local/SKILL.md +16 -0
- package/bundled/skills/list-bundled-skills.d.ts +7 -0
- package/bundled/skills/list-bundled-skills.d.ts.map +1 -0
- package/bundled/skills/list-bundled-skills.js +44 -0
- package/bundled/skills/list-bundled-skills.js.map +1 -0
- package/bundled/skills/list-bundled-skills.ts +46 -0
- package/bundled/skills/naus-pipelines/SKILL.md +31 -0
- package/bundled/skills/remediation/SKILL.md +12 -0
- package/bundled/skills/scanner-gitleaks/SKILL.md +10 -0
- package/bundled/skills/scanner-nmap/SKILL.md +10 -0
- package/bundled/skills/scanner-osv/SKILL.md +10 -0
- package/bundled/skills/scanner-semgrep/SKILL.md +10 -0
- package/bundled/skills/scanner-skipfish/SKILL.md +10 -0
- package/bundled/skills/scanner-sonar/SKILL.md +10 -0
- package/bundled/skills/scanner-syft/SKILL.md +10 -0
- package/bundled/skills/scanner-trivy/SKILL.md +10 -0
- package/bundled/skills/sec-brainstorm/SKILL.md +74 -0
- package/bundled/skills/sec-clarify/SKILL.md +68 -0
- package/bundled/skills/sec-debug/SKILL.md +94 -0
- package/bundled/skills/sec-plan/SKILL.md +101 -0
- package/bundled/skills/sec-review/SKILL.md +110 -0
- package/bundled/skills/sec-review/code-reviewer-sec.md +176 -0
- package/bundled/skills/sec-using-skills/SKILL.md +79 -0
- package/bundled/skills/sec-verify/SKILL.md +77 -0
- package/bundled/skills/skill-mention.d.ts +3 -0
- package/bundled/skills/skill-mention.d.ts.map +1 -0
- package/bundled/skills/skill-mention.js +3 -0
- package/bundled/skills/skill-mention.js.map +1 -0
- package/bundled/skills/skill-mention.test.ts +46 -0
- package/bundled/skills/skill-mention.ts +10 -0
- package/bundled/theme/kubbisec.json +93 -0
- 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-arm64",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "KubbiSec CLI — Linux arm64 binary",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"os": [
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"arm64"
|
|
11
11
|
],
|
|
12
12
|
"files": [
|
|
13
|
-
"bin/kubbisec"
|
|
13
|
+
"bin/kubbisec",
|
|
14
|
+
"bundled/**"
|
|
14
15
|
],
|
|
15
16
|
"preferUnplugged": true,
|
|
16
17
|
"engines": {
|