Test results
What Morphness is tested with, what came out, and when. Release 2026-10-20.4 + later commits, commit 98324c8, run 2026-10-20 17:14 UTC.
This page is written by scripts/trust-report.sh from a real run, never by hand. A tool that fails to start is shown as "did not run", not as a pass. Every warning, error or finding gets a verdict in tests/triage.jsonl (fixed, false positive or accepted, with the reason); one without a verdict is shown as untriaged. "Tested with" is all this page claims. It is not a certificate that Morphness is secure.
Morphness's own checks
Anyone who clones the repository can run these.
| Check | What it looks at | Result | Run |
|---|---|---|---|
| Kit self-test | Renders the template as /morph-init would for sample projects, runs its own consistency checks, replays every guard case and runs the template scripts.STRICT=1 GUARD_FULL=1 scripts/kit-selftest.sh | 4 of 4 sample projects pass; 616 guard cases replayed on each (2464 replays; per project 203 allowed, 272 asked, 141 denied, all as expected) Sample projects: go-service, monorepo-apps, nextjs-supabase, python-cli. Raw output: kit-selftest.txt | 2026-10-20 17:14 UTC |
| Update notes | Every kit change has an update note, and every note is well formed.scripts/check-updates.sh | 85 update note(s) checked, 0 problem(s) Raw output: check-updates.txt | 2026-10-20 17:14 UTC |
| Lesson catalog | Every lesson file follows the catalog format.scripts/check-lessons.sh | 112 lesson file(s) checked, 0 problem(s) Raw output: check-lessons.txt | 2026-10-20 17:14 UTC |
Public tools
Pinned versions, run locally with no API key. Nothing is uploaded to the tools' vendors.
| Check | What it looks at | Result | Run |
|---|---|---|---|
| agnix 0.59.0 | Config correctness of CLAUDE.md, AGENTS.md, rules, agents, settings, hooks and skills, on a rendered sample install and on the kit's skills.npx agnix@0.59.0 --format json <path> | 3 finding(s), all judged (8 informational)3 finding(s) and how each was judged
66 files checked. Errors and warnings need a verdict; info notes are only counted. Raw output: agnix-install.json · agnix-skills.json | 2026-10-20 17:14 UTC |
| ShellCheck 0.11.0 | The kit's bash scripts and the scripts installed into projects, including the guard hook.shellcheck -x -f json $(git ls-files '*.sh') | 8 finding(s), all judged (9 informational)8 finding(s) and how each was judged
13 scripts. Errors and warnings need a verdict; style notes and info are only counted. Raw output: shellcheck.json | 2026-10-20 17:14 UTC |
| gitleaks 8.28.0 | Secrets in the files and in the whole git history (matches are redacted in the log).gitleaks detect --redact | 0 findings 95 commits scanned. Raw output: gitleaks.json | 2026-10-20 17:14 UTC |
| SkillSpector 2.12.0 | Prompt injection, exfiltration and tool poisoning patterns in the five /morph-* skills. Static mode only, no model is called.skillspector scan skills/<name> --no-llm | 0 findings Risk scores (0 is best): morph-doctor 0/100, morph-init 0/100, morph-module 0/100, morph-share 0/100, morph-update 0/100. Raw output: skillspector-morph-doctor.json · skillspector-morph-init.json · skillspector-morph-module.json · skillspector-morph-share.json · skillspector-morph-update.json | 2026-10-20 17:14 UTC |
Known limits
What these results do not cover, kept in tests/known-gaps.md:
- The guard hook is a safety net for an agent that makes mistakes. It is not a sandbox, and it does not stop an agent or script that is determined to get around it.
- The guard reads Bash commands as the shell does, but it does not see inside a script file or Makefile target that an earlier call wrote, code that an interpreter decodes or builds at run time, or a command-line tool it has no rule for.
- Secrets are recognised by file name and by common commands. A secret stored in a file with an unusual name is not seen.
- Only Bash, file tools, Grep and MCP tool calls are checked. Other tools are left to Claude Code's own permission prompts.
- The test suite is the kit's own: it shows the guard does what the kit says it does on the cases listed. No tool on this page tests the guard against hostile input beyond those cases.
- No tool on this page measures quality or cost compared with plain Claude Code. Morphness adds process, and process costs tokens.
- The real protection for shared environments is the host: branch protection, and environment secrets that only the owner holds.
- Static scanners read the kit's text and scripts. They do not run an agent, so they say nothing about how a model behaves with these rules.
Run it yourself
git clone https://github.com/antarsoft/morphness.git && cd morphness && git fetch --tags scripts/kit-selftest.sh # the kit's own checks scripts/trust-report.sh --out /tmp/trust # everything on this page, written to /tmp/trust
Raw data for this run: results.json. Results change when the kit or the tools do, so check the date above.