Scan Report
5 /100
ai-news-pipeline
Self-contained Chinese and international AI news RSS capture and AI-enriched report generation workflow
A clean AI news RSS pipeline that collects feeds, generates AI-enriched reports, and writes outputs — all functionality matches documentation with no malicious indicators.
Safe to install
Approve for deployment. No security concerns identified.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Low | base64 HTTP Basic Auth usage not declared in SKILL.md Doc Mismatch | scripts/collect_feeds.py:160 |
| Low | subprocess pipeline chaining not declared in SKILL.md Doc Mismatch | scripts/run_capture_only.py:27 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | Scripts write to configurable workspace subdirectories (data/, reports/, state/,… |
| Network | READ | READ | ✓ Aligned | RSS feed collection via urllib (collect_feeds.py:fetch_feed) and ARK API calls (… |
| Shell | NONE | WRITE | ✓ Aligned | Entrypoints use subprocess.run to chain scripts (run_capture_only.py:27, run_rep… |
| Environment | NONE | READ | ✓ Aligned | os.environ.copy() passed to subprocess; ARK_API_KEY, ARK_API_BASE, ARK_MODEL, AR… |
| Skill Invoke | NONE | NONE | — | No cross-skill invocation detected. |
| Clipboard | NONE | NONE | — | No clipboard access. |
| Browser | NONE | NONE | — | No browser automation. |
| Database | NONE | NONE | — | No database access. |
3 findings
Medium External URL 外部 URL
http://www.w3.org/2005/Atom scripts/collect_feeds.py:87 Medium External URL 外部 URL
http://purl.org/rss/1.0/modules/content/ scripts/collect_feeds.py:89 Medium External URL 外部 URL
https://ark.cn-beijing.volces.com/api/v3 scripts/generate_company_report.py:36 File Tree
12 files · 86.5 KB · 2575 lines Python 8f · 2255L
Markdown 2f · 314L
YAML 1f · 4L
Text 1f · 2L
├─
▾
agents
│ └─
openai.yaml
YAML
├─
▾
references
│ └─
commands.md
Markdown
├─
▾
scripts
│ ├─
brief_writer.py
Python
│ ├─
collect_feeds.py
Python
│ ├─
generate_company_report.py
Python
│ ├─
generate_international_report.py
Python
│ ├─
requirements.txt
Text
│ ├─
run_capture_only.py
Python
│ ├─
run_full_workflow.py
Python
│ ├─
run_report_only.py
Python
│ └─
time_window.py
Python
└─
SKILL.md
Markdown
Dependencies 2 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
openpyxl | * | requirements.txt | No | Version not pinned — minor supply chain risk; recommend pinning to a specific version |
python-docx | * | requirements.txt | No | Version not pinned — minor supply chain risk; recommend pinning to a specific version |
Security Positives
✓ All network I/O is to documented, well-known endpoints (RSS feeds and the Volcengine ARK API)
✓ No sensitive paths accessed (no ~/.ssh, ~/.aws, .env, /etc/passwd, or similar)
✓ No credential harvesting — ARK_API_KEY is only used to authenticate to the Volcengine API for report generation
✓ No obfuscation, reverse shells, C2 communication, or data exfiltration
✓ No base64-encoded payloads executed in shell
✓ Dependencies are pinned (openpyxl, python-docx) and are standard, trusted packages
✓ No hidden instructions in comments or HTML
✓ Full environment variable set is passed to subprocess, not iterated for key harvesting
✓ Code is clean, readable, and purpose-built for the documented use case
✓ State deduplication prevents duplicate processing
✓ AI cache is cleared after each run (clear_summary_cache in finally block)