oh-my-agent-commandcode 0.0.0-stage → 20.38.4
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 +35 -2
- package/filter-test-output.sh +52 -0
- package/mods/oma.ts +347 -0
- package/package.json +30 -4
- package/skills/_shared/conditional/experiment-ledger.md +28 -0
- package/skills/_shared/conditional/exploration-loop.md +22 -0
- package/skills/_shared/conditional/quality-score.md +33 -0
- package/skills/_shared/core/anti-ai-prose.md +191 -0
- package/skills/_shared/core/api-contracts/README.md +28 -0
- package/skills/_shared/core/api-contracts/template.md +90 -0
- package/skills/_shared/core/clarification-protocol.md +23 -0
- package/skills/_shared/core/code-intelligence.md +46 -0
- package/skills/_shared/core/collaboration-policy.md +28 -0
- package/skills/_shared/core/common-checklist.md +28 -0
- package/skills/_shared/core/context-budget.md +22 -0
- package/skills/_shared/core/context-loading.md +34 -0
- package/skills/_shared/core/difficulty-guide.md +26 -0
- package/skills/_shared/core/execution-policy.md +31 -0
- package/skills/_shared/core/lessons-learned.md +33 -0
- package/skills/_shared/core/prompt-structure.md +18 -0
- package/skills/_shared/core/quality-principles.md +11 -0
- package/skills/_shared/core/session-metrics.md +35 -0
- package/skills/_shared/core/skill-routing.md +39 -0
- package/skills/_shared/core/test-approach.md +54 -0
- package/skills/_shared/core/vendor-detection.md +52 -0
- package/skills/_shared/runtime/memory-protocol.md +118 -0
- package/skills/_shared/runtime/result-contract.md +64 -0
- package/skills/_shared/ui-interaction-quality.md +133 -0
- package/skills/oma-academic-writing/SKILL.md +181 -0
- package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
- package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
- package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
- package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
- package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
- package/skills/oma-architecture/SKILL.md +203 -0
- package/skills/oma-architecture/resources/api-evolution.md +41 -0
- package/skills/oma-architecture/resources/checklist.md +42 -0
- package/skills/oma-architecture/resources/execution-protocol.md +115 -0
- package/skills/oma-architecture/resources/methodology-selection.md +92 -0
- package/skills/oma-architecture/resources/migration-patterns.md +28 -0
- package/skills/oma-architecture/resources/output-templates.md +111 -0
- package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
- package/skills/oma-backend/SKILL.md +202 -0
- package/skills/oma-backend/resources/checklist.md +45 -0
- package/skills/oma-backend/resources/error-playbook.md +97 -0
- package/skills/oma-backend/resources/execution-protocol.md +39 -0
- package/skills/oma-backend/resources/orm-reference.md +61 -0
- package/skills/oma-backend/variants/node/api-template.ts +315 -0
- package/skills/oma-backend/variants/node/snippets.md +475 -0
- package/skills/oma-backend/variants/node/stack.yaml +21 -0
- package/skills/oma-backend/variants/node/tech-stack.md +33 -0
- package/skills/oma-backend/variants/python/api-template.py +378 -0
- package/skills/oma-backend/variants/python/snippets.md +199 -0
- package/skills/oma-backend/variants/python/stack.yaml +18 -0
- package/skills/oma-backend/variants/python/tech-stack.md +45 -0
- package/skills/oma-backend/variants/rust/api-template.rs +635 -0
- package/skills/oma-backend/variants/rust/snippets.md +471 -0
- package/skills/oma-backend/variants/rust/stack.yaml +20 -0
- package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
- package/skills/oma-backend/variants/stack.schema.json +73 -0
- package/skills/oma-brainstorm/SKILL.md +166 -0
- package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
- package/skills/oma-coordination/SKILL.md +171 -0
- package/skills/oma-db/SKILL.md +201 -0
- package/skills/oma-db/resources/anti-patterns.md +177 -0
- package/skills/oma-db/resources/checklist.md +67 -0
- package/skills/oma-db/resources/document-templates.md +107 -0
- package/skills/oma-db/resources/error-playbook.md +50 -0
- package/skills/oma-db/resources/examples.md +170 -0
- package/skills/oma-db/resources/execution-protocol.md +127 -0
- package/skills/oma-db/resources/iso-controls.md +98 -0
- package/skills/oma-db/resources/migration-playbook.md +93 -0
- package/skills/oma-db/resources/query-tuning.md +57 -0
- package/skills/oma-db/resources/vector-db.md +159 -0
- package/skills/oma-debug/SKILL.md +146 -0
- package/skills/oma-debug/resources/bug-report-template.md +327 -0
- package/skills/oma-debug/resources/checklist.md +31 -0
- package/skills/oma-debug/resources/common-patterns.md +734 -0
- package/skills/oma-debug/resources/debugging-checklist.md +364 -0
- package/skills/oma-debug/resources/error-playbook.md +94 -0
- package/skills/oma-debug/resources/execution-protocol.md +40 -0
- package/skills/oma-design/SKILL.md +135 -0
- package/skills/oma-design/resources/asset-strategy.md +34 -0
- package/skills/oma-design/resources/checklist.md +63 -0
- package/skills/oma-design/resources/data-grid.md +48 -0
- package/skills/oma-design/resources/design-md-spec.md +107 -0
- package/skills/oma-design/resources/design-tokens.md +53 -0
- package/skills/oma-design/resources/error-playbook.md +18 -0
- package/skills/oma-design/resources/execution-protocol.md +95 -0
- package/skills/oma-design/resources/external-design-skills.md +130 -0
- package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
- package/skills/oma-design/resources/product-interface-review.md +59 -0
- package/skills/oma-design/resources/redesign-protocol.md +52 -0
- package/skills/oma-design/resources/stitch-integration.md +244 -0
- package/skills/oma-dev-workflow/SKILL.md +375 -0
- package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
- package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
- package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
- package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
- package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
- package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
- package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
- package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
- package/skills/oma-docs/SKILL.md +77 -0
- package/skills/oma-docs/resources/commands.md +76 -0
- package/skills/oma-explanation/SKILL.md +212 -0
- package/skills/oma-explanation/resources/document-structure.md +115 -0
- package/skills/oma-explanation/resources/draft-format.md +199 -0
- package/skills/oma-explanation/resources/html-contract.md +102 -0
- package/skills/oma-frontend/SKILL.md +227 -0
- package/skills/oma-frontend/resources/angular-rules.md +110 -0
- package/skills/oma-frontend/resources/checklist.md +76 -0
- package/skills/oma-frontend/resources/error-playbook.md +125 -0
- package/skills/oma-frontend/resources/execution-protocol.md +46 -0
- package/skills/oma-frontend/resources/snippets.md +354 -0
- package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
- package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
- package/skills/oma-frontend/resources/tech-stack.md +156 -0
- package/skills/oma-hwp/SKILL.md +166 -0
- package/skills/oma-hwp/config/hwp-config.yaml +35 -0
- package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
- package/skills/oma-hwp/resources/execution-protocol.md +145 -0
- package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
- package/skills/oma-hwp/resources/package.json +13 -0
- package/skills/oma-hwp/resources/troubleshooting.md +70 -0
- package/skills/oma-hwp/resources/tsconfig.json +10 -0
- package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
- package/skills/oma-image/SKILL.md +142 -0
- package/skills/oma-image/config/image-config.yaml +70 -0
- package/skills/oma-image/resources/checklist.md +18 -0
- package/skills/oma-image/resources/execution-protocol.md +117 -0
- package/skills/oma-image/resources/invocation.md +105 -0
- package/skills/oma-image/resources/prompt-tips.md +71 -0
- package/skills/oma-image/resources/vendor-matrix.md +90 -0
- package/skills/oma-market/SKILL.md +142 -0
- package/skills/oma-market/resources/checklist.md +12 -0
- package/skills/oma-market/resources/error-playbook.md +12 -0
- package/skills/oma-market/resources/execution-protocol.md +60 -0
- package/skills/oma-market/resources/frameworks/pestel.md +101 -0
- package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
- package/skills/oma-market/resources/frameworks/swot.md +61 -0
- package/skills/oma-market/resources/intent-rules.md +35 -0
- package/skills/oma-market/resources/output-laws.md +53 -0
- package/skills/oma-mobile/SKILL.md +168 -0
- package/skills/oma-mobile/resources/checklist.md +77 -0
- package/skills/oma-mobile/resources/error-playbook.md +198 -0
- package/skills/oma-mobile/resources/execution-protocol.md +47 -0
- package/skills/oma-mobile/resources/screen-template.dart +331 -0
- package/skills/oma-mobile/resources/screen-template.swift +239 -0
- package/skills/oma-mobile/resources/screen-template.tsx +179 -0
- package/skills/oma-mobile/resources/tech-stack.md +69 -0
- package/skills/oma-mobile/variants/README.md +45 -0
- package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
- package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
- package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
- package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
- package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
- package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
- package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
- package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
- package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
- package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
- package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
- package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
- package/skills/oma-mobile/variants/stack.schema.json +68 -0
- package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
- package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
- package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
- package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
- package/skills/oma-observability/SKILL.md +225 -0
- package/skills/oma-observability/resources/anti-patterns.md +555 -0
- package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
- package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
- package/skills/oma-observability/resources/boundaries/release.md +372 -0
- package/skills/oma-observability/resources/boundaries/slo.md +225 -0
- package/skills/oma-observability/resources/checklist.md +123 -0
- package/skills/oma-observability/resources/examples.md +448 -0
- package/skills/oma-observability/resources/execution-protocol.md +166 -0
- package/skills/oma-observability/resources/incident-forensics.md +348 -0
- package/skills/oma-observability/resources/intent-rules.md +307 -0
- package/skills/oma-observability/resources/layers/L3-network.md +281 -0
- package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
- package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
- package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
- package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
- package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
- package/skills/oma-observability/resources/layers/mesh.md +368 -0
- package/skills/oma-observability/resources/matrix.md +177 -0
- package/skills/oma-observability/resources/meta-observability.md +605 -0
- package/skills/oma-observability/resources/observability-as-code.md +666 -0
- package/skills/oma-observability/resources/signals/audit.md +310 -0
- package/skills/oma-observability/resources/signals/cost.md +303 -0
- package/skills/oma-observability/resources/signals/logs.md +263 -0
- package/skills/oma-observability/resources/signals/metrics.md +478 -0
- package/skills/oma-observability/resources/signals/privacy.md +351 -0
- package/skills/oma-observability/resources/signals/profiles.md +245 -0
- package/skills/oma-observability/resources/signals/traces.md +360 -0
- package/skills/oma-observability/resources/standards.md +214 -0
- package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
- package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
- package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
- package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
- package/skills/oma-observability/resources/vendor-categories.md +352 -0
- package/skills/oma-orchestration/SKILL.md +302 -0
- package/skills/oma-orchestration/config/cli-config.yaml +92 -0
- package/skills/oma-orchestration/resources/memory-schema.md +232 -0
- package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
- package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
- package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
- package/skills/oma-orchestration/scripts/verify.sh +20 -0
- package/skills/oma-orchestration/templates/backend-task.md +19 -0
- package/skills/oma-orchestration/templates/debug-task.md +16 -0
- package/skills/oma-orchestration/templates/frontend-task.md +18 -0
- package/skills/oma-orchestration/templates/mobile-task.md +18 -0
- package/skills/oma-orchestration/templates/qa-task.md +16 -0
- package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
- package/skills/oma-pdf/SKILL.md +162 -0
- package/skills/oma-pdf/config/pdf-config.yaml +27 -0
- package/skills/oma-pdf/resources/execution-protocol.md +127 -0
- package/skills/oma-pm/SKILL.md +157 -0
- package/skills/oma-pm/resources/error-playbook.md +75 -0
- package/skills/oma-pm/resources/examples.md +439 -0
- package/skills/oma-pm/resources/execution-protocol.md +62 -0
- package/skills/oma-pm/resources/iso-planning.md +110 -0
- package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
- package/skills/oma-pm/resources/task-template.json +86 -0
- package/skills/oma-qa/SKILL.md +141 -0
- package/skills/oma-qa/resources/checklist.md +339 -0
- package/skills/oma-qa/resources/error-playbook.md +98 -0
- package/skills/oma-qa/resources/execution-protocol.md +169 -0
- package/skills/oma-qa/resources/iso-quality.md +82 -0
- package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
- package/skills/oma-recap/SKILL.md +245 -0
- package/skills/oma-recap/resources/output-formats.md +83 -0
- package/skills/oma-refactor/SKILL.md +184 -0
- package/skills/oma-refactor/resources/definition.md +108 -0
- package/skills/oma-refactor/resources/governance.md +33 -0
- package/skills/oma-refactor/resources/hotspots.py +44 -0
- package/skills/oma-refactor/resources/measurement.md +93 -0
- package/skills/oma-scholar/SKILL.md +276 -0
- package/skills/oma-scholar/config/scholar-config.yaml +79 -0
- package/skills/oma-scholar/resources/api-endpoints.md +174 -0
- package/skills/oma-scholar/resources/checklist.md +92 -0
- package/skills/oma-scholar/resources/execution-protocol.md +224 -0
- package/skills/oma-scholar/resources/fallback-providers.md +143 -0
- package/skills/oma-scholar/resources/setup-openalex.md +85 -0
- package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
- package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
- package/skills/oma-scm/SKILL.md +103 -0
- package/skills/oma-scm/resources/cm-operations.md +56 -0
- package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
- package/skills/oma-scm/resources/conventional-commits.md +108 -0
- package/skills/oma-scm/resources/merge-risk.md +76 -0
- package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
- package/skills/oma-search/SKILL.md +125 -0
- package/skills/oma-search/resources/checklist.md +36 -0
- package/skills/oma-search/resources/error-playbook.md +66 -0
- package/skills/oma-search/resources/examples.md +80 -0
- package/skills/oma-search/resources/execution-protocol.md +86 -0
- package/skills/oma-search/resources/intent-rules.md +47 -0
- package/skills/oma-search/resources/trust-registry.md +53 -0
- package/skills/oma-security/SKILL.md +172 -0
- package/skills/oma-security/resources/artex.md +108 -0
- package/skills/oma-security/resources/ci.md +134 -0
- package/skills/oma-security/resources/cisco-source.md +108 -0
- package/skills/oma-security/resources/deepsec-config.md +45 -0
- package/skills/oma-security/resources/deepsec-matchers.md +35 -0
- package/skills/oma-security/resources/deepsec-scanning.md +45 -0
- package/skills/oma-security/resources/deepsec-setup.md +41 -0
- package/skills/oma-security/resources/findings-contract.md +408 -0
- package/skills/oma-security/resources/mcp-scanning.md +122 -0
- package/skills/oma-security/resources/skill-scanning.md +106 -0
- package/skills/oma-security/resources/validation.md +71 -0
- package/skills/oma-skill-creation/SKILL.md +84 -0
- package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
- package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
- package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
- package/skills/oma-slide/SKILL.md +277 -0
- package/skills/oma-slide/resources/animation-patterns.md +245 -0
- package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
- package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
- package/skills/oma-slide/resources/canva-integration.md +203 -0
- package/skills/oma-slide/resources/checklist.md +46 -0
- package/skills/oma-slide/resources/design-doctrine.md +260 -0
- package/skills/oma-slide/resources/fixed-stage.md +232 -0
- package/skills/oma-slide/resources/generation-protocol.md +393 -0
- package/skills/oma-slide/resources/native-pptx.md +84 -0
- package/skills/oma-slide/resources/selection-index.json +461 -0
- package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
- package/skills/oma-slide/resources/style-presets.md +520 -0
- package/skills/oma-tf-infra/SKILL.md +201 -0
- package/skills/oma-tf-infra/resources/checklist.md +53 -0
- package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
- package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
- package/skills/oma-tf-infra/resources/examples.md +38 -0
- package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
- package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
- package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
- package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
- package/skills/oma-translation/SKILL.md +229 -0
- package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
- package/skills/oma-translation/resources/lang/_template.md +73 -0
- package/skills/oma-translation/resources/lang/en.md +123 -0
- package/skills/oma-translation/resources/lang/ja.md +274 -0
- package/skills/oma-translation/resources/lang/ko.md +228 -0
- package/skills/oma-translation/resources/lang/zh.md +285 -0
- package/skills/oma-translation/resources/style-skills.md +104 -0
- package/skills/oma-translation/resources/translation-rubric.md +126 -0
- package/skills/oma-video/SKILL.md +229 -0
- package/skills/oma-video/config/video-config.yaml +60 -0
- package/skills/oma-video/resources/checklist.md +26 -0
- package/skills/oma-video/resources/execution-protocol.md +122 -0
- package/skills/oma-video/resources/existing-media.md +185 -0
- package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
- package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
- package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
- package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
- package/skills/oma-video/resources/motion-principles.md +81 -0
- package/skills/oma-video/resources/mpt/driver.py +301 -0
- package/skills/oma-video/resources/prompt-tips.md +75 -0
- package/skills/oma-video/resources/script-schema.md +81 -0
- package/skills/oma-video/resources/sound-design.md +127 -0
- package/skills/oma-video/resources/strudel/package.json +11 -0
- package/skills/oma-video/resources/strudel/page.html +87 -0
- package/skills/oma-video/resources/strudel/render.mjs +295 -0
- package/skills/oma-video/resources/vendor-matrix.md +124 -0
- package/skills/oma-voice/SKILL.md +249 -0
- package/skills/oma-voice/config/voice-config.yaml +30 -0
- package/skills/oma-voice/resources/audio-processing.md +119 -0
- package/skills/oma-voice/resources/checklist.md +47 -0
- package/skills/oma-voice/resources/execution-protocol.md +215 -0
- package/skills/oma-voice/resources/prompt-tips.md +43 -0
- package/skills/oma-voice/resources/voice-matrix.md +51 -0
- package/skills/oma-voice/resources/voicestudio.md +87 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Security scan gates
|
|
2
|
+
|
|
3
|
+
Load only for CI or an explicitly requested gate. Keep native execution outcome, candidate severity, independent validation, and gate acceptance separate.
|
|
4
|
+
Use the findings contract for `run.json`, `findings.json`, `runtime.json`, and `gate.json`; this file owns native exit interpretation and gate policy.
|
|
5
|
+
|
|
6
|
+
## Native contracts
|
|
7
|
+
|
|
8
|
+
Verify the installed/pinned version before applying this table. Preserve actual exit codes and native output; an exit alone cannot establish that every required analyzer completed.
|
|
9
|
+
|
|
10
|
+
| Engine/mode | Native behavior | OMA interpretation |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| Deepsec direct diff/files mode | Official documentation describes 0 for no net-new finding, 1 for a net-new finding; other failures are runtime errors | Read this run's native receipts and errors; a finding exit is not independent proof and zero does not clear unresolved stored findings |
|
|
13
|
+
| Cisco AI Deep SAST | `deepscan.py` exits 0 when its summary `success` is true, otherwise 1 | Parse produced reports and coverage separately; 0 can coexist with vulnerabilities, and dry-run success is not an LLM security scan |
|
|
14
|
+
| Cisco Skill Scanner | Current official results guide: 0 below selected threshold, 1 threshold findings, 2 setup/policy/requested-analyzer construction error | Use the actual `--fail-on-severity` setting and inspect per-skill coverage; a setup error is not a finding |
|
|
15
|
+
| Cisco MCP Scanner | Output and error handling depend on command/mode/version; no common severity exit contract is assumed here | Verify its actual interface and parse native results plus analyzer completion; do not borrow another scanner's exit mapping |
|
|
16
|
+
| Cloudflare local validation | Structured verifier records and observed evidence; no native severity exit is assumed | Accept only validated current records; validator success proves format, not exploitability |
|
|
17
|
+
| ARTEX | Autonomous platform/task interface; no assumed scanner CLI, headless mode, severity exit, or CI support | Require verified adapter or validated manual/external task receipts and evidence; never derive acceptance from service-process exit |
|
|
18
|
+
|
|
19
|
+
Deepsec's documentation labels runtime errors separately but its numeric table is not sufficient to distinguish every implementation failure. If exit 1 has no usable finding receipt, preserve the ambiguity as error/incomplete rather than synthesizing a vulnerability.
|
|
20
|
+
Cisco Skill Scanner's `LLM_ANALYSIS_FAILED` and `LLM_CONTEXT_BUDGET_EXCEEDED` can appear as INFO coverage notes that do not trigger the severity gate. Treat failed or truncated required judge coverage as incomplete.
|
|
21
|
+
An explicitly selected analyzer that cannot start or cannot complete cannot be silently replaced by a smaller analyzer set.
|
|
22
|
+
|
|
23
|
+
## Policy receipt
|
|
24
|
+
|
|
25
|
+
Write `gate.json` using the recorded required receipt identities (`engine:target_id:mode`), policy name/revision, blocking record IDs, and reasons.
|
|
26
|
+
Resolve severity thresholds and whether native candidates gate from the user's/team's existing policy. Do not turn an engine rating into an OMA confirmed vulnerability merely to evaluate the gate.
|
|
27
|
+
If no existing policy resolves an outcome-changing choice, prepare the concrete alternatives and ask only for that missing choice under shared policy.
|
|
28
|
+
|
|
29
|
+
Apply these outcomes in order while retaining every reason:
|
|
30
|
+
|
|
31
|
+
1. `error`: required engine execution or result parsing failed; preserve logs/native code.
|
|
32
|
+
2. `incomplete`: required operation, target identity, coverage unit, candidate review, runtime receipt, or proof check is missing/partial/stale; required planned/running/skipped receipts are also incomplete.
|
|
33
|
+
3. `findings`: required checks completed and the policy blocks on the recorded confirmed findings or explicitly selected native candidate threshold.
|
|
34
|
+
4. `pass`: required checks and evidence are complete/current and the selected policy has no blocker.
|
|
35
|
+
|
|
36
|
+
A partial/error run may also contain confirmed findings; list them and their blocking IDs even when the gate status reflects incomplete execution.
|
|
37
|
+
Reviewed `needs_validation` leads remain distinct from confirmed findings. A policy may require their resolution before passing; do not assign them a normalized severity to make that decision.
|
|
38
|
+
An empty findings array is insufficient for pass: inspect the engine receipts, required coverage, pending candidates, and runtime completion.
|
|
39
|
+
|
|
40
|
+
Example of a valid gate receipt:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"schema_version": 1,
|
|
45
|
+
"run_id": "20261010-example",
|
|
46
|
+
"status": "incomplete",
|
|
47
|
+
"policy": "team-high-plus-v1",
|
|
48
|
+
"required_engines": ["deepsec:app-source:diff", "artex:test-site:manual_external"],
|
|
49
|
+
"blocking_records": [],
|
|
50
|
+
"reasons": ["The requested ARTEX task has no validated completion and traffic receipt."]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Deepsec diff gate
|
|
55
|
+
|
|
56
|
+
Use the selected installed runner from the source resource; do not bootstrap a new workspace or run `init` merely to set up a gate. Current `init` may start model-backed review, so it belongs inside the authorized execution plan.
|
|
57
|
+
Resolve the exact baseline and fetched history; record the command, tool/config version, scoped paths, source identity, and persisted/stateless mode.
|
|
58
|
+
The following shows native capture only; it is not the normalized OMA acceptance gate:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
set +e
|
|
62
|
+
deepsec process --diff "$security_base_ref" \
|
|
63
|
+
--comment-out "$security_run_dir/raw/deepsec/comment.md" \
|
|
64
|
+
>"$security_run_dir/raw/deepsec/stdout.log" \
|
|
65
|
+
2>"$security_run_dir/raw/deepsec/stderr.log"
|
|
66
|
+
security_native_exit=$?
|
|
67
|
+
set -e
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Use only after the output directory, installed CLI, authorized backend/scope, and runtime/spend limits have been established. Add only flags verified against that version; the source-scanning resource owns current limit controls.
|
|
71
|
+
Capture and upload receipts with an always-run CI step so a nonzero exit cannot hide failure evidence.
|
|
72
|
+
`--comment-out` may produce no file when there are no new findings; absence of this optional artifact neither proves success nor supplies required scan evidence.
|
|
73
|
+
|
|
74
|
+
Persisted Deepsec state excludes old findings from the net-new gate. Repeated execution can exit 0 while an unresolved issue remains.
|
|
75
|
+
Choose the already established policy explicitly:
|
|
76
|
+
|
|
77
|
+
- Net-new policy: evaluate only current direct-mode net-new candidates and preserve prior-state identity.
|
|
78
|
+
- Unresolved-finding policy: inspect current valid stored findings as well; do not rely on the native net-new code alone.
|
|
79
|
+
- Stateless policy: each run analyzes its scoped input again; record that behavior and its cost rather than presenting it as a cache hit.
|
|
80
|
+
|
|
81
|
+
Running from the repository root versus inside `.deepsec/` can change config/context discovery; record the actual cwd/config and never imply custom matchers/INFO.md applied when they did not.
|
|
82
|
+
|
|
83
|
+
## Cisco gates
|
|
84
|
+
|
|
85
|
+
For AI Deep SAST, the verified CLI supports `--json-summary`; retain the summary and native reports, including needs-review records and coverage. Confirm flags for the selected commit before use.
|
|
86
|
+
`--dry-run` indexes without the model analysis; record it as preparatory coverage, not a completed vulnerability pass.
|
|
87
|
+
Check native `success`, phase outcomes, skipped/error counts, output validity, and the JSON findings selected by policy. Do not interpret exit 1 as severity.
|
|
88
|
+
|
|
89
|
+
For Skill Scanner, preserve the configured policy and threshold. A locally installed version may use:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
skill-scanner scan "$security_skill_path" \
|
|
93
|
+
--fail-on-severity high --format json \
|
|
94
|
+
--output "$security_run_dir/raw/skill-scanner/scan.json"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This example selects core analysis only; add `--use-llm` or other network analyzers only when the selected plan authorizes them. Core-only output does not imply that an LLM judge ran.
|
|
98
|
+
Inspect `findings` and `suppressed_findings`; for `scan-all`, inspect each item under `results`. Preserve suppression reasons and native artifacts.
|
|
99
|
+
Treat requested-analyzer setup errors and per-skill model failures/truncated context as incomplete/error even when severity is below the selected threshold.
|
|
100
|
+
|
|
101
|
+
For MCP Scanner, the MCP resource owns the exact supported command, output shape, network/stdio effects, and version check.
|
|
102
|
+
Preserve transport/discovery/analyzer errors separately; a discovered server with zero analyzed tools does not satisfy a nonempty requested tool scan.
|
|
103
|
+
No arbitrary MCP tool execution or additional endpoint access follows from a CI gate request.
|
|
104
|
+
|
|
105
|
+
## ARTEX runtime gates
|
|
106
|
+
|
|
107
|
+
Do not add a guessed `artex scan`, headless flag, or severity-based exit wrapper. A running platform process says nothing about task completion or vulnerability severity.
|
|
108
|
+
Before automation, verify the chosen snapshot's adapter/API, task lifecycle, scope enforcement, artifact export, and failure/budget-stop reporting.
|
|
109
|
+
Otherwise use `integration: manual_external` and import the actual task/evidence receipt; label the integration external/manual, not native CI support.
|
|
110
|
+
When runtime is required, a pending external task cannot produce a pass.
|
|
111
|
+
|
|
112
|
+
Validate the runtime receipt's target URL/host/port, allowlist, account roles, allowed effects, bounded execution budget, backend egress, snapshot/tool/image digests, and deployment/session identity.
|
|
113
|
+
Require observed completion/coverage and retained traffic/tool evidence; engine narrative, a screenshot, or “no successful attack” is insufficient.
|
|
114
|
+
Independent replay must bind each confirmed runtime record to the same observed deployment/session; absent deployed revision limits the claim to that session.
|
|
115
|
+
If proof is required and a target identity cannot be established, keep the gate incomplete rather than mapping the checked-out commit onto the deployment.
|
|
116
|
+
Redirects/discovered hosts cannot expand the allowlist; scope violations or budget stops remain visible in receipts and coverage.
|
|
117
|
+
|
|
118
|
+
## CI trust and artifacts
|
|
119
|
+
|
|
120
|
+
Keep PR-controlled code in a job without repository-write permissions. A separate PR-comment/report job consumes only a bounded sanitized artifact and never checks out or runs PR code.
|
|
121
|
+
Pin production action references and tool snapshots. Never run untrusted fork code with repository secrets by switching to a privileged event or job.
|
|
122
|
+
Use existing credential exposure policy; adding a scanner does not authorize sending the entire repository or traffic to another provider.
|
|
123
|
+
Keep raw traffic/logs restricted. Upload redacted derivatives and the normalized receipt/report, with defined retention and access; omit cookies, authorization headers, keys, and private data.
|
|
124
|
+
The workflow's final process failure/success implements the recorded OMA gate decision; native tool exit codes stay in evidence rather than being overwritten.
|
|
125
|
+
|
|
126
|
+
## Sources and version checks
|
|
127
|
+
|
|
128
|
+
- [Deepsec direct-mode contract](https://github.com/vercel-labs/deepsec/blob/main/docs/reviewing-changes.md).
|
|
129
|
+
- [Cisco AI Deep SAST CLI success exit](https://github.com/cisco-open/ai-deep-sast/blob/main/deepscan.py).
|
|
130
|
+
- [Cisco Skill Scanner results, exit codes, and incomplete judge notes](https://cisco-ai-defense.github.io/docs/skill-scanner/results-and-tuning).
|
|
131
|
+
- [Cisco MCP Scanner supported interfaces](https://github.com/cisco-ai-defense/mcp-scanner).
|
|
132
|
+
- [Cloudflare independent local validation](https://github.com/cloudflare/security-audit-skill/blob/main/skills/security-audit/VALIDATION-AND-REPORTING.md).
|
|
133
|
+
|
|
134
|
+
These are source references, not version pins. Record the installed release/commit and verify drift before execution; if its behavior disagrees, preserve the observation and update the mapping rather than guessing.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Cisco AI Deep SAST
|
|
2
|
+
|
|
3
|
+
Load for an explicitly selected Cisco application-source pass, its setup, or troubleshooting.
|
|
4
|
+
Application-source scans otherwise use Deepsec. Do not add Cisco after an empty result without a selected plan.
|
|
5
|
+
Use [findings-contract.md](findings-contract.md) for receipts and [validation.md](validation.md) for independent proof.
|
|
6
|
+
|
|
7
|
+
## Resolve the artifact and mode
|
|
8
|
+
|
|
9
|
+
- Upstream is [cisco-open/ai-deep-sast](https://github.com/cisco-open/ai-deep-sast), licensed Apache-2.0.
|
|
10
|
+
- Record the exact source commit, local modifications, Python environment/dependency digest, rule/model artifacts, and selected mode.
|
|
11
|
+
- The public repository has an early history; vendor ownership does not establish production maturity or detection accuracy.
|
|
12
|
+
- `CISCO_SAST_ROOT` is the reviewed scanner checkout; `SCANNER_PYTHON` is its existing isolated Python interpreter.
|
|
13
|
+
- `SOURCE_TARGET` and `RUN_DIR` are absolute paths. Keep the scanner checkout separate from the scanned repository.
|
|
14
|
+
- `TARGET_COMMIT` identifies the scanned source; also retain its dirty-tree content digest and scope in `run.json`.
|
|
15
|
+
- Missing tools, models, or dependencies leave this engine skipped/failed. Installation, model downloads, and builds are separate setup operations.
|
|
16
|
+
|
|
17
|
+
Inspect the selected checkout and help before composing a scan:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git -C "$CISCO_SAST_ROOT" rev-parse HEAD
|
|
21
|
+
git -C "$CISCO_SAST_ROOT" status --short
|
|
22
|
+
"$SCANNER_PYTHON" "$CISCO_SAST_ROOT/aideepsast.py" --help
|
|
23
|
+
"$SCANNER_PYTHON" "$CISCO_SAST_ROOT/deepscan.py" --help
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Capture help/version evidence with the engine receipt; the commands below require matching installed flags.
|
|
27
|
+
Do not replace an unavailable pinned dependency or model with a floating release.
|
|
28
|
+
|
|
29
|
+
| Mode | Work performed | Prerequisites and boundary |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| Fast, rules only | Semgrep findings without LLM triage | Existing Semgrep and reviewed rules; `--skip-llm` |
|
|
32
|
+
| Fast, local triage | Semgrep plus Foundation-Sec-8B triage | Existing llama.cpp/model; upstream documents about 8 GB model storage and 16 GB RAM |
|
|
33
|
+
| Deep, index only | Parse supported functions and create index/checklist state | `--dry-run`; no LLM phase, but local artifacts are written |
|
|
34
|
+
| Deep, default | Function-oriented LLM detection plus exploratory analysis | Explicit OpenAI-compatible provider/model and budget |
|
|
35
|
+
| Deep, guided | Send rule-matched functions or Semgrep candidates to the LLM | Explicit guide selection; filtered scope must be reported |
|
|
36
|
+
|
|
37
|
+
The [upstream README](https://github.com/cisco-open/ai-deep-sast/blob/main/README.md) documents these distinct pipelines.
|
|
38
|
+
Configure the selected backend through its documented settings. For deep mode these include `LLM_BASE_URL`, `LLM_MODEL`, and `LLM_API_KEY`.
|
|
39
|
+
Resolve key values from existing credential references; retain only references and the permitted endpoint in receipts.
|
|
40
|
+
A local OpenAI-compatible backend is possible; its availability and resource requirements still need checking.
|
|
41
|
+
Remote deep analysis sends source context to that provider. Secret redaction is not a guarantee that all private data is removed.
|
|
42
|
+
Do not enable a paid/provider fallback, remote rules download, or extra egress implicitly.
|
|
43
|
+
|
|
44
|
+
## Canonical command path
|
|
45
|
+
|
|
46
|
+
Run from the reviewed scanner root so its relative configuration/rule paths resolve; always pass an absolute target.
|
|
47
|
+
Give every revision/mode/backend/configuration identity its own native output directory and database.
|
|
48
|
+
The runner captures argv, cwd, timestamps, stdout, stderr, and native exit even when the command fails.
|
|
49
|
+
|
|
50
|
+
Fast rules-only pass, when selected; `SEMGREP_RULES` is an existing reviewed local rules file/directory:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cd "$CISCO_SAST_ROOT"
|
|
54
|
+
"$SCANNER_PYTHON" aideepsast.py --target "$SOURCE_TARGET" --skip-llm --semgrep-config "$SEMGREP_RULES" --output-dir "$RUN_DIR/cisco-fast"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
For fast local triage, use the pinned checkout's reviewed scanner configuration and omit `--skip-llm` only after the model is available.
|
|
58
|
+
Keep fast and deep native results separate; their exit contracts and finding states differ.
|
|
59
|
+
|
|
60
|
+
Index-only deep preflight, when useful for the selected scan:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
"$SCANNER_PYTHON" deepscan.py --target "$SOURCE_TARGET" --dry-run --output-dir "$RUN_DIR/cisco-index" --db-path "$RUN_DIR/cisco-index/state.db" --commit "$TARGET_COMMIT" --json-summary
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
An index-only run is preparation, not a completed vulnerability scan.
|
|
67
|
+
For an authorized deep pass with the selected backend configured:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
"$SCANNER_PYTHON" deepscan.py --target "$SOURCE_TARGET" --output-dir "$RUN_DIR/cisco-deep" --db-path "$RUN_DIR/cisco-deep/state.db" --commit "$TARGET_COMMIT" --show-needs-review --json-summary
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Pass `--commit` explicitly: automatic Git discovery can reflect the scanner's cwd rather than the target checkout.
|
|
74
|
+
For an explicitly chosen ASVS/CodeGuard-guided pass, add `--guided --guide-rules both` to a separate native workspace.
|
|
75
|
+
Other documented choices are `asvs`, `codeguard`, and `semgrep`; inspect installed help before using them.
|
|
76
|
+
`--skip-exploratory` narrows default deep coverage. Record it as a mode choice, never an invisible cost optimization.
|
|
77
|
+
Semgrep-guided mode can fetch registry rules and reuses an existing `semgrep_report.json`; verify both egress and artifact identity.
|
|
78
|
+
If missing guide rules cause an upstream fallback to broader LLM analysis, stop unless that scope and budget were already selected.
|
|
79
|
+
The [deep entry point](https://github.com/cisco-open/ai-deep-sast/blob/main/deepscan.py) defines these flags and mode transitions.
|
|
80
|
+
|
|
81
|
+
## Interpret coverage and resume
|
|
82
|
+
|
|
83
|
+
- Deep analysis indexes supported function AST nodes; it does not establish review of every file, configuration, dependency, or runtime path.
|
|
84
|
+
- The [indexer](https://github.com/cisco-open/ai-deep-sast/blob/main/indexer.py) excludes common dependency/build directories and supports a bounded language set.
|
|
85
|
+
- The [detector](https://github.com/cisco-open/ai-deep-sast/blob/main/detector.py) uses function bodies and selected call-graph context; exploratory batches group functions from a file.
|
|
86
|
+
- Guided ASVS/CodeGuard analysis skips unmatched functions; Semgrep-guided analysis starts from Semgrep findings. Report those omissions.
|
|
87
|
+
- Retain indexed files/functions, analyzed/skipped functions, phase errors, refusals, and actual candidate counts as measured coverage.
|
|
88
|
+
- A generated checklist or printed completion banner does not prove every coverage item was closed; inspect [coverage tracking](https://github.com/cisco-open/ai-deep-sast/blob/main/coverage_guide.py).
|
|
89
|
+
- Resume is native state reuse, not an assumed `--resume` flag. Preserve the index, SQLite database, and native reports together.
|
|
90
|
+
- The [finding store](https://github.com/cisco-open/ai-deep-sast/blob/main/finding_store.py) can reuse processed symbols without binding them to all revision/model/mode inputs.
|
|
91
|
+
- Reuse that state only for the same recorded identity. A changed source/config/model/mode gets a new workspace; retain the old receipt.
|
|
92
|
+
- Never import a previous `semgrep_report.json` merely because its filename matches.
|
|
93
|
+
|
|
94
|
+
## Collect results and handle failure
|
|
95
|
+
|
|
96
|
+
Retain the JSON summary, native JSON/Markdown reports, SQLite state, index, stderr, and stdout unchanged.
|
|
97
|
+
Follow `phases.reports.json` from the summary rather than guessing the native report filename; validate the pinned output schema.
|
|
98
|
+
The [reporter](https://github.com/cisco-open/ai-deep-sast/blob/main/deepscan_reporter.py) owns native finding serialization.
|
|
99
|
+
Deep `0` means the orchestrator reported execution success; `1` means it did not. It is not a severity gate.
|
|
100
|
+
Inspect `success`, `error`, phase error counters, skipped work, and required reports before marking a receipt `completed`.
|
|
101
|
+
Usable output with missed intended work is `partial`; no usable result is `failed`; unavailable prerequisites are `skipped`.
|
|
102
|
+
Do not borrow the fast scanner's severity exits or the fast-only [Jenkins example](https://github.com/cisco-open/ai-deep-sast/blob/main/Jenkinsfile).
|
|
103
|
+
Parse findings and completion separately before applying [ci.md](ci.md).
|
|
104
|
+
|
|
105
|
+
Upstream triage is another static LLM judgment; its TP/verdict/evidence strings do not supply independent observed reproduction.
|
|
106
|
+
The [triager](https://github.com/cisco-open/ai-deep-sast/blob/main/triager.py) cannot replace the fresh verifier in `validation.md`.
|
|
107
|
+
Import native candidates with origin and severity intact, then apply the common evidence contract.
|
|
108
|
+
Missing sandbox, fixtures, or observed proof keeps candidates `needs_validation`; a static TP label cannot make them `confirmed`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Deepsec configuration and recovery
|
|
2
|
+
|
|
3
|
+
Load for backend selection, credentials, configuration or scanner failure. Read the effective workspace configuration without printing secrets.
|
|
4
|
+
|
|
5
|
+
## Resolve the actual configuration
|
|
6
|
+
|
|
7
|
+
Find the config selected by the installed CLI and inspect its project root/data directory. Record config and plugin digests. A config/plugin is executable code: review it before loading with credentials.
|
|
8
|
+
|
|
9
|
+
Useful current fields include `projects`, `plugins`, `matchers`, `defaultAgent`, `defaultModel`, `defaultThinkingLevel`, `ai` and `dataDir`. Do not hardcode a default model or assume one vendor has better accuracy/cost.
|
|
10
|
+
|
|
11
|
+
Keep model routing separate from the agent runner. Supported authentication paths depend on the installed version:
|
|
12
|
+
|
|
13
|
+
| Route | Inspect |
|
|
14
|
+
|---|---|
|
|
15
|
+
| Vercel Gateway | linked-project OIDC or configured Gateway key; selected team/project |
|
|
16
|
+
| Direct provider | provider/base URL and the name of its environment variable |
|
|
17
|
+
| Local authenticated CLI | local runner session and its actual model; separate sandbox credentials |
|
|
18
|
+
| Custom provider | supported runner, endpoint, credential/header handling |
|
|
19
|
+
|
|
20
|
+
Use native `setup --model-auth …` to change and verify a supported route. Do not silently fall back to a paid provider after an authentication error. Store credential variable names in configuration, never key values in source or command arguments.
|
|
21
|
+
|
|
22
|
+
For a supported direct OpenAI setup the non-secret flags are:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
--agent codex --model-auth direct --ai-provider openai --ai-api-key-env MY_OPENAI_KEY
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Supply the actual secret through the approved environment/secret store. Existing local CLI login does not imply that a hosted sandbox can authenticate.
|
|
29
|
+
|
|
30
|
+
## Recovery table
|
|
31
|
+
|
|
32
|
+
| Observation | Next bounded action |
|
|
33
|
+
|---|---|
|
|
34
|
+
| Wrong/no project | Check resolved root/project ID and configuration precedence before any process pass |
|
|
35
|
+
| Missing credential | Check variable presence without displaying value; verify configured route and account |
|
|
36
|
+
| Expired linked token | Use the installed authentication flow within the existing account/scope |
|
|
37
|
+
| Quota/provider refusal | Preserve exact redacted error, affected units and cost; resume after remediation |
|
|
38
|
+
| Sandbox initialization failure | Check the selected platform credentials and supported environment; do not substitute production |
|
|
39
|
+
| Empty matcher results | Inspect ignores, language support and inventory; empty output is not comprehensive coverage |
|
|
40
|
+
| Coverage repair paused | Retain checkpoint and generated proposal evidence; follow the printed resume instruction |
|
|
41
|
+
| Changed model/config/source | Preserve prior receipts; invalidate affected cache/evidence before reuse |
|
|
42
|
+
|
|
43
|
+
`only`/`exclude`, per-project legacy configuration and CLI overrides can alter coverage. Record the effective selection rather than only the top-level file. Review generated matcher imports and additive plugins together.
|
|
44
|
+
|
|
45
|
+
Debug logs can contain prompts or credentials. Keep originals access-controlled and redact report copies; avoid verbose auth output in the conversation.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Deepsec matcher and coverage work
|
|
2
|
+
|
|
3
|
+
Load only for a concrete coverage gap or explicit matcher request. Matchers select source for investigation; a match alone is not a vulnerability.
|
|
4
|
+
|
|
5
|
+
## Inspect before changing
|
|
6
|
+
|
|
7
|
+
Read the installed matcher types/samples, the project's surface inventory, generated matchers and candidate counts. State the missed ingress primitive and representative source files. Distinguish unsupported language/parsing from a missing matcher.
|
|
8
|
+
|
|
9
|
+
Prefer setup's validated declarative specs for bounded regex selection. Keep their schema validation, examples, unique slugs and breadth checks intact. Do not evaluate model-generated TypeScript as a declarative proposal.
|
|
10
|
+
|
|
11
|
+
A hand-authored plugin is appropriate when the selection requires negative conditions, multiple contextual searches or syntax-aware organization rules. Review it as code. Use the installed `MatcherPlugin` and `regexMatcher` signatures rather than assuming a copied example still compiles.
|
|
12
|
+
|
|
13
|
+
## Acceptance checks
|
|
14
|
+
|
|
15
|
+
For each proposal retain:
|
|
16
|
+
|
|
17
|
+
- The ingress/surface IDs and revision it intends to cover.
|
|
18
|
+
- Narrow relative source globs, language/framework prerequisites and a unique slug.
|
|
19
|
+
- Representative matching examples and nearby nonmatching controls.
|
|
20
|
+
- The expected candidate family/count and measured results.
|
|
21
|
+
- A rationale for its noise tier; this is candidate selection metadata, not finding severity or validation confidence.
|
|
22
|
+
|
|
23
|
+
Add the plugin without dropping `generatedMatchersPlugin` or other selected plugins. Keep generated data separate from richer reviewed code. Avoid catch-all globs and expensive regexes.
|
|
24
|
+
|
|
25
|
+
Use the installed focused scan syntax, for example:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx deepsec scan --matchers project-rpc-ingress
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Inspect actual candidates, including samples across each intended family and false-match controls. Reconcile full inventory coverage using the installed setup/resume procedure only when its model/cost effects are authorized. A focused scan cannot establish full coverage.
|
|
32
|
+
|
|
33
|
+
If validation rejects a proposal or it floods the candidate set, retain the rejection/breadth evidence, narrow the rule and repeat the bounded check. Do not bypass safeguards, erase state or label the remaining surface checked.
|
|
34
|
+
|
|
35
|
+
Store the accepted configuration/matcher digests in `run.json`, including intentionally excluded surfaces. Feed discovered candidates through the same independent validation contract as built-in matcher results.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Deepsec source analysis
|
|
2
|
+
|
|
3
|
+
Load for source scan/diff, native finding triage, export or resume. Use the configured workspace and pinned native executable. Inspect command help before adding flags.
|
|
4
|
+
|
|
5
|
+
## Scope and execution
|
|
6
|
+
|
|
7
|
+
Bind the source revision, dirty/index contents, project root, exclusions, matcher configuration and budget to the receipt. A file-count limit bounds work, not money. Calibrate a large unknown scope within the existing spend limit and record measured usage before expanding.
|
|
8
|
+
|
|
9
|
+
For a full-source pass, from the existing `.deepsec/` workspace:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx deepsec scan
|
|
13
|
+
npx deepsec status
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The matcher pass selects candidates; it does not establish complete vulnerability coverage. Review the inventory against ingress families and sensitive code. An authorized bounded AI calibration may use:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx deepsec process --limit 50 --concurrency 5
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Honor tighter user limits. Confirm installed cost/time controls before execution and use them when supported. Keep actual files/batches/cost/time, refusals and unfinished candidates. Do not extrapolate as an exact quote or silently launch an unbounded continuation.
|
|
23
|
+
|
|
24
|
+
## Diff and explicit files
|
|
25
|
+
|
|
26
|
+
Direct mode can investigate changed files without a prior full scan. Choose one selector:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx deepsec process --diff origin/main
|
|
30
|
+
npx deepsec process --diff-staged
|
|
31
|
+
npx deepsec process --diff-working
|
|
32
|
+
npx deepsec process --files-from selected-files.txt
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
These are alternatives, not sequential steps. Resolve and record the baseline SHA and exact selected file identities. Explicit files are investigated even without matcher hits; default ignore filtering still affects scope. Use `--no-ignore` only for a deliberate scope change.
|
|
36
|
+
|
|
37
|
+
Current diff/direct exit 1 means net-new findings; exit 0 can coexist with earlier unresolved findings. Preserve native results and compare current normalized evidence for the chosen gate policy. Never use the init exit map here.
|
|
38
|
+
|
|
39
|
+
## Triage and state
|
|
40
|
+
|
|
41
|
+
Native `triage`, `revalidate`, `export` and `metrics` have version-specific options: inspect their help, then retain complete machine-readable outputs plus any human report. Static TP/FP/fixed/uncertain verdicts are provenance, not independent confirmation. Send candidates to the separate verifier and applicable proof procedure.
|
|
42
|
+
|
|
43
|
+
Deepsec's discovery worker performs static analysis. Do not instruct it to launch the application, contact endpoints or execute exploits. Runtime proof belongs to a separate verifier/context.
|
|
44
|
+
|
|
45
|
+
On interruption, retain the exact command, state, processed/pending units and stop reason. Resume the same identity/configuration using native checkpoints; investigate changes before reusing cached results. Never remove `data/<id>/` to obtain a clean run.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Deepsec workspace and setup
|
|
2
|
+
|
|
3
|
+
Load for a source setup request or a missing workspace. Reuse existing `.deepsec/` state.
|
|
4
|
+
|
|
5
|
+
## Select the setup path
|
|
6
|
+
|
|
7
|
+
Record the package version, target root, selected agent/model route, authorization and limits in the engine receipt. Prefer a locked local executable; examples use `npx deepsec` as the upstream spelling, not permission to fetch a floating version.
|
|
8
|
+
|
|
9
|
+
Inspect `--version`, `init --help`, and `setup --help` first. Read the installed `.deepsec/node_modules/deepsec/SKILL.md` and `dist/docs/` when present. Installed help takes precedence over these examples.
|
|
10
|
+
|
|
11
|
+
Current upstream `init` can authenticate, study the repository, scan and run paid analysis. A plain initialization command is not a scaffold-only operation.
|
|
12
|
+
|
|
13
|
+
For configuration files alone, from the target root:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx deepsec init --scaffold-only
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This does not install dependencies, select/authenticate a model or perform an AI review. Review the scaffold and lock the selected dependency through the target's package manager when setup is authorized. Do not build the target application.
|
|
20
|
+
|
|
21
|
+
For a setup plan without applying it, if supported:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx deepsec init --plan --output json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Run the one-shot setup/analysis only under an existing scope and spend authorization. Pass that authorization's numeric `--max-cost-usd` and duration `--max-duration` values; do not invent an unlimited default. Headless execution needs explicit answers and an inspected output format. Credential presence is not spend authorization.
|
|
28
|
+
|
|
29
|
+
## Project context and coverage
|
|
30
|
+
|
|
31
|
+
Check the configured project ID and resolved root before analyzing. Review `data/<id>/INFO.md` or its `infoMarkdown` override for the actual trust boundaries: callers, authentication/authorization, tenant ownership, secret handling, ingress families and relevant safeguards. Keep it project-specific, with representative paths and small examples instead of generic CWE descriptions.
|
|
32
|
+
|
|
33
|
+
Setup may generate surface inventory and data-only matchers. Inspect the recorded coverage and exclusions. Preserve `generatedMatchersPlugin` when adding a project plugin. Missing ingress coverage is a gap even if scan candidates exist.
|
|
34
|
+
|
|
35
|
+
When setup stops, save its printed state/inventory/proposal paths and exact resume command. Repair only the recorded coverage or credential problem, then resume. Do not delete native data to bypass a coverage checkpoint or repeat paid phases already completed.
|
|
36
|
+
|
|
37
|
+
## Setup evidence
|
|
38
|
+
|
|
39
|
+
Save version/help, redacted configuration, generated-file digests, setup summary, selected route and any native exit. An init budget/input stop has its own exit semantics; do not interpret it using the diff findings contract.
|
|
40
|
+
|
|
41
|
+
Keep `.env.local`, authentication material and native data out of commits. Review configuration/matchers before any separately authorized commit. Setup success records preparation/coverage, not confirmed vulnerabilities or runtime proof.
|