# Security Audit Report — portable-agent-skill-tools-hooks-generator

- **Report ID:** `088508bf-ae21-4aaf-a8ad-1920c2fefa56`
- **Generated:** 2026-08-12T12:43:13.815344+00:00
- **Signature:** unsigned (cosign keyless signing runs in CI; Req 22.4)

## 1. Executive Summary

**Badge:** Verified (composite)  
**Security score:** 99.83

| Scanner | Badge |
| --- | --- |
| agent-audit-kit | Verified |
| agentshield | not_applicable |
| bearer | not_applicable |
| capslock | not_applicable |
| cisco-skill-scanner | Verified |
| govulncheck | not_applicable |
| nerlo-behavioral | not_applicable |
| nerlo-install-instruction | Verified |
| osv-scanner | not_applicable |
| trivy | not_applicable |
| trivy_image | not_applicable |

| Severity | Findings |
| --- | --- |
| critical | 0 |
| high | 0 |
| medium | 0 |
| low | 0 |
| informational | 1 |

portable-agent-skill-tools-hooks-generator meets the registry's verification bar at scan time. Keep monitoring enabled — verification reflects this commit, not future releases.

## 2. Source Provenance

- **Repository:** https://github.com/deepakkj/portable-agent-skills-hooks-tools-generator-skill
- **Commit scanned:** `unknown`
- **License:** unknown
- **Maintainer:** unknown
- **Version:** 1.0.0

## 3. Per-Scanner Detail

### agentshield (v1.4.0) — not_applicable / n/a

No findings.

### cisco-skill-scanner (v2.0.11) — Verified / 99.5

- **[informational] Skill does not specify a license** — Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms. (/repo/SKILL.md:None)

### agent-audit-kit (v0.3.26) — Verified / 100.0

No findings.

### bearer (v2.0.2) — not_applicable / n/a

No findings.

### nerlo-behavioral (v0.1.0) — not_applicable / n/a

No findings.

### nerlo-install-instruction (v0.1.0) — Verified / 100.0

No findings.

### capslock (vv0.3.2) — not_applicable / n/a

No findings.

### trivy (v0.71.0) — not_applicable / n/a

No findings.

### osv-scanner (v2.3.8) — not_applicable / n/a

No findings.

### trivy_image (v0.71.0) — not_applicable / n/a

No findings.

### govulncheck (vv1.6.0) — not_applicable / n/a

No findings.

## 4. Threat Model

Threat model synthesis has not yet run for this scan. This section is generated by the registry's LLM pipeline (Req 22.3) and will appear in the next regeneration of this report.

## 5. Audit Chain

- **Scan job:** `22567b43-4e8f-4b83-b01a-a6598b736625`
- **Completed:** 2026-08-11T07:36:10.558459+00:00
- **Scanner base image:** `us-central1-docker.pkg.dev/nerlo-vsk-prod/nerlo/scanner-base@sha256:d5aaefa8b517d1f03832091ab094e20dc73160a07ae1102af1b2e395ce6ce852`
- **AI decision log entries:** 2
  - `12db4887-18aa-46a7-bfe8-7eb0b3a8dba3`
  - `934a7a87-6099-45d5-bdb2-c2d1699c7936`

## 6. Appendix — Raw Scanner Output

```json
[
  {
    "scanner_name": "agentshield",
    "scanner_version": "1.4.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.17015970300417393,
    "status": "not_applicable",
    "examined": {
      "unit": "scan_targets",
      "count": 0
    },
    "metadata": {
      "source": "npm",
      "source_url": "https://www.npmjs.com/package/ecc-agentshield",
      "install_command": "npm install -g ecc-agentshield@1.4.0",
      "scans_performed": []
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "cisco-skill-scanner",
    "scanner_version": "2.0.11",
    "score": 99.5,
    "scanner_badge": "Verified",
    "findings": [
      {
        "tool_name": "cisco-skill-scanner",
        "severity": "informational",
        "category": "policy_violation",
        "file_path": "/repo/SKILL.md",
        "line_number": null,
        "rule_identifier": "MANIFEST_MISSING_LICENSE",
        "title": "Skill does not specify a license",
        "description": "Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.",
        "remediation": "Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)"
      }
    ],
    "execution_duration_seconds": 6.65181530098198,
    "status": "complete",
    "examined": {
      "unit": "skills",
      "count": 1
    },
    "metadata": {
      "source": "pypi",
      "source_url": "https://pypi.org/project/cisco-ai-skill-scanner/2.0.11/",
      "report_type": "cisco-skill-sast",
      "analyzers_used": [
        "bytecode",
        "pipeline",
        "static_analyzer"
      ],
      "skills_scanned": [
        "portable-agent-skill-tools-hooks-generator"
      ],
      "install_command": "pip install --require-hashes -r docker/scanner-base/cisco-skill-scanner/requirements.txt",
      "severity_counts": {
        "low": 0,
        "high": 0,
        "medium": 0,
        "critical": 0,
        "informational": 1
      },
      "artifact_type_policy": "gemini_extension"
    },
    "display_score": 99.5,
    "display_badge": "Verified"
  },
  {
    "scanner_name": "agent-audit-kit",
    "scanner_version": "0.3.26",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.5223647500388324,
    "status": "complete",
    "examined": {
      "unit": "files",
      "count": 8
    },
    "metadata": {
      "source": "pypi",
      "source_url": "https://pypi.org/project/agent-audit-kit/0.3.26/",
      "report_type": "agent-audit-kit-sast",
      "install_command": "pip install --require-hashes -r docker/scanner-base/agent-audit-kit/requirements.txt",
      "rules_evaluated": 211
    },
    "display_score": 100.0,
    "display_badge": "Verified"
  },
  {
    "scanner_name": "bearer",
    "scanner_version": "2.0.2",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.09790508099831641,
    "status": "not_applicable",
    "examined": {
      "unit": "files",
      "count": 0
    },
    "metadata": {
      "source": "github-releases",
      "source_url": "https://github.com/Bearer/bearer",
      "report_type": "security",
      "install_command": "curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh -s -- -b /usr/local/bin \"v2.0.2\"",
      "environment_note": "bearer found no supported-language source files to analyze (see _SUPPORTED_SOURCE_EXTENSIONS); reported not_applicable rather than a clean 100 \u2014 the scanner never ran, so it has no verdict to contribute"
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "nerlo-behavioral",
    "scanner_version": "0.1.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 3.0067252140142955,
    "status": "not_applicable",
    "examined": {
      "unit": "files",
      "count": 0
    },
    "metadata": {
      "source": "nerlo-original",
      "source_url": "https://github.com/nerlo-ai/nerlo",
      "report_type": "nerlo-behavioral",
      "ruleset_path": "/opt/nerlo-rules/exfiltration.yaml",
      "ruleset_paths": [
        "/opt/nerlo-rules/exfiltration.yaml",
        "/opt/nerlo-rules/clipboard_exfiltration.yaml",
        "/opt/nerlo-rules/rce_endpoint.yaml",
        "/opt/nerlo-rules/taint_egress.yaml"
      ],
      "install_command": "pip install 'semgrep==1.97.0'",
      "merged_invocation": true
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "nerlo-install-instruction",
    "scanner_version": "0.1.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 3.0069002929958515,
    "status": "complete",
    "examined": {
      "unit": "files",
      "count": 6
    },
    "metadata": {
      "source": "nerlo-original",
      "source_url": "https://github.com/nerlo-ai/nerlo",
      "report_type": "nerlo-install-instruction",
      "ruleset_path": "/opt/nerlo-rules/install_instructions.yaml",
      "ruleset_paths": [
        "/opt/nerlo-rules/install_instructions.yaml",
        "/opt/nerlo-rules/cursor_rules.yaml"
      ],
      "install_command": "pip install 'semgrep==1.97.0'",
      "merged_invocation": true
    },
    "display_score": 100.0,
    "display_badge": "Verified"
  },
  {
    "scanner_name": "capslock",
    "scanner_version": "v0.3.2",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.09810777101665735,
    "status": "not_applicable",
    "examined": {
      "unit": "packages",
      "count": 0
    },
    "metadata": {
      "source": "go-module-proxy",
      "source_url": "https://github.com/google/capslock/releases/tag/v0.3.2",
      "report_type": "go-capability",
      "vendor_mode": false,
      "install_command": "GOTOOLCHAIN=local GOFLAGS=-mod=mod GOSUMDB=sum.golang.org GOBIN=/usr/local/bin go install github.com/google/capslock/cmd/capslock@v0.3.2  # github.com/google/capslock v0.3.2 h1:0ZQa9YR8s9ewFu1g5w6Rgd/lW/4dga7qJew3K6Ql7aM=",
      "environment_note": "capslock found no .go files to analyze; reported not_applicable rather than a clean 100 \u2014 the scanner never ran, so it has no verdict to contribute",
      "go_files_present": 0,
      "artifact_type_policy": "gemini_extension",
      "expected_capabilities": null,
      "artifact_type_explicit": true
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "trivy",
    "scanner_version": "0.71.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.1769492570310831,
    "status": "not_applicable",
    "examined": {
      "unit": "manifests",
      "count": 0
    },
    "metadata": {
      "source": "github-releases",
      "source_url": "https://github.com/aquasecurity/trivy/releases/tag/v0.71.0",
      "report_type": "filesystem-vulnerability",
      "install_command": "curl -sfL -o /tmp/trivy.deb https://github.com/aquasecurity/trivy/releases/download/v0.71.0/trivy_0.71.0_Linux-64bit.deb && echo '<sha256>  /tmp/trivy.deb' | sha256sum -c - && dpkg -i /tmp/trivy.deb",
      "manifests_scanned": []
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "osv-scanner",
    "scanner_version": "2.3.8",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.15047038800548762,
    "status": "not_applicable",
    "examined": {
      "unit": "manifests",
      "count": 0
    },
    "metadata": {
      "source": "github-releases",
      "source_url": "https://github.com/google/osv-scanner/releases/tag/v2.3.8",
      "report_type": "osv-vulnerability",
      "ecosystems_seen": [],
      "install_command": "curl -sfL -o /usr/local/bin/osv-scanner https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_linux_amd64 && echo '<sha256>  /usr/local/bin/osv-scanner' | sha256sum -c - && chmod +x /usr/local/bin/osv-scanner",
      "manifests_scanned": [],
      "finding_id_aliases": {},
      "cross_scanner_correlation": {
        "only_osv": [],
        "only_trivy": [],
        "intersection_ids": []
      }
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "trivy_image",
    "scanner_version": "0.71.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 3.649998689070344e-05,
    "status": "not_applicable",
    "examined": {
      "unit": "image_targets",
      "count": 0
    },
    "metadata": {
      "reason": "no OCI image acquired for this artifact"
    },
    "display_score": null,
    "display_badge": "not_applicable"
  },
  {
    "scanner_name": "govulncheck",
    "scanner_version": "v1.6.0",
    "score": 100.0,
    "scanner_badge": "Verified",
    "findings": [],
    "execution_duration_seconds": 0.07138562202453613,
    "status": "not_applicable",
    "examined": {
      "unit": "modules",
      "count": 0
    },
    "metadata": {
      "source": "go-module-proxy",
      "source_url": "https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck",
      "report_type": "go-reachability",
      "vendor_mode": false,
      "go_mod_present": false,
      "install_command": "GOTOOLCHAIN=local GOFLAGS=-mod=mod GOSUMDB=sum.golang.org GOBIN=/usr/local/bin go install golang.org/x/vuln/cmd/govulncheck@v1.6.0  # golang.org/x/vuln v1.6.0 h1:FeMO9Rm/HwyduOztbvKcOw+zvDEPr4I4aQNSfevFcKY=",
      "offline_db_path": "/opt/govulncheck-db",
      "environment_note": "govulncheck found no go.mod, so this tree declares no Go module and no Go dependencies; reported not_applicable rather than a clean 100 \u2014 the scanner never ran, so it has no verdict to contribute"
    },
    "display_score": null,
    "display_badge": "not_applicable"
  }
]
```
