Skip to content

TestingDoctrine.md specifies test/harness.ts as the probe behind every ISC, but no harness and no tests ship in the release #1550

Description

@tzioup

LIFEOS/DOCUMENTATION/Testing/TestingDoctrine.md (v1.0.24) defines bun test as "the canonical probe behind every ISC claim" and describes a shared harness at ~/.claude/test/harness.ts in the present tense, including its size and export count. Neither the harness nor any test file is present in the public release.

Reproduced against a clean clone of main at 4e33cc8.

Reproduce

git clone --depth 1 https://github.com/danielmiessler/LifeOS /tmp/lifeos-check
cd /tmp/lifeos-check

find . -name 'harness.ts' -not -path '*/.git/*' | wc -l   # → 0
find . -name '*.test.ts' -not -path '*/.git/*' | wc -l    # → 0
find . -type d -name test  -not -path '*/.git/*' | wc -l  # → 0

# the doctrine that references them
grep -n 'harness.ts' LifeOS/install/LIFEOS/DOCUMENTATION/Testing/TestingDoctrine.md

What the doctrine states

  • Line 14: "The shared harness lives at ~/.claude/test/harness.ts and exports zero-external-dep helpers (paiTestEnv, tempDir, claudeFixture, platform predicates, custom matchers). Tests live in a parallel ~/.claude/test/ tree… Coverage is corpus-based: every documented hook, skill workflow, and tool surface gets at least one test file."
  • Line 32 describes it concretely: "test/harness.ts (1985 lines, 98 exports, header comment forbids external deps)".
  • Line 24: "What's been missing is the invocable probe behind each ISC. This doctrine closes that gap by making bun test path/to/foo.test.ts the canonical answer."

The document contains no hedging language — grep -cE "aspiration|planned|not yet|TODO|future|will be" returns 0 — so it reads as describing shipped state, not a roadmap.

The consequence

IsaFormat.md makes ## Test Strategy name a tool: per ISC, and the doctrine makes bun test path/to/foo.test.ts the canonical value for that field. On a fresh public install, any ISC written to that contract names a probe that cannot run: there is no harness to import and no test tree to put the file in. The ISC still gets checked off — just not by an executable probe.

The related executor gap is acknowledged in the spec itself, so I'm flagging it as context rather than as part of this report: IsaFormat.md:7 and ALGORITHM/changelog.md:37 both say "The harness executor (isa run, reads ## Test Strategy) is the paired build, tracked separately." That one is documented as pending. The test/harness.ts reference is not.

Why this matters for the project

The verification story is the most-cited thing about this system — ISCs closing on real tool evidence is the core claim. A new user who follows the doctrine as written will look for test/harness.ts, not find it, and have no way to tell whether they broke their install or whether it was never shipped. That ambiguity is corrosive precisely because the surrounding docs are otherwise specific and confident.

Suggested fix (one concrete action, either direction)

Pick one and make the doc match reality:

  1. Ship it — include test/harness.ts and the test/ tree in the install payload, so tool: bun test … resolves on a fresh install; or
  2. Mark it — add a status line to TestingDoctrine.md in the same style already used in IsaFormat.md:7 for isa run (e.g. "the shared harness is the paired build, tracked separately — not yet in the public release"), and point ## Test Strategy at probe types that do work today (bash, curl, screenshot, eval).

Option 2 is a few lines and removes the ambiguity immediately. I'm happy to open that PR if the wording direction is agreeable.


Not a duplicate of #1539 / #1541 / #1543 — different subsystem, different fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions