Scanned: {{ path }} · Taxonomy: {{ taxonomy_name }} · {{ total_files }} file(s)
Gated: {{ gated_count }} Ungated: {{ total_tools - gated_count }} {{ gated_count }} of {{ total_tools - safe_tools }} risky tools are protected with ShadowAuditTool.
| Tool | Category | Status | Risk | Location |
|---|---|---|---|---|
{{ tool.name }}
{% if tool.framework != "unknown" %}
{{ tool.framework }} {% endif %} |
{{ tool.category }}
{% if tool.taxonomy_description %}
{{ tool.taxonomy_description }} {% endif %} |
{% if tool.is_wrapped %} ✓ Gated {% else %} ❌ Ungated {% endif %} | {{ tool.risk_level }} |
{{ tool.file.split('/')[-1] }}:{{ tool.line }}
|
|
Remediation:
{{ tool.remediation }}
|
||||
| Category | Total | Gated | Ungated | Critical/High |
|---|---|---|---|---|
{{ cat_name }} |
{{ cat_data.count }} | {{ cat_data.gated }} | {{ cat_data.ungated }} | {% if cat_data.critical > 0 or cat_data.high > 0 %} {{ cat_data.critical + cat_data.high }} {% else %} — {% endif %} |
Auto-generated taxonomy based on detected tools. Save as a .json file for reuse with --taxonomy.
{
{% for cat_name, cat_config in recommended_taxonomy.items() %} "{{ cat_name }}": {
"delta": {{ cat_config.delta }},
"risk_keywords": [
{% for kw in cat_config.risk_keywords %} "{{ kw }}"{% if not loop.last %},{% endif %}
{% endfor %} ],
"description": "{{ cat_config.description }}"
}{% if not loop.last %},{% endif %}
{% endfor %}}
Step-by-step instructions to wrap each ungated tool with ShadowAudit enforcement.
{% for step in implementation_plan %}
Wrap {{ step.tool_name }} (category: {{ step.category }}) with ShadowAuditTool to enforce runtime governance.
{{ step.code }}
No tool classes inheriting from BaseTool were found in the scanned path.
If you expected tools, ensure they inherit from BaseTool (LangChain, CrewAI, or AutoGen).