EC Sample Tracker
v1.0.0Track and manage electrochemistry samples from synthesis to characterization with data linking, event logging, search, export, and dashboard visualization.
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (electrochemistry sample tracker) match the code and SKILL.md: CLI commands for add/list/link/search/export/dashboard, an SQLite DB, and a YAML config are all present and expected.
Instruction Scope
SKILL.md and the CLI instruct local operations only (creating samples.db, writing config.yaml, generating PNG/CSV/MD exports). The code will read files you explicitly link (e.g., CSV/XLSX data) and attempts limited automatic parsing for 'ec' links if scipy/numpy are available. There are no network calls, subprocess execs, or directives to read unrelated system state, but the tool will read any filesystem paths you provide and will write config.yaml and samples.db in the working directory.
Install Mechanism
No install spec is provided (no packages/binaries are pulled). The Python script imports optional libraries (yaml, matplotlib, PIL, scipy, numpy) but does not declare them in an install manifest—this is a minor inconsistency (user must ensure Python deps are installed) but not a security concern by itself.
Credentials
The skill requests no environment variables, credentials, or special config paths. Files it uses (config.yaml, samples.db, user-provided data files) align with its stated purpose.
Persistence & Privilege
always is false and the skill does not attempt to alter other skills or system-wide agent settings. It does persist its own config (config.yaml) and database (samples.db) in the working directory, which is expected behavior for this type of tool.
Assessment
This appears to be a coherent, local CLI tool for tracking lab samples. Points to consider before installing/running:
- Source provenance: the package has no homepage and an unknown source — prefer code from a known repository or author when possible.
- Local file access: the tool creates/updates config.yaml and samples.db in its working directory and will read any file paths you pass to the link command (so do not link sensitive files).
- Dependencies: it imports optional Python packages (PyYAML, matplotlib, Pillow, scipy, numpy). You may need to install these in the environment you run it in; consider using a virtualenv.
- Run isolation: because this is an executable script from an unknown source, consider running it in a sandbox/container or inspect the code locally before execution.
- Backups: the script updates next_id in config.yaml and writes to the SQLite DB — back up existing data if you plan to run it against a directory with important files.
If you want, I can list the exact optional Python dependencies to install, or point out the exact lines that read/write config and DB for easier code inspection.Like a lobster shell, security has layers — review code before you run it.
electrochemistryinventorylaboratorylatestsample-management
ec-sample-tracker-1.0.0 — Sample Tracker for Electrochemistry Labs
Track physical samples from synthesis through every characterization result. Connect samples to their storage locations, synthesis records, and all associated data files (LSV/CV/EIS/XRD/SEM/TEM etc.).
Usage
ec-sample-tracker <command> [options]
Commands
add— Register a new samplelist— List samples with filtersstatus— Show sample status overviewlink— Attach data files or notes to a samplesearch— Search samples by name, tag, synthesis date, or propertylog— Log an experimental event (measurement, storage move, aging)export— Export sample records as CSV/JSON/Markdownimport— Bulk import from CSVdashboard— Visual dashboard of sample inventory and status
Sample Record Schema
sample_id — Auto-generated (e.g. CAT-2026-0042)
name — Sample name/label
synthesis_date — YYYY-MM-DD
synthesis_method — hydrothermal / electrodeposition / impregnation / sol-gel / thermal decomposition / commercial
precursors — Comma-separated list
substrate — GC / Ti foil / Ni foam / FTO / ITO / Carbon paper / None
catalyst_load — mg/cm² (if applicable)
target_reaction — OER / HER / ORR / CO2RR / other
tags — Comma-separated tags
storage_location — fridge-4 / rack-A2 / desiccator-2 / given-out
owner — Name
notes — Free-text notes
status — active / degraded / given-out / disposed / lost
Link Types
ec— LSV/CV/EIS/CP/CA filesxrd— XRD datasem/tem— Electron microscopyraman— Raman spectraxps— XPS dataphoto— Sample photosnote— Free-text notesprotocol— Synthesis protocol PDF
Configuration (config.yaml)
lab_name: "Electrochemistry Lab"
id_prefix: "CAT"
next_id: 1
storage_locations:
- fridge-4
- rack-A2
- rack-B1
- desiccator-2
- drawer-3
- given-out
default_owner: "xray"
db_file: "samples.db"
data_root: "/home/xray/data"
Dashboard
Generates a 4-panel PNG dashboard:
- Sample count by status (pie chart)
- Samples by reaction type (bar chart)
- Storage location distribution (bar chart)
- Recent activity log (text table)
Examples
# Add a new sample
ec-sample-tracker add --name "NiFe-LDH/CF-2026-042" \
--method hydrothermal --precursors "Ni(NO3)2,Fe(NO3)3" \
--substrate "Ni foam" --load 2.1 --reaction OER \
--tags "NiFe-LDH,hydrothermal,batch-42" \
--storage fridge-4 --notes "Synthesized for OER stability test"
# Link characterization data
ec-sample-tracker link CAT-2026-0042 --type ec --file ~/data/oer_lsv_042.csv
ec-sample-tracker link CAT-2026-0042 --type xrd --file ~/data/xrd_042.asc
# Search samples
ec-sample-tracker search --tag NiFe-LDH --reaction OER
ec-sample-tracker search --synth-date-after 2026-03-01
# List all active samples
ec-sample-tracker list --status active
# Log an experimental event
ec-sample-tracker log CAT-2026-0042 --event "LSV cycling started" \
--note "100 cycles in 1M KOH, 10 mA/cm²"
# Export all samples
ec-sample-tracker export --format markdown --output samples-report.md
# Generate dashboard
ec-sample-tracker dashboard --output sample-dashboard.png
Database
Uses SQLite (samples.db) with tables:
samples— Core sample recordslinks— File/note attachmentsevents— Timestamped experimental eventsmeasurements— Quantitative measurement results (overpotential, Tafel, ECSA, etc.)
Output Files
samples.db— SQLite databasesamples.csv— Full exportsample-dashboard.png— Visual dashboard (300 DPI)sample-YYYY-MM-DD.md— Markdown report
Use Cases
- Track which samples have LSV/CV/EIS data collected
- Find all samples from a specific synthesis batch or precursor combination
- Log degradation events and link to characterization
- Generate sample inventory for lab audits or paper supplementary
- Connect synthesis records to performance metrics
Comments
Loading comments...
