Skip to main content
ClaudeWave
Skill82 estrellas del repoactualizado 2d ago

wjs-looping-feedback

Use when the user wants to add an in-site feedback loop to a website repo — a floating "提个建议" button where allowlisted visitors submit suggestions that become a GitHub Issue, which GitHub Actions turns into an automatic code change via Claude Code, auto-merges and deploys, and records on a /_feedback dashboard with one-click revert. Triggers — "给网站加个反馈对话框", "提一句话就自动改网站", "装上反馈闭环", "feedback loop", "/wjs-looping-feedback".

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/jianshuo/claude-skills /tmp/wjs-looping-feedback && cp -r /tmp/wjs-looping-feedback/wjs-looping-feedback ~/.claude/skills/wjs-looping-feedback
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# wjs-looping-feedback

Installs a self-driving feedback loop into any website repo. Runs entirely on the repo
owner's own GitHub Actions, authenticated with their Pro/Max OAuth token or their own
`ANTHROPIC_API_KEY` — no extra service or backend.

## What it installs
1. A floating feedback button (prefills a GitHub Issue — no backend, no keys client-side).
2. `.github/workflows/feedback.yml` — allowlist gate → Claude Code Action → auto-commit →
   push to `main` (auto-deploy) → ledger + dashboard update → close issue.
3. `/_feedback` dashboard — every suggestion, what Claude did, commit, status, one-click revert.
4. `.feedback/` runtime: `feedback-lib.mjs`, `feedback-finalize.mjs`, `INSTRUCTIONS.md`,
   `feedback-ledger.json`, `config.json`.

## How it works
visitor clicks button → fills suggestion → prefilled GitHub Issue (label `feedback`) →
Actions checks the author is in `FEEDBACK_ALLOWLIST` (else closes the issue) →
Claude Code edits the site per `.feedback/INSTRUCTIONS.md` → workflow commits to `main`,
updates the ledger + dashboard → the deploy ships it →
the issue gets a comment with the commit and a link to `/_feedback`.
Revert is the same loop driven by a `revert: #N` issue.

### Deploy triggering — read before you install (common gotcha)
The workflow pushes to `main` with the built-in `GITHUB_TOKEN`. Two cases:
- **External push-deploy host** (Cloudflare Pages git-connect, Vercel, Netlify): their
  webhook fires on every push, so the bot's commit deploys automatically. Nothing to do.
- **Deploy is itself a GitHub Actions workflow in the SAME repo** (e.g. GitHub Pages via
  Actions): GitHub deliberately does NOT let a `GITHUB_TOKEN` push trigger another workflow
  (recursion prevention), so the deploy workflow's `on: push` will NOT fire — the change
  lands on `main` but never goes live. Bridge it by adding a `workflow_run` trigger to the
  deploy workflow (see `references/install.md` step 4.5).

## To install
Read `references/install.md` and follow it in the target repo. It detects the site type
(Hugo / Next.js / Astro / static), copies assets, injects the widget, and asks the user for
exactly two things: the **allowlist** of GitHub usernames and the **auth** (Pro/Max OAuth
token via `claude setup-token`, or an `ANTHROPIC_API_KEY`).

## Scope (route 1)
Runs in the user's own repo with their own auth. Submitters need a GitHub account; only
allowlisted authors trigger work. Not a hosted service — no anonymous submit, no billing,
no multi-tenant. (A future GitHub-App packaging would reuse every asset here.)
skill-quality-reviewerSubagent

Repo-wide drift detector for the wjs-* Claude Code skills in this marketplace. Sweeps every SKILL.md, scores it against the repo's own conventions (V-ing naming, trigger-phrase density, companion files, description shape), and returns a grouped punch list ordered by severity. Read-only — never edits files. Use before pushing a batch of skill changes, or whenever you wonder "are these skills still internally consistent?

wangjianshuo-perspectiveSkill

|

wjs-auditing-projectSkill

Use when the user asks to audit what's wrong with a project, "make it right", "看看项目出了什么问题", "为什么用户的需求还没上线", "为什么没提交App Store", "为什么没新build", or wants a holistic state-of-the-project check covering unmerged branches, stalled PRs, failed GitHub Actions, stale builds, plan drift (TODOS.md / ROADMAP), unreleased commits, and log errors. Runs read-only investigation, presents a grouped checklist, fixes only after explicit user confirmation. Aware of the Cathier iOS app workflow (Xcode + fastlane + auto-merge @claude PRs from in-app feedback).

wjs-burning-subtitlesSkill

Use when the user has a video + an SRT and wants the subtitles either burned into the pixels (libass, always-visible) or soft-muxed as a togglable track. Also handles the final composite step for the localization pipeline — burn subs, mix a dub track, and keep the original audio as a low-volume bed, all in ONE ffmpeg encode (no cascade). Verifies libass availability and auto-downloads a static evermeet ffmpeg build when Homebrew's stripped binary lacks it. Triggers — "烧字幕", "硬字幕", "burn subtitles", "burn-in subs", "embed subtitle", "soft mux SRT", "把字幕烧进视频", "做最终合成".

wjs-cleaning-spamSkill

Use when the user complains about spam on his X/Twitter posts — 同城面付 / 寻固炮 / 线下上门 / 免费破处 这类引流号在他推文下刷的 emoji 垃圾回复 — and wants them removed. Covers the last 7 days (X recent-search window). Triggers — "把这些spam删掉", "清理X垃圾回复", "推文下面好多引流号", "clean spam replies", "/wjs-cleaning-spam".

wjs-converting-text-to-videoSkill

Use when the user wants a 王建硕-style WeChat article (article.md) turned into a narrated short MP4 video — TTS voiceover via 火山引擎 Volcano TTS, HyperFrames CSS/GSAP animation per scene, subtle SFX, abstract watercolor background, full pipeline rendering to 1080×1920 portrait MP4 (30-90s). Triggers — "把这篇文章做成视频", "做一个解说视频", "讲解视频", "/wjs-converting-text-to-video".

wjs-converting-wp-to-hugoSkill

Use when migrating a WordPress site to a Hugo static site on GitHub Pages from a WXR export (.xml) plus the wp-content/uploads folder — preserving /archives/<id>/ URLs, localizing images, and deploying via GitHub Actions. Triggers — "把 WordPress 迁成 Hugo", "wordpress 转静态站", "migrate WordPress to Hugo", "WXR to Hugo", "publish WordPress to GitHub Pages", "/wjs-converting-wp-to-hugo".

wjs-dubbing-videoSkill

Use when the user has a video + a target-language SRT and wants the video to actually speak that language — generates a time-aligned TTS voice dub. Routes by voice ID — Volcano (豆包) TTS for Chinese, edge-tts neural for any language. Defaults to one voice (single-speaker); opt-in multi-speaker via visual diarization. Outputs `*_<lang>_dub.mp4` with the dub audio in place of the original. Final mixing (audio bed + burn-in) is handed off to `/wjs-burning-subtitles`. Triggers — "配音", "中文配音", "Chinese dub", "voice over this", "dub the video", "TTS this SRT", "different voice for each speaker".