Codex, Plugin
Ghost Library Skills
Maintain ghost-library specifications, portable fixtures, and downstream conformance evidence.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_UNCONFIRMED
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
evals/automation/run.py, line 25
result = subprocess.run([str(executable), *args], cwd=root, text=True, - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
evals/results/hosts/installation/codex-invocation.json, line 41
"command": "/bin/zsh -c \"/usr/bin/ruby -ryaml -e 'data = YAML.safe_load(File.read(\\\"contract/tests.yaml\\\")); rows = data.fetch(\\\"reciprocal\\\"); puts({profile: \\\"function - SECRETS_PATH_UNCONFIRMED Low
The Secrets check reports a credential or environment file, but no quoted line shows a recognisable path.
evals/results/native/ghost-verify-recheck.json, line 26
"command": "/bin/zsh -lc \"pwd; rg --files -g '\"'!node_modules'\"' -g '\"'!vendor'\"' -g '\"'!__pycache__'\"' -g '\"'!*.pyc'\"' -g '\"'!package-lock.json'\"' -g '\"'!uv.lock'\"' -
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
evals/automation/run.py, line 25
result = subprocess.run([str(executable), *args], cwd=root, text=True,
evals/automation/run.py, line 72
results['host_versions'] = {name: subprocess.check_output([name, '--version'], text=True).strip()
evals/automation/run.py, line 139
shutil.rmtree(source / 'skills/ghost-init')
Show more
evals/padlib/controls.py, line 43
baseline = subprocess.run([sys.executable, str(runner), "--fixtures", str(args.fixtures.resolve()),
evals/padlib/controls.py, line 56
process = subprocess.run([sys.executable, str(runner), "--fixtures", str(fixture),
evals/wheredirs/controls.py, line 58
return subprocess.run(command, capture_output=True, text=True)
tools/build_plugins.py, line 79
shutil.rmtree(staging)
tools/build_skills.py, line 98
shutil.rmtree(staging)
tools/smoke_installation.py, line 130
result = subprocess.run(command, cwd=cwd or workspace, env=env, capture_output=True, text=True, timeout=90)
tools/smoke_installation.py, line 211
shutil.rmtree(live)
tools/smoke_installation.py, line 214
shutil.rmtree(open_skills)
tools/smoke_installation.py, line 240
subprocess.run(['docker', 'rm', '-f', container], capture_output=True, timeout=30)
tools/smoke_plugins.py, line 22
self.process = subprocess.Popen(
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
evals/results/hosts/installation/codex-invocation.json, line 41
"command": "/bin/zsh -c \"/usr/bin/ruby -ryaml -e 'data = YAML.safe_load(File.read(\\\"contract/tests.yaml\\\")); rows = data.fetch(\\\"reciprocal\\\"); puts({profile: \\\"function
evals/results/native/ghost-spec.json, line 54
"command": "/bin/zsh -c \"/usr/bin/ruby <<'RUBY'\nrequire 'yaml'\ncases = YAML.safe_load(File.read('tests.yaml')).fetch('fit')\nraise 'unexpected case count' unless cases.length ==
evals/results/native/ghost-tests.json, line 64
"command": "/bin/zsh -c \"/usr/bin/ruby --disable-gems -ryaml -rdigest <<'RUBY'\nfixture = File.read('tests.yaml')\nwalk = lambda do |node|\n if node.is_a?(Psych::Nodes::Mapping)\
Show more
evals/results/native/ghost-tests.json, line 72
"command": "/bin/zsh -c \"/usr/bin/ruby --disable-gems -ryaml -rdigest <<'RUBY'\nfixture = File.read('tests.yaml')\nwalk = lambda do |node|\n if node.is_a?(Psych::Nodes::Mapping)\
evals/results/native/ghost-tests.json, line 80
"command": "/bin/zsh -c \"ls -l SPEC.md tests.yaml FIXTURES.md COVERAGE.md; /usr/bin/ruby --disable-gems -ryaml -rdigest -e 'data = YAML.safe_load(File.read(\\\"tests.yaml\\\")); a
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_UNCONFIRMED
evals/results/native/ghost-verify-recheck.json, line 26
"command": "/bin/zsh -lc \"pwd; rg --files -g '\"'!node_modules'\"' -g '\"'!vendor'\"' -g '\"'!__pycache__'\"' -g '\"'!*.pyc'\"' -g '\"'!package-lock.json'\"' -g '\"'!uv.lock'\"' -
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit f8526d734dae. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: f8526d734dae1b1cbea6dd8fefb742d7ec08a597
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.