← Morphness

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.

CheckWhat it looks atResultRun
Kit self-testRenders 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 notesEvery 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 catalogEvery 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.

CheckWhat it looks atResultRun
agnix 0.59.0Config 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
  • CDX-AG-005 install/AGENTS.md:33
    AGENTS.md references missing file `QA/qa-result.md`
    false-positive: QA/qa-result.md is created by the first QA run, so it does not exist in a fresh install.
  • PE-004 install/AGENTS.md:35
    Ambiguous term 'usually' creates unclear instruction
    accepted: 'usually' is a deliberate hedge in a role description; the rule is a style check.
  • XML-001 install/harness/templates/steps.md:11
    Unclosed XML tag '<Service>'
    false-positive: <Service> and <tool> are placeholders in an example sentence, not XML.

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.0The 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
  • SC2010 template/scripts/prune-counter.sh:85
    Don't use ls | grep. Use a glob or a for loop with a condition to allow non-alphanumeric filenames.
    accepted: Lists the kit's own prune files, whose names are dated slugs; style warning.
  • SC1112 template/scripts/guard.sh:619
    This is a unicode quote. Delete and retype it (or ignore/doublequote for literal).
    false-positive: A typographic apostrophe inside the text of a user-facing message, on purpose.
  • SC1112 template/scripts/guard.sh:639
    This is a unicode quote. Delete and retype it (or ignore/doublequote for literal).
    false-positive: A typographic apostrophe inside the text of a user-facing message, on purpose.
  • SC1112 template/scripts/guard.sh:1183
    This is a unicode quote. Delete and retype it (or ignore/doublequote for literal).
    false-positive: A typographic apostrophe inside the text of a user-facing message, on purpose.
  • SC1112 template/scripts/guard.sh:1236
    This is a unicode quote. Delete and retype it (or ignore/doublequote for literal).
    false-positive: A typographic apostrophe inside the text of a user-facing message, on purpose.
  • SC2155 template/scripts/evidence.sh:22
    Declare and assign separately to avoid masking return values.
    accepted: Declare-and-assign of config values that cannot fail in a way the script needs to see; style warning.
  • SC2155 template/scripts/evidence.sh:23
    Declare and assign separately to avoid masking return values.
    accepted: Declare-and-assign of config values that cannot fail in a way the script needs to see; style warning.
  • SC2155 template/scripts/evidence.sh:24
    Declare and assign separately to avoid masking return values.
    accepted: Declare-and-assign of config values that cannot fail in a way the script needs to see; style warning.

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.0Secrets 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.0Prompt 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:

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.