Every page carried a frontmatter `title` and repeated it as a body `# `, which
the site renders as two headings with two permalinks. The heading text matched
the frontmatter on 41 of the 43 pages; on the two quickstarts it did not, so
"Make a video with your Agent" and "和 Agent 一起制作视频" give way to the
titles already in their frontmatter.
Each step's video now sits directly under that step's heading rather than after
its prose, and the avatars link keeps a blank line beneath it.
Three scripts were written in shell that only one shell speaks. pnpm hands a
script body to /bin/sh on POSIX and to cmd.exe on Windows, and what sh reads as
syntax cmd.exe reads as text.
`VAR=1 command` is the loud one: cmd.exe has no such form and looks for a
program named `HYPIT_BROWSER_TESTS=1`. It fails where you can see it.
The quoted discovery pattern is the quiet one, and it is the same defect this
repository already found in its main suite. sh strips the quotes and unittest
receives `test_*.py`; cmd.exe does not, and unittest receives six characters
that match no file. Both exit 0:
-p 'test_*.py' stripped Ran 11 tests OK exit 0
-p 'test_*.py' literal Ran 0 tests NO TESTS RAN exit 0
Double quotes are stripped by both shells, so the pattern needs no runner —
only the right quote. The two environment gates move into the runner that
already exists for this, as named suites, where they are assignments rather
than syntax. That also settles the third defect: the OpenCV script named the
POSIX interpreter path outright, though `deployment.ts` has branched on the
platform for that venv all along.
An environment already set by the caller still wins. These are defaults for
running a suite, not a policy about it.
`pnpm test` failed on a fresh clone. Commit 9ad8e11 changed
packages/speech-spine and refreshed examples/talking-film-graph-check's
package lock in the same commit, but the lock was written before the last
source edit, so its speech-spine digest never matched. Refresh it, and the
two example locks carrying the same stale digest that no test covers.
browser-visual.test.ts is 2069 lines of renderer conformance — exact
bounding boxes, composite alpha, zero-tolerance clipping — behind
SVML_BROWSER_TESTS, an variable named in no script and no workflow. All 12
tests skipped, every run, with no way to start them. A test:browser-visual
script now runs them and the guide lists it. Turning them on showed why
this matters: three had rotted. Commit ab7aae4 removed `font` and `weight`
from the Fine Caption Recipe, moving fonts to a separate argument, and the
fixtures still passed both, so the Recipe rejected them. Nobody could see
it. All 12 pass now.
The same gate hid the same rot in provider-whisperx-local: its loopback
test needs no Python, model, network or money — it serves a node:http stub
— yet sat behind SVML_LOOPBACK_TESTS, which appeared nowhere else in the
repository. It asserted an audioArtifactDigest that no longer exists on
WhisperXAlignmentEvidence, which now carries contract, durationSec and
segments alone. Gate removed, dead assertion removed, stale title fixed.
Three assertions in driver-node's scheduler and seven in hyperframes'
track expressiveness could not fail. The scheduler three count executor
calls in tests whose only action is assert.throws, so the count is
structurally zero. The seven assert that a track literal lacks keys the
test never set; they read as a waist check keeping author vocabulary out
of the visual IR, but the fixture supplies none of those fields, so they
check nothing.
Follows the v1 removal: the CLI is `narratage`, packages live under the
@narratage scope, there is one tsconfig.json and one `check`/`test` script
pair, wire format ids are @1, and examples/v2-bootstrap is examples/bootstrap.
Drops the v1 research oracle material from the development guide: src/,
stdlib/ and the root v1 test suite no longer exist, so the repository layout
and the command table describe one system rather than two.
Verified by running the documented `narratage check` and `narratage plan`
commands against examples/talking-film-graph-check.
Replace the obsolete v1 quickstart and monolithic develop page with a
concise quickstart and eight focused guides, in English and Chinese.
Give the home page and the documentation different themes. The home page
keeps the branded always-dark editorial design with no appearance toggle;
documentation pages use the stock VitePress theme with light/dark support.
Everything branded is scoped to `html.home-page`, set before first paint by
the inline script in config.ts and kept in sync by theme/Layout.vue, because
`html` and `body` sit outside the theme's `.Layout` root.
Exclude docs/README.md and docs/implementation-status.md from the site: they
index repository files and link to ../spec, ../packages and ../services, which
resolve when browsing the repository but have no route on the published site.
This restores `vitepress build` with dead-link checking enabled.