Skill Trust Decision

feynman-fsrs-pro

Hardcoded database credentials exposed in SKILL.md and source code create significant credential theft risk; doc-to-code table name mismatch indicates shadow functionality.

Install decision first Source: Manual upload Scanned: Apr 4, 2026
Files 14
Artifacts 15
Violations 0
Findings 5
Most direct threat evidence
High Credential Theft
Database credentials exposed in SKILL.md

SKILL.md contains plaintext database credentials: username 'openclaw_feiman', password '12345678', host '127.0.0.1'. This is a critical security violation as documentation should never contain sensitive credentials.

SKILL.md:17

Why this conclusion was reached

2/4 dimensions flagged
Pass
Declared vs actual capability

Declared resources and inferred behavior are broadly aligned.

Block
Hidden execution and egress

1 high-risk artifacts or egress signals were extracted.

Block
Attack chain and severe findings

The report includes 0 attack-chain steps and 3 severe findings.

Review
Dependencies and supply chain hygiene

1 dependency or supply-chain issues need attention.

What drove the risk score up

Hardcoded credentials in SKILL.md +20

Database password '12345678', username, host, and table name exposed in documentation

Hardcoded credentials in source code +10

feynman_core.js:9 and database.js:7-11 contain identical hardcoded credentials

Doc-to-code table name mismatch +10

SKILL.md declares 'feynman_memory' but code inconsistently queries both 'feynman_cards' and 'feynman_memory'

IP address anomaly +5

feynman_core.js:9 shows '27.0.0.1' instead of '127.0.0.1' - likely typo

Hardcoded filesystem path +3

Obsidian path points to specific user directory 'C:\Users\alex\iCloudDrive'

Most important evidence

High Credential Theft

Database credentials exposed in SKILL.md

SKILL.md contains plaintext database credentials: username 'openclaw_feiman', password '12345678', host '127.0.0.1'. This is a critical security violation as documentation should never contain sensitive credentials.

SKILL.md:17
Remove all credentials from SKILL.md. Use environment variables or .env file for configuration.
High Credential Theft

Hardcoded credentials in feynman_core.js

feynman_core.js contains hardcoded database connection parameters with weak password '12345678'.

scripts/feynman_core.js:15
Use environment variables: process.env.DB_PASSWORD, process.env.DB_HOST, etc.
High Credential Theft

Hardcoded credentials in database.js

database.js contains identical hardcoded database credentials as feynman_core.js.

scripts/database.js:7
Consolidate database config into a single module using environment variables.
Medium Doc Mismatch

Table name mismatch between documentation and code

SKILL.md declares table name as 'feynman_memory', but feynman_core.js queries 'feynman_cards' while database.js queries 'feynman_memory'. schema.sql creates 'feynman_cards'. This inconsistency suggests shadow functionality or copy-paste errors.

scripts/feynman_core.js:55
Standardize table name across all files. Update SKILL.md to reflect actual table name used in code.
Low Sensitive Access

Hardcoded Obsidian path references specific user

OBSIDIAN_BASE path points to 'C:\Users\alex\iCloudDrive\iCloud~md~obsidian\new-note', exposing a specific user's directory structure.

scripts/database.js:8
Use environment variable for Obsidian path configuration.

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
Reads .md files from Obsidian directory
Database Pass
Declared WRITE
→
Inferred WRITE
PostgreSQL connection with SELECT/INSERT/UPDATE queries
Network Pass
Declared NONE
→
Inferred READ
Connects to local PostgreSQL at 127.0.0.1:5432 (documentation exposes '27.0.0.1')
Shell Pass
Declared NONE
→
Inferred NONE
No shell execution observed

Suspicious artifacts and egress

High IP Address
27.0.0.1

scripts/feynman_core.js:9

Medium External URL
https://registry.npmmirror.com/pg/-/pg-8.20.0.tgz

scripts/package-lock.json:20

Medium External URL
https://registry.npmmirror.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz

scripts/package-lock.json:47

Medium External URL
https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz

scripts/package-lock.json:54

Medium External URL
https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz

scripts/package-lock.json:60

Medium External URL
https://registry.npmmirror.com/pg-pool/-/pg-pool-3.13.0.tgz

scripts/package-lock.json:69

Medium External URL
https://registry.npmmirror.com/pg-protocol/-/pg-protocol-1.13.0.tgz

scripts/package-lock.json:78

Medium External URL
https://registry.npmmirror.com/pg-types/-/pg-types-2.2.0.tgz

scripts/package-lock.json:84

Medium External URL
https://registry.npmmirror.com/pgpass/-/pgpass-1.0.5.tgz

scripts/package-lock.json:100

Medium External URL
https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz

scripts/package-lock.json:109

Medium External URL
https://registry.npmmirror.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz

scripts/package-lock.json:118

Medium External URL
https://registry.npmmirror.com/postgres-date/-/postgres-date-1.0.7.tgz

scripts/package-lock.json:127

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
pg ^8.11.3 npm No PostgreSQL client library, version pinned

File composition

14 files · 2214 lines
JavaScript 9 files · 1231 linesMarkdown 2 files · 627 linesJSON 2 files · 191 linesSQL 1 files · 165 lines
Files of concern · 4
scripts/feynman_core.js JavaScript · 645 lines
Hardcoded credentials in feynman_core.js · Table name mismatch between documentation and code · 27.0.0.1
SKILL.md Markdown · 315 lines
Database credentials exposed in SKILL.md
scripts/database.js JavaScript · 351 lines
Hardcoded credentials in database.js · Hardcoded Obsidian path references specific user
scripts/package-lock.json JSON · 165 lines
https://registry.npmmirror.com/pg/-/pg-8.20.0.tgz · https://registry.npmmirror.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz · https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz · https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz · https://registry.npmmirror.com/pg-pool/-/pg-pool-3.13.0.tgz · https://registry.npmmirror.com/pg-protocol/-/pg-protocol-1.13.0.tgz · https://registry.npmmirror.com/pg-types/-/pg-types-2.2.0.tgz · https://registry.npmmirror.com/pgpass/-/pgpass-1.0.5.tgz · https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz · https://registry.npmmirror.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz · https://registry.npmmirror.com/postgres-date/-/postgres-date-1.0.7.tgz · https://registry.npmmirror.com/postgres-interval/-/postgres-interval-1.2.0.tgz · https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz · https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz
Other files · README.md · schema.sql · update-progress.js · cli.js · review-helper.js · index.js +2

Security positives

No shell execution observed - skill uses direct database queries only
No external network requests detected - only local PostgreSQL connection
No obfuscation techniques (base64, eval) found in codebase
No credential exfiltration - hardcoded credentials are only used locally
No reverse shell or C2 infrastructure indicators
No prompt injection payloads detected
Dependencies are minimal (pg library only) with pinned versions