diff --git a/README.adoc b/README.adoc
index bd23f78a08294928cb75b1b78a597dba3b349c67..58392e1eeb63f359f1dc516c7bb830f3644052fb 100644
--- a/README.adoc
+++ b/README.adoc
@@ -79,13 +79,18 @@ The TCK will take over from there and run all the tests by hooking in the specif
 In order to pass the AsciiDoc TCK tests, you must create a CLI interface that reads AsciiDoc content from stdin and return an Abstract Semantic Graph (encoded in JSON) to stdout.
 The CLI must return an exit code of 0 on success and non-zero in case of failure.
 
-== Install
-
-Download the appropriate binary from the release page.
 
 == Usage
 
-Open a terminal and type:
+Releases not available yet, but you can build from source by checking out the repo and running:
 
 [source,sh]
-asciidoc-tck-linux-x64 --adapter-command /path/to/impl
+npm ci
+npm run dist
+
+Then open a terminal and type:
+
+[source,sh]
+node harness/bin/asciidoc-tck.js cli --adapter-command /path/to/impl
+
+NOTE: Requires `node` >= 20
diff --git a/harness/lib/suites/suite.js b/harness/lib/suites/suite.js
index d596cded034810e595f5076150a9feeb29a92e1e..cca31cea9d83c343a6fc076997c60ce35fb9f48b 100644
--- a/harness/lib/suites/suite.js
+++ b/harness/lib/suites/suite.js
@@ -22,15 +22,11 @@ const testsSuite = async (testDir = ospath.join(PACKAGE_DIR, 'tests')) => {
     describe('inline', function () {
       const inlineTests = tests.find((it) => it.type === 'dir' && it.name === 'inline').entries
       makeTests(inlineTests, async function ({ input, inputPath, expected, expectedWithoutLocations }) {
-        const actualRoot = await parse({
+        const actual = await parse({
           contents: input,
           path: inputPath,
           type: 'inline',
         })
-        assert.ok('blocks' in actualRoot, 'should have a blocks property')
-        assert.ok(actualRoot.blocks.length === 1, 'blocks property should have one (and only one) block')
-        assert.ok('inlines' in actualRoot.blocks[0], 'first block in blocks should have an inlines property')
-        const actual = actualRoot.blocks[0].inlines
         if (expected == null) {
           // Q: can we write data to expected file automatically?
           // TODO only output expected if environment variable is set