Scan Report
20 /100
todo
Manage todo lists in PostgreSQL. Per-agent lists, optional categories, priorities, due dates.
This is a legitimate PostgreSQL-backed todo management CLI with filesystem access for .env loading and file migration that is not declared in SKILL.md.
Safe to install
Add explicit filesystem:READ and filesystem:WRITE declarations to SKILL.md for the .env loading and migrate features. Consider pinning psycopg2-binary to a specific version.
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Low | Undeclared .env file reading Doc Mismatch | scripts/todo_cli.py:53 |
| Low | Undeclared filesystem write/delete via migrate Doc Mismatch | scripts/todo_cli.py:619 |
| Low | Workspace path derived from environment or home directory Sensitive Access | scripts/todo_cli.py:596 |
| Info | Unpinned psycopg2-binary dependency Supply Chain | SKILL.md:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ | ✗ Violation | scripts/todo_cli.py:53 — reads .env file from disk |
| Filesystem | NONE | WRITE | ✗ Violation | scripts/todo_cli.py:619 — fpath.unlink() deletes source file after migrate |
| Database | READ | WRITE | ✓ Aligned | todo_cli.py — SELECT, INSERT, UPDATE, DELETE on todo tables; required for todo m… |
| Network | NONE | NONE | — | No outbound network calls; only local PostgreSQL connection via psycopg2 |
| Shell | NONE | NONE | — | No subprocess, os.system, or shell command execution found |
| Environment | NONE | READ | ✓ Aligned | os.environ.get(...) for TODO_DB_* vars — documented and necessary for DB connect… |
File Tree
6 files · 50.5 KB · 1494 lines Python 1f · 1023L
Markdown 4f · 466L
JSON 1f · 5L
├─
▾
references
│ ├─
cli.md
Markdown
│ └─
schema.md
Markdown
├─
▾
scripts
│ └─
todo_cli.py
Python
├─
_meta.json
JSON
├─
CHANGELOG.md
Markdown
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
psycopg2-binary | * | pip | No | Version not pinned — any version will be installed |
Security Positives
✓ No obfuscation: no base64, eval(), or anti-analysis patterns detected
✓ No credential exfiltration: database password is used only for local PostgreSQL connection
✓ No remote code execution: no subprocess, os.system, or shell commands
✓ No network exfiltration: no outbound HTTP/WebSocket/C2 calls
✓ SQL injection mitigated via parameterized queries (psycopg2 %s placeholders)
✓ Cross-agent access is logged to todo_access_log table
✓ File deletion in migrate is workspace-scoped (fpath.relative_to(workspace) check prevents path traversal)
✓ No sensitive hardcoded secrets or embedded credentials
✓ Well-structured code with clear separation of concerns