mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-29 12:55:16 -07:00
889dc9c009
- sidebar: migrate flat props to css object (font-family, color, bg, custom vars) - frequencyDictionary.topX default: 1000 → 10000 - text-shadow default: updated to outline-style multi-shadow - anki: reset ai model/prompt, imageMaxWidth/Height, animatedMaxHeight to 0; isLapis defaults - troubleshooting: log default warn (not info), css["font-size"] usage - shortcuts: add W markWatchedKey; clarify keybindings vs built-in overlay actions - websocket: clarify all services off by default, fix enabled semantics - usage: --anilist → --anilist-setup - AGENTS.md: add Docs Upkeep trigger map, clarify CLAUDE.md symlink, expand PR notes
4.5 KiB
4.5 KiB
AGENTS.MD
Internal Docs
Start here, then leave this file.
- Internal system of record:
docs/README.md - Architecture map:
docs/architecture/README.md - Workflow map:
docs/workflow/README.md - Verification lanes:
docs/workflow/verification.md - Knowledge-base rules:
docs/knowledge-base/README.md - Release guide:
docs/RELEASING.md
docs-site/ is user-facing. Do not treat it as the canonical internal source of truth.
CLAUDE.md is a symlink to this file — there is one project instruction file, not two.
Quick Start
- Init workspace:
git submodule update --init --recursive - Install deps:
make depsorbun installplus(cd vendor/texthooker-ui && bun install --frozen-lockfile) - Fast dev loop:
make dev-watch - Full local run:
bun run dev - Verbose Electron debug:
electron . --start --dev --log-level debug
Build / Test
- Runtime/package manager: Bun (
packageManager: bun@1.3.5) - Default handoff gate:
bun run typecheckbun run test:fastbun run test:envbun run buildbun run test:smoke:dist - If
docs-site/changed, also run:bun run docs:testbun run docs:build - Prefer
make prettyandbun run format:check:src
Change-Specific Checks
- Config/schema/defaults:
bun run test:config; if template/defaults changed,bun run generate:config-example - Launcher/plugin:
bun run test:launcherorbun run test:env - Runtime-compat / dist-sensitive:
bun run test:runtime:compat - Docs-only:
bun run docs:test, thenbun run docs:build
Docs Upkeep
- Docs ship with the change, not after. If a change alters behavior, defaults, flags, shortcuts, ports, or APIs, update the matching docs in the same PR. Touching code without reconciling its docs is an incomplete change.
- Source of truth for config defaults is the generated
config.example.jsonc. Never write a default value into prose you didn't read from it — and don't restate the same default across multiple docs; cite/link to one place so there's a single thing to update. - Trigger map (touch left → update right):
src/config/definitions/**(schema/defaults/template) →bun run generate:config-example, then reconciledocs-site/configuration.md+ any feature doc that cites that default- shortcuts/keybindings (
shortcuts.*,keybindings,stats.*Key,subtitleSidebar.toggleKey, controller bindings) →docs-site/shortcuts.md - CLI flags/subcommands (
src/cli/args.ts,launcher/**) →docs-site/usage.md+ relevant integration doc - feature behavior (anki / jellyfin / jimaku / anilist / youtube / immersion / stats / websocket / sidebar / character-dictionary / annotations) → matching
docs-site/<feature>.md - architecture / IPC / workflow / internal process → internal
docs/(system of record) - feature set / requirements / install flow →
README.md
- Removing or renaming a config key: grep
docs-site/anddocs/for the old key and any value it documented; legacy/hidden keys (LEGACY_HIDDEN_CONFIG_PATHS) should not appear in user docs as current settings. - Verify after doc edits:
bun run verify:config-example(if config touched),bun run docs:test,bun run docs:build.
Sensitive Files
- Launcher source of truth:
launcher/*.ts - Generated launcher artifact:
dist/launcher/subminer; never hand-edit it - Repo-root
./submineris stale; do not revive it bun run buildrebuilds bundled Yomitan fromvendor/subminer-yomitan- Do not change signing/packaging identifiers unless the task explicitly requires it
Release / PR Notes
- User-visible PRs need one fragment in
changes/*.md— format and rules inchanges/README.md(type+areakeys required; apply theskip-changeloglabel to opt out) - User-visible docs changes get a
type: docsfragment - CI enforces
bun run changelog:lintandbun run changelog:pr-check - PR review helpers:
gh pr view --json number,title,url --jq '"PR #\\(.number): \\(.title)\\n\\(.url)"'gh api repos/:owner/:repo/pulls/<num>/comments --paginate
Runtime Notes
- Use Codex background for long jobs; tmux only when persistence/interaction is required
- CI red:
gh run list/view, rerun, fix, repeat until green - TypeScript: keep files small; follow existing patterns
- Only Swift is the
scripts/get-mpv-window-macos.swifthelper (macOS mpv window detection); validate viabun test scripts/get-mpv-window-macos.test.ts