marcushyett/tik-test

Automated TikTok-style video reviews for your pull requests — Claude plans, Playwright runs, FFmpeg + Remotion compose, posted as a PR comment with optional formal review.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit May 2, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: marcushyett/tik-test@b0ec28bb2bdf28f831c1afc122cd58c260aa9c8f # v1.4.7

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
claude-code-oauth-tokenOAuth token for the Claude Code Max subscription. Generate locally with `claude setup-token`, then paste into a repository secret. Required unless `anthropic-api-key` is provided. no""
anthropic-api-keyPay-per-use Anthropic API key. Alternative to `claude-code-oauth-token`.no""
openai-api-keyOptional. Enables OpenAI TTS voice-over. Without it the video is silent on Linux runners.no""
pr-numberPR number to review. Auto-detected from `pull_request`, `deployment_status`, or `workflow_dispatch` events when omitted.no""
preview-urlOverride the target URL. Auto-detected from `deployment_status` events when omitted; otherwise read from the consumer repo's `claude.md`.no""
vercel-bypass-secretVercel automation bypass secret for protected previews. Optional.no""
review-modeHow to leave a formal PR review: `none` · `approve-on-pass` · `request-changes-on-fail` · `always`.norequest-changes-on-fail
require-passIf `true`, the job exits non-zero when any test step fails (turns the check red).notrue
quickIf `true`, produce a draft 540×960 render in ~2 min. Set `false` for full-res.notrue
quick-and-dirtyFaster, lower-quality preset. Drops the render to 0.5× of native (540×960) and caps body scenes at 6 so the narration call is shorter. Use when speed matters more than fidelity. Default: false. nofalse
no-videoSkip video render + upload entirely. Same plan generation, same agent run, same LLM-synthesised checklist — just no MP4. The PR comment posted in this mode is text-only (checklist + summary, no `tik-test-video:v1` marker, so the reviewer web app does not pick it up as a feed entry). Cuts CI time roughly 5×; pairs well with `run-on-every-push: true` for cheap per-commit feedback. Default: false. nofalse
strict-configRefuse silent fallback to CLAUDE.md / bare README when no tiktest.md is present. Recommended for production setups so a missing or mis-located tiktest.md fails fast rather than silently planning against the wrong file. Default: false. nofalse
meticulousThorough-testing mode. Raises the per-goal turn cap from 25 to 100 and swaps the agent's system prompt for the exhaustive variant (full verification hierarchy, freeze-the-moment recipes for sub-second transitions). Default: false. The default prompt optimises for the SHORTEST possible recording — a tight video review — at the cost of skipping anything that needs more than one retry. Turn this on when you'd rather have a careful auto- review than a snappy video, e.g. for high-stakes PRs. nofalse
run-on-every-pushWhen false (default), tik-test only runs on the initial `opened` / `reopened` PR event and on `workflow_dispatch`. When true, it ALSO runs on every commit pushed to the PR branch (the `synchronize` event). Each re-run uses Claude credits, so leave off unless you want to re-review on every push. nofalse
github-tokenGITHUB_TOKEN with `pull-requests: write` permission. Defaults to the workflow token.no${{ github.token }}
working-directorySubdirectory of the consumer repo containing `claude.md`. Defaults to the workspace root. Useful for monorepos.no""
plan-timeoutSeconds before plan-generation `claude` call is killed. Default 240 (4 min). Bump for huge diffs.no240
agent-timeoutSeconds before EACH per-goal browser-driving `claude` call is killed. Default 600 (10 min). Bump for slow page loads.no600
narration-timeoutSeconds before narration-generation `claude` call is killed. Default 540 (9 min). Bump for long runs (12+ tool moments).no540
feature-finder-timeoutSeconds before fallback feature-finder `claude` call is killed (only fires on a 404 startUrl). Default 60.no60
max-goalsHard cap on goals the planner produces. Default 3. Above ~5 risks pushing the agent over the 25-min job budget.no3
min-chunk-secondsMinimum body chunk length — shorter consecutive moments coalesce. Default 3.5. Lower = more scenes (risk: narration timeout); higher = sluggish pacing.no3.5
max-body-scenesHard ceiling on body scenes after coalescing. Default 12. Above ~14 risks narration timeout (also bump narration-timeout).no12
trim-merge-secondsTolerance for collapsing adjacent active windows in the trim planner. Tools that fire within this many seconds of each other (e.g. browser_click → browser_snapshot) merge into one segment. Big lever on render time. Default 1.5. Below 0.5 = same too-many-segments problem the default fixes; above 3 = distinct beats fuse and pacing suffers.no1.5
checklist-min-itemsMinimum items the LLM must produce before the call is treated as failed. Default 4.no4
checklist-max-itemsMaximum checklist items rendered on the outro card. Default 10. Above ~12 overflows the safe band on mobile.no10
render-segmentsNumber of parallel Chromium browsers used by Remotion to render the video. Each segment opens a separate browser and decodes the master capture in full, so memory grows roughly linearly with this number. Default 1 (sequential) — safe on standard GitHub-hosted runners. Set 2–4 on a runner with ≥16 GB RAM for a faster render. no1
render-concurrencyConcurrent Chromium tabs *per* segment. Empty (default) = auto-pick based on CPU count. Lower if you see OOM kills on long captures. no""
video-cache-mbPer-segment offthread video cache size, in MB. Larger = faster reads from the master capture but more resident RAM. Default 256 (was 512 pre-v1.x, which OOM'd on long captures). Bump to 512+ on big runners. no256
node-max-old-space-mbNode.js heap cap (MB) for the tik-test process. Surfaces as a clean JS heap-OOM error instead of a silent SIGTERM from the kernel OOM killer. Default 4096. Set to 0 to leave Node's default in place. no4096
intro-secondsTitle-card window. Default 4.5.no4.5
outro-secondsOutro narration window (before the post-voice hold). Default 4.0.no4.0
outro-hold-secondsExtra time the outro Sequence holds AFTER the voice ends so the checklist stays readable. Default 3.5.no3.5

no outputs