<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SPECTRA on CybersecurityOS</title><link>http://www.cybersecurityos.net/docs/spectra/</link><description>Recent content in SPECTRA on CybersecurityOS</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://www.cybersecurityos.net/docs/spectra/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>http://www.cybersecurityos.net/docs/spectra/installation/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/installation/</guid><description>&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>SPECTRA runs anywhere Python 3.9+ is available. Three install paths are supported.&lt;/p>
&lt;hr>
&lt;h3 id="system-requirements">System Requirements&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Requirement&lt;/th>
 &lt;th style="text-align: left">Minimum&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">Python&lt;/td>
 &lt;td style="text-align: left">3.9+&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">pip&lt;/td>
 &lt;td style="text-align: left">21.0+&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Anthropic API key&lt;/td>
 &lt;td style="text-align: left">Required (&lt;a href="https://console.anthropic.com/">get one here&lt;/a>)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Operating system&lt;/td>
 &lt;td style="text-align: left">Linux, macOS, Windows (WSL2 recommended)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Memory&lt;/td>
 &lt;td style="text-align: left">512 MB RAM minimum&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Disk&lt;/td>
 &lt;td style="text-align: left">100 MB for source + dependencies&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h3 id="option-1--pip-recommended">Option 1 — pip (Recommended)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/d0uble3L/spectra
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd spectra
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pip install -e .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The &lt;code>-e&lt;/code> flag installs in editable mode, making it easy to pull updates with &lt;code>git pull&lt;/code> without reinstalling.&lt;/p></description></item><item><title>Quick Start</title><link>http://www.cybersecurityos.net/docs/spectra/quickstart/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/quickstart/</guid><description>&lt;h2 id="quick-start">Quick Start&lt;/h2>
&lt;p>This guide gets you from install to your first analysis in under 5 minutes. It assumes you have already completed &lt;a href="http://www.cybersecurityos.net/docs/spectra/installation/">Installation&lt;/a>.&lt;/p>
&lt;hr>
&lt;h3 id="step-1--set-your-api-key">Step 1 — Set your API key&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cp .env.example .env
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Edit .env and add your Anthropic API key&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ANTHROPIC_API_KEY&lt;span style="color:#f92672">=&lt;/span>sk-ant-...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="step-2--run-your-first-analysis">Step 2 — Run your first analysis&lt;/h3>
&lt;p>Use the bundled Trivy sample to confirm the setup:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>spectra analyze tests/samples/trivy_sample.json
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>SPECTRA auto-detects the scanner type from the file structure and outputs a ranked summary to stdout.&lt;/p></description></item><item><title>CLI Reference</title><link>http://www.cybersecurityos.net/docs/spectra/cli-reference/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/cli-reference/</guid><description>&lt;h2 id="cli-reference">CLI Reference&lt;/h2>
&lt;p>Complete reference for all SPECTRA commands and flags.&lt;/p>
&lt;hr>
&lt;h3 id="global-usage">Global Usage&lt;/h3>
&lt;pre tabindex="0">&lt;code>spectra [COMMAND] [OPTIONS] [INPUT]
&lt;/code>&lt;/pre>&lt;hr>
&lt;h3 id="commands">Commands&lt;/h3>
&lt;h4 id="spectra-analyze">&lt;code>spectra analyze&lt;/code>&lt;/h4>
&lt;p>Analyze a scanner output file and produce ranked findings, attack chain analysis, and an executive summary.&lt;/p>
&lt;pre tabindex="0">&lt;code>spectra analyze [INPUT] [OPTIONS]
&lt;/code>&lt;/pre>&lt;p>&lt;strong>Arguments&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Argument&lt;/th>
 &lt;th style="text-align: left">Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>INPUT&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Path to the scanner output file. Omit to read from stdin.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Options&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Flag&lt;/th>
 &lt;th style="text-align: left">Type&lt;/th>
 &lt;th style="text-align: left">Default&lt;/th>
 &lt;th style="text-align: left">Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--scanner&lt;/code>&lt;/td>
 &lt;td style="text-align: left">string&lt;/td>
 &lt;td style="text-align: left">auto&lt;/td>
 &lt;td style="text-align: left">Force scanner type: &lt;code>trivy&lt;/code>, &lt;code>semgrep&lt;/code>, &lt;code>generic&lt;/code>. Auto-detected from file structure when omitted.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--format&lt;/code>&lt;/td>
 &lt;td style="text-align: left">string&lt;/td>
 &lt;td style="text-align: left">&lt;code>markdown&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Output format: &lt;code>markdown&lt;/code>, &lt;code>json&lt;/code>, or &lt;code>both&lt;/code>.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--output&lt;/code>&lt;/td>
 &lt;td style="text-align: left">string&lt;/td>
 &lt;td style="text-align: left">&lt;code>./spectra_report&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Output file path, without extension. SPECTRA appends &lt;code>.md&lt;/code> and/or &lt;code>.json&lt;/code> depending on &lt;code>--format&lt;/code>.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--usage&lt;/code>&lt;/td>
 &lt;td style="text-align: left">flag&lt;/td>
 &lt;td style="text-align: left">off&lt;/td>
 &lt;td style="text-align: left">Print Anthropic API token usage stats after analysis. Useful for cost tracking.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--model&lt;/code>&lt;/td>
 &lt;td style="text-align: left">string&lt;/td>
 &lt;td style="text-align: left">&lt;code>claude-sonnet-4-6&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Claude model to use. See &lt;a href="http://www.cybersecurityos.net/docs/spectra/configuration/">Configuration&lt;/a> for supported models.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--max-tokens&lt;/code>&lt;/td>
 &lt;td style="text-align: left">int&lt;/td>
 &lt;td style="text-align: left">4096&lt;/td>
 &lt;td style="text-align: left">Maximum tokens for the AI response. Increase for very large scan files.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>--verbose&lt;/code>&lt;/td>
 &lt;td style="text-align: left">flag&lt;/td>
 &lt;td style="text-align: left">off&lt;/td>
 &lt;td style="text-align: left">Enable verbose logging, including prompt and response details.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Examples&lt;/strong>&lt;/p></description></item><item><title>Configuration</title><link>http://www.cybersecurityos.net/docs/spectra/configuration/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/configuration/</guid><description>&lt;h2 id="configuration">Configuration&lt;/h2>
&lt;p>SPECTRA is configured through a &lt;code>.env&lt;/code> file in the project root and optionally through environment variables set in the shell or CI/CD pipeline.&lt;/p>
&lt;hr>
&lt;h3 id="env-file">&lt;code>.env&lt;/code> File&lt;/h3>
&lt;p>Copy the template and populate your values:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cp .env.example .env
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A complete &lt;code>.env&lt;/code> file looks like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Required&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ANTHROPIC_API_KEY&lt;span style="color:#f92672">=&lt;/span>sk-ant-...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Optional — override defaults&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SPECTRA_MODEL&lt;span style="color:#f92672">=&lt;/span>claude-sonnet-4-6
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SPECTRA_FORMAT&lt;span style="color:#f92672">=&lt;/span>both
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SPECTRA_OUTPUT&lt;span style="color:#f92672">=&lt;/span>reports/latest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SPECTRA_MAX_TOKENS&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#ae81ff">4096&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>Never commit &lt;code>.env&lt;/code> to version control. It is listed in &lt;code>.gitignore&lt;/code> by default.&lt;/p></description></item><item><title>Supported Scanners</title><link>http://www.cybersecurityos.net/docs/spectra/scanners/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/scanners/</guid><description>&lt;h2 id="supported-scanners">Supported Scanners&lt;/h2>
&lt;p>SPECTRA processes output from the following scanner types. Auto-detection is attempted by default; use &lt;code>--scanner&lt;/code> to force a specific parser when auto-detection does not apply.&lt;/p>
&lt;hr>
&lt;h3 id="trivy">Trivy&lt;/h3>
&lt;p>&lt;a href="https://trivy.dev/">Trivy&lt;/a> is an open-source vulnerability scanner for containers, filesystems, Git repositories, and cloud infrastructure.&lt;/p>
&lt;p>&lt;strong>Auto-detected:&lt;/strong> Yes — from JSON structure&lt;br>
&lt;strong>Input format:&lt;/strong> JSON (&lt;code>-f json&lt;/code>)&lt;/p>
&lt;p>&lt;strong>Generate scan output:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Container image scan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>trivy image your-image:latest -f json -o trivy.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Filesystem scan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>trivy fs . -f json -o trivy-fs.json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Kubernetes scan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>trivy k8s --report summary -f json -o trivy-k8s.json
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Analyze with SPECTRA:&lt;/strong>&lt;/p></description></item><item><title>Output Formats</title><link>http://www.cybersecurityos.net/docs/spectra/output-formats/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/output-formats/</guid><description>&lt;h2 id="output-formats">Output Formats&lt;/h2>
&lt;p>SPECTRA produces two output formats: &lt;strong>Markdown&lt;/strong> (human-readable) and &lt;strong>JSON&lt;/strong> (machine-readable for downstream tooling). Use &lt;code>--format both&lt;/code> to generate both simultaneously.&lt;/p>
&lt;hr>
&lt;h3 id="format-options">Format Options&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Value&lt;/th>
 &lt;th style="text-align: left">Files Generated&lt;/th>
 &lt;th style="text-align: left">Use Case&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>markdown&lt;/code> (default)&lt;/td>
 &lt;td style="text-align: left">&lt;code>&amp;lt;output&amp;gt;.md&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Reports, executive briefings, GRC documentation&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>json&lt;/code>&lt;/td>
 &lt;td style="text-align: left">&lt;code>&amp;lt;output&amp;gt;.json&lt;/code>&lt;/td>
 &lt;td style="text-align: left">SIEM integration, ticketing automation, dashboards&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">&lt;code>both&lt;/code>&lt;/td>
 &lt;td style="text-align: left">&lt;code>&amp;lt;output&amp;gt;.md&lt;/code> + &lt;code>&amp;lt;output&amp;gt;.json&lt;/code>&lt;/td>
 &lt;td style="text-align: left">Full reporting + downstream automation&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>spectra analyze trivy.json --format both --output reports/scan-2026-05-18
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Writes: reports/scan-2026-05-18.md&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># reports/scan-2026-05-18.json&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="markdown-report-structure">Markdown Report Structure&lt;/h3>
&lt;p>The Markdown report is structured for human review and is suitable for sharing directly with engineers, analysts, and leadership.&lt;/p></description></item><item><title>CI/CD Integration</title><link>http://www.cybersecurityos.net/docs/spectra/cicd-integration/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/cicd-integration/</guid><description>&lt;h2 id="cicd-integration">CI/CD Integration&lt;/h2>
&lt;p>SPECTRA&amp;rsquo;s CLI-first design makes it a natural fit in automated pipelines. This page covers integration patterns for GitHub Actions, GitLab CI, and Jenkins.&lt;/p>
&lt;hr>
&lt;h3 id="general-principles">General Principles&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Inject &lt;code>ANTHROPIC_API_KEY&lt;/code> as a repository secret&lt;/strong> — never hard-code credentials in pipeline YAML&lt;/li>
&lt;li>&lt;strong>Use &lt;code>--format json&lt;/code>&lt;/strong> for machine-readable output and pipe to ticket creation or SIEM ingest&lt;/li>
&lt;li>&lt;strong>Use &lt;code>--format both&lt;/code>&lt;/strong> to preserve a human-readable artifact for security team review&lt;/li>
&lt;li>&lt;strong>Run SPECTRA after your scanner step&lt;/strong>, not before — it consumes scanner output, not raw code&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="github-actions">GitHub Actions&lt;/h3>
&lt;h4 id="trivy--spectra-in-a-pr-check">Trivy + SPECTRA in a PR check&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># .github/workflows/security-scan.yml&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Security Scan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">on&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">pull_request&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">branches&lt;/span>: [&lt;span style="color:#ae81ff">main, develop]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">jobs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">spectra-analysis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">runs-on&lt;/span>: &lt;span style="color:#ae81ff">ubuntu-latest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">steps&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">actions/checkout@v4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Run Trivy container scan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">aquasecurity/trivy-action@master&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">with&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">image-ref&lt;/span>: &lt;span style="color:#ae81ff">${{ github.repository }}:${{ github.sha }}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">format&lt;/span>: &lt;span style="color:#ae81ff">json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">output&lt;/span>: &lt;span style="color:#ae81ff">trivy.json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">exit-code&lt;/span>: &lt;span style="color:#ae81ff">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Set up Python&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">actions/setup-python@v5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">with&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">python-version&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;3.11&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Install SPECTRA&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> git clone https://github.com/d0uble3L/spectra /tmp/spectra
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> pip install -e /tmp/spectra&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Run SPECTRA analysis&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">ANTHROPIC_API_KEY&lt;/span>: &lt;span style="color:#ae81ff">${{ secrets.ANTHROPIC_API_KEY }}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> spectra analyze trivy.json --format both --output reports/pr-${{ github.event.pull_request.number }}&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Upload SPECTRA report&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">actions/upload-artifact@v4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">with&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">spectra-report-pr-${{ github.event.pull_request.number }}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">path&lt;/span>: &lt;span style="color:#ae81ff">reports/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">retention-days&lt;/span>: &lt;span style="color:#ae81ff">30&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="semgrep--spectra-on-push">Semgrep + SPECTRA on push&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># .github/workflows/sast.yml&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">SAST&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">on&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">push&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">branches&lt;/span>: [&lt;span style="color:#ae81ff">main]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">jobs&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">sast&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">runs-on&lt;/span>: &lt;span style="color:#ae81ff">ubuntu-latest&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">steps&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">actions/checkout@v4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Run Semgrep&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> pip install semgrep
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> semgrep --config=auto --json &amp;gt; semgrep.json&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Install SPECTRA&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> git clone https://github.com/d0uble3L/spectra /tmp/spectra
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> pip install -e /tmp/spectra&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Run SPECTRA analysis&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">env&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">ANTHROPIC_API_KEY&lt;/span>: &lt;span style="color:#ae81ff">${{ secrets.ANTHROPIC_API_KEY }}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">run&lt;/span>: |&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> cat semgrep.json | spectra analyze --scanner semgrep --format both --output reports/sast-${{ github.run_id }}&lt;/span> 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">Upload report&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">uses&lt;/span>: &lt;span style="color:#ae81ff">actions/upload-artifact@v4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">with&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">spectra-sast-${{ github.run_id }}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">path&lt;/span>: &lt;span style="color:#ae81ff">reports/&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="gitlab-ci">GitLab CI&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># .gitlab-ci.yml&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">spectra-analysis&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">stage&lt;/span>: &lt;span style="color:#ae81ff">security&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">image&lt;/span>: &lt;span style="color:#ae81ff">python:3.11-slim&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">before_script&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">apt-get update &amp;amp;&amp;amp; apt-get install -y git&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">git clone https://github.com/d0uble3L/spectra /tmp/spectra&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">pip install -e /tmp/spectra&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">script&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">trivy image $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -f json -o trivy.json&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">spectra analyze trivy.json --format both --output reports/pipeline-$CI_PIPELINE_ID&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">artifacts&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">paths&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ae81ff">reports/&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">expire_in&lt;/span>: &lt;span style="color:#ae81ff">30&lt;/span> &lt;span style="color:#ae81ff">days&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">variables&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">ANTHROPIC_API_KEY&lt;/span>: &lt;span style="color:#ae81ff">$ANTHROPIC_API_KEY &lt;/span> &lt;span style="color:#75715e"># Set in GitLab CI/CD variables&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="jenkins-declarative-pipeline">Jenkins (Declarative Pipeline)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-groovy" data-lang="groovy">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">// Jenkinsfile
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>pipeline &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> agent any
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> environment &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ANTHROPIC_API_KEY &lt;span style="color:#f92672">=&lt;/span> credentials&lt;span style="color:#f92672">(&lt;/span>&lt;span style="color:#e6db74">&amp;#39;anthropic-api-key&amp;#39;&lt;/span>&lt;span style="color:#f92672">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stages &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stage&lt;span style="color:#f92672">(&lt;/span>&lt;span style="color:#e6db74">&amp;#39;Trivy Scan&amp;#39;&lt;/span>&lt;span style="color:#f92672">)&lt;/span> &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> steps &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sh &lt;span style="color:#e6db74">&amp;#39;trivy image your-image:latest -f json -o trivy.json&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> stage&lt;span style="color:#f92672">(&lt;/span>&lt;span style="color:#e6db74">&amp;#39;SPECTRA Analysis&amp;#39;&lt;/span>&lt;span style="color:#f92672">)&lt;/span> &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> steps &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sh &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> pip install -e /opt/spectra
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> spectra analyze trivy.json --format both --output reports/build-${BUILD_NUMBER}
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> &amp;#39;&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> post &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> always &lt;span style="color:#f92672">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> archiveArtifacts artifacts: &lt;span style="color:#e6db74">&amp;#39;reports/**&amp;#39;&lt;/span>&lt;span style="color:#f92672">,&lt;/span> allowEmptyArchive: &lt;span style="color:#66d9ef">true&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h3 id="secrets-management">Secrets Management&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Platform&lt;/th>
 &lt;th style="text-align: left">How to add &lt;code>ANTHROPIC_API_KEY&lt;/code>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">GitHub Actions&lt;/td>
 &lt;td style="text-align: left">Settings → Secrets and variables → Actions → New repository secret&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">GitLab CI&lt;/td>
 &lt;td style="text-align: left">Settings → CI/CD → Variables → Add variable&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Jenkins&lt;/td>
 &lt;td style="text-align: left">Manage Jenkins → Credentials → Add Credentials (Secret text)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h3 id="recommended-pipeline-placement">Recommended Pipeline Placement&lt;/h3>
&lt;pre tabindex="0">&lt;code>Commit → Build → [ Trivy / Semgrep ] → SPECTRA → Report artifact → (optional) Ticket creation
&lt;/code>&lt;/pre>&lt;p>SPECTRA runs after the scanner to analyze its output. It does not block the build by default — set your pipeline to fail on findings by parsing the JSON output for &lt;code>critical&lt;/code> severity items if a gate is desired.&lt;/p></description></item><item><title>Architecture</title><link>http://www.cybersecurityos.net/docs/spectra/architecture/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/architecture/</guid><description>&lt;h2 id="architecture">Architecture&lt;/h2>
&lt;p>This page covers SPECTRA&amp;rsquo;s internal design: how data flows through the system, how the AI layer works, and the key engineering decisions behind the implementation.&lt;/p>
&lt;hr>
&lt;h3 id="high-level-data-flow">High-Level Data Flow&lt;/h3>
&lt;pre tabindex="0">&lt;code>Scanner Output (Trivy JSON / Semgrep JSON / plain text)
 ↓
 Parser Layer
 (format detection + normalization)
 ↓
 Context Builder
 (finding enrichment + chain detection input)
 ↓
 Claude API (with prompt caching)
 (triage, attack chain analysis, executive summary)
 ↓
 Report Renderer
 (Markdown + JSON output)
 ↓
 Output Files / stdout
&lt;/code>&lt;/pre>&lt;hr>
&lt;h3 id="parser-layer">Parser Layer&lt;/h3>
&lt;p>SPECTRA includes a parser for each supported scanner format. Parsers normalize raw scanner output into a common internal schema before it reaches the AI layer:&lt;/p></description></item><item><title>Contributing</title><link>http://www.cybersecurityos.net/docs/spectra/contributing/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/contributing/</guid><description>&lt;h2 id="contributing-to-spectra">Contributing to SPECTRA&lt;/h2>
&lt;p>SPECTRA is an open-source project and contributions are welcome. This page covers how to report issues, submit pull requests, and what to expect from the review process.&lt;/p>
&lt;hr>
&lt;h3 id="ways-to-contribute">Ways to Contribute&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Bug reports&lt;/strong> — Found something broken? Open an issue on GitHub&lt;/li>
&lt;li>&lt;strong>Feature requests&lt;/strong> — Have an idea? Open a discussion or issue with context on your use case&lt;/li>
&lt;li>&lt;strong>New scanner parsers&lt;/strong> — SPECTRA currently supports Trivy, Semgrep, and generic. Adding a new parser is one of the highest-value contributions&lt;/li>
&lt;li>&lt;strong>Documentation improvements&lt;/strong> — Clarifications, examples, and corrections are always welcome&lt;/li>
&lt;li>&lt;strong>Test coverage&lt;/strong> — Additional test cases for edge cases in scanner parsing or output rendering&lt;/li>
&lt;li>&lt;strong>Security vulnerability reports&lt;/strong> — See the &lt;a href="#security-policy">Security Policy&lt;/a> below&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="getting-started">Getting Started&lt;/h3>
&lt;p>&lt;strong>1. Fork and clone the repository:&lt;/strong>&lt;/p></description></item><item><title>License</title><link>http://www.cybersecurityos.net/docs/spectra/license/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>http://www.cybersecurityos.net/docs/spectra/license/</guid><description>&lt;h2 id="license-and-legal-notices">License and Legal Notices&lt;/h2>
&lt;hr>
&lt;h3 id="software-license--apache-license-20">Software License — Apache License 2.0&lt;/h3>
&lt;p>SPECTRA is licensed under the &lt;strong>Apache License, Version 2.0&lt;/strong>.&lt;/p>
&lt;pre tabindex="0">&lt;code>Copyright 2026 CybersecurityOS

Licensed under the Apache License, Version 2.0 (the &amp;#34;License&amp;#34;);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &amp;#34;AS IS&amp;#34; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
&lt;/code>&lt;/pre>&lt;p>The full license text is available at &lt;a href="https://www.apache.org/licenses/LICENSE-2.0">apache.org/licenses/LICENSE-2.0&lt;/a> and in the &lt;code>LICENSE&lt;/code> file in the project repository.&lt;/p></description></item></channel></rss>