Skip to content

haiyimei/cinemacc-subtitle

v0.5.0MIT

An auditable agent skill for finding, repairing, translating, validating, and packaging SRT subtitles without silently changing cue timing.

CinemaCC Subtitle Skill

skills.sh

An open, auditable Agent Skill for finding or using a source SRT, repairing, translating, validating, and packaging movie or TV subtitles without silently changing cue timing.

The skill keeps semantic decisions with the agent or human reviewer and delegates snapshots, hashes, source comparison, chunking, assembly, structural QA, CinemaCC bundles, and atomic delivery to a deterministic Python tool.

Install

The skill is a plain Agent Skill, so any compatible agent can load it. Pick the path that matches your client.

Any agent, with the open skills CLI

npx skills add HaiyiMei/cinemacc-subtitle-skill

The CLI detects the agents you have installed. Add -a claude-code (repeatable) to target specific ones, -g to install globally instead of into the current project.

Claude Code

/plugin marketplace add HaiyiMei/cinemacc-subtitle-skill
/plugin install cinemacc-subtitle@cinemacc

ChatGPT and Codex

$skill-installer install https://github.com/HaiyiMei/cinemacc-subtitle-skill/tree/main/skills/cinemacc-subtitle

Other Agent Plugins clients

The repository root is an Agent Plugins 1.0.0 package: a plugin.json manifest plus a skills/ directory. Clients that implement the standard - including VS Code, Cursor, GitHub Copilot, and Kiro - can install it directly from the repository. Follow your client's plugin installation instructions and point it at https://github.com/HaiyiMei/cinemacc-subtitle-skill.

Manually

Copy skills/cinemacc-subtitle/ into your agent's skills directory, keeping the directory name intact. Nothing outside that directory is required at runtime.

Use

Use $cinemacc-subtitle to find an eligible English SRT for [title and year], refine it, translate it into zh-CN, and package the result for CinemaCC.

When only a title is supplied, the default route acquires and verifies a source, refines it, translates it, runs QA, and delivers the result. An attached source skips acquisition. Explicit requests can stop after download, refinement, translation, or packaging. Chinese jobs still default to independently localized Mainland Chinese (zh-CN) and Taiwan Chinese (zh-TW) unless the user requests one target.

What it handles

  • source search and ordinary authorized download with a manual fallback for blocked sites;
  • source-track diagnosis and OCR/STT repair before translation;
  • title, character, terminology, and cultural context research;
  • subtitle-source provenance and timing-family comparison;
  • resumable workbooks, glossaries, uncertainties, and narrow QA waivers;
  • deterministic cue, timestamp, formatting-tag, encoding, and newline checks;
  • audited pruning and sequential renumbering of confirmed non-program cue residue;
  • safe chunk splitting and merging for long subtitles;
  • deterministic two-track CinemaCC ZIP bundles with movie, release, language, and source metadata;
  • atomic standalone-file delivery with hashes and receipts.

Repository layout

.
├── plugin.json                       # Agent Plugins 1.0.0 manifest (portable)
├── .claude-plugin/
│   ├── plugin.json                   # Claude Code plugin manifest
│   └── marketplace.json              # Claude Code marketplace catalog
├── .codex-plugin/plugin.json         # OpenAI ChatGPT/Codex plugin manifest
├── tools/check_manifests.py          # keeps the manifests and SKILL.md in sync
└── skills/cinemacc-subtitle/
    ├── SKILL.md
    ├── agents/openai.yaml            # OpenAI-specific skill metadata
    ├── references/
    └── scripts/

skills/cinemacc-subtitle/ is the whole skill. Every manifest at the repository root is an additive distribution wrapper for one client family; none of them changes the skill, and removing any one of them leaves the skill installable by every other client.

Compatibility

ClientMechanismManifest used
Claude Codeplugin marketplace.claude-plugin/marketplace.json, .claude-plugin/plugin.json
ChatGPT, Codexplugin install / $skill-installer.codex-plugin/plugin.json
VS Code, Cursor, GitHub Copilot, Kiro, and other Agent Plugins clientsAgent Plugins packageplugin.json
75+ agents via the skills CLIdirect skills/ discoverynone

The skill uses no MCP servers and no client-specific hooks, so the portable core is the same everywhere.

Requirements

  • Python 3.10 or newer; the deterministic tooling uses only the standard library.
  • A skills-compatible agent with file access.
  • Web access for source acquisition and title-specific research unless a usable source is supplied and the user explicitly requests no browsing.

Verify

python3 skills/cinemacc-subtitle/scripts/test_srt_tools.py
python3 tools/check_manifests.py
python3 evals/evaluate.py

The first command exercises the deterministic tooling. The second validates the SKILL.md frontmatter against the Agent Skills specification limits and checks that the skill name and version match every distribution manifest. Both run in CI on every push.

Evaluate

evals/harbor-lights/case.json is a synthetic end-to-end regression case that explicitly invokes the installed skill and exercises the full acquire → review → zh-CN translation → CinemaCC delivery route, including the rule against inventing an import link. Run its prompt in a clean directory, then grade the resulting package:

python3 evals/evaluate.py /path/to/candidate.cinemacc.zip

The deterministic grader checks the package contract, source-byte preservation, cue timing, formatting tags, and player encoding. Use the human rubric in the case file for translation quality and the agent's report. The committed reference package is also a stable public fixture for CinemaCC import tests after it lands on main.

Privacy, cost, and rights

CinemaCC does not operate a translation or subtitle-hosting service for this skill. Subtitle text, source pages, and research queries may be sent to the agent or model provider you choose, and that provider's pricing and privacy terms apply.

The repository does not include commercial movie or TV subtitles. You are responsible for having the rights needed to translate or distribute any source and output files.

CinemaCC

CinemaCC is a subtitle companion for films on any screen. It can import one or two SRT tracks, including the two-track ZIP produced by this skill, for synchronized theater-dark playback.

License

The code and documentation are available under the MIT License. The license does not grant rights to third-party subtitle content or CinemaCC trademarks.