fix: harden video-translate from end-to-end testing#45
Closed
davidchou-heygen wants to merge 1 commit into
Closed
Conversation
Found and fixed eight issues by running the skill end-to-end against
real translations. All changes are tightly coupled — each fix came
from a real failure or friction point in the same debugging session.
Install path:
- Move skills/video-translate/ to repo root to match heygen-avatar/
and heygen-video/ layout (setup looks for skills at root)
- Register video-translate in setup's SKILLS array so it gets
symlinked alongside the other two skills
Skill content:
- Interactive intake: ask one question at a time, extract from first
message before asking, propose sensible defaults instead of a
4-question form
- API key resolution from ~/.heygen/config (mirrors parent SKILL.md's
3-source order — env > config file > prompt user)
- Soak-then-tight polling cadence: 5-min silent soak, then 30s polls
until terminal; never "check back in 20 min" (optimizes for cache,
not user wait)
- Backgrounded bash polling (replaces broken Agent subagent path —
subagents can't inherit Bash approvals in Claude Code so every
curl in them dies on permission denial)
- Upfront approval-count warning before launching N background polls
- Narrate-before-each-Bash rule: one sentence about why before every
shell call, especially for backgrounded scripts the user can't see
- Markdown-link-wrapped delivery: flag emoji header + view-online
link + [Download .mp4] + [SRT] · [VTT]; stops dumping 200-char
signed URLs into the terminal
- Shell hygiene section: env vars don't persist across Bash calls
(inline auth load every time), zsh "no matches found" = unquoted
glob, don't burn approvals on diagnostics
- Fix \$status zsh read-only collision in poll script template
(rename to \$st with explanatory comment)
- Correct languages endpoint response shape: real API returns
{ languages: string[] }, not { data: [{ code, name }] }
- Correct dashboard URL pattern: /videos/{id} not /video-translate/{id}
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #43 — eight fixes found by running the skill end-to-end against real translations. Targeting Ken's PR branch directly so it lands as part of #43 when merged.
Install path
skills/video-translate/→video-translate/to matchheygen-avatar/andheygen-video/layout (./setuplooks for skills at repo root)video-translateinsetup'sSKILLSarray so it gets symlinked alongside the other twoSkill content
~/.heygen/config— mirrors parentSKILL.md's 3-source order (env > config file > prompt user)[Download .mp4]+[SRT] · [VTT]; stops dumping 200-char signed URLs into the terminal\$statuszsh read-only collision in poll script template (rename to\$stwith explanatory comment){ languages: string[] }, not{ data: [{ code, name }] }/videos/{id}not/video-translate/{id}Test plan
./setupfrom a fresh checkout — verifyvideo-translatesymlinks into~/.claude/skills