Add twitch-vod-clipper, market-validator, and git-workflow skills - #1083
Add twitch-vod-clipper, market-validator, and git-workflow skills#1083gupsspam-netizen wants to merge 2 commits into
Conversation
Three community skills for the Tons of Skills marketplace: - twitch-vod-clipper: Download Twitch VODs, detect viral moments, render Shorts clips - market-validator: Structured 40-min business idea validation - git-workflow: Execute common Git workflows safely with 21-step methodology All skills built using Claude Fable, validated against marketplace schema.
Greptile SummaryAdds three
Confidence Score: 4/5Safe to merge — the PR adds only sources.yaml pointers; actual skill content is gated by the weekly sync validator. The three new entries are structurally complete and the upstream content will be scanned and validated before it ever lands in plugins/community/. The only actionable finding is the unanchored 'SKILL.md' include pattern, which the sync engine will flag as an advisory warning at run time — it doesn't block the sync, but it could silently admit nested SKILL.md files from within a skill's sparse-checkout subtree if any exist. sources.yaml — the three new entries' include patterns should use '/SKILL.md' rather than 'SKILL.md'.
|
| Filename | Overview |
|---|---|
| sources.yaml | Adds three new community skill pointer entries (twitch-vod-clipper, market-validator, git-workflow) all sourced from the same upstream monorepo (gupsspam-netizen/clip-farmer-skills). Schema fields are complete and correct, but include patterns are unanchored ('SKILL.md' vs '/SKILL.md'), which will trigger advisory warnings at sync time and could admit deeply-nested SKILL.md files from within each skill's sparse-checkout subtree. |
Sequence Diagram
%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant PR as PR Merge
participant SY as sources.yaml
participant SE as sync-external.mjs
participant GH as gupsspam-netizen/clip-farmer-skills
participant LF as sources.lock.json
participant PC as plugins/community/
PR->>SY: Adds 3 pointer entries
Note over SY: Validated at sync time, not PR time
SE->>GH: sparse-clone → twitch-vod-clipper/
SE->>LF: new-source baseline (twitch-vod-clipper)
SE->>PC: mirror twitch-vod-clipper/SKILL.md
SE->>GH: sparse-clone → market-validator/
SE->>LF: new-source baseline (market-validator)
SE->>PC: mirror market-validator/SKILL.md
SE->>GH: sparse-clone → git-workflow/
SE->>LF: new-source baseline (git-workflow)
SE->>PC: mirror git-workflow/SKILL.md
SE->>SE: validate-skills-schema.py on each mirrored SKILL.md
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant PR as PR Merge
participant SY as sources.yaml
participant SE as sync-external.mjs
participant GH as gupsspam-netizen/clip-farmer-skills
participant LF as sources.lock.json
participant PC as plugins/community/
PR->>SY: Adds 3 pointer entries
Note over SY: Validated at sync time, not PR time
SE->>GH: sparse-clone → twitch-vod-clipper/
SE->>LF: new-source baseline (twitch-vod-clipper)
SE->>PC: mirror twitch-vod-clipper/SKILL.md
SE->>GH: sparse-clone → market-validator/
SE->>LF: new-source baseline (market-validator)
SE->>PC: mirror market-validator/SKILL.md
SE->>GH: sparse-clone → git-workflow/
SE->>LF: new-source baseline (git-workflow)
SE->>PC: mirror git-workflow/SKILL.md
SE->>SE: validate-skills-schema.py on each mirrored SKILL.md
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 1
sources.yaml:1713-1759
All three `include` patterns use the unanchored form `'SKILL.md'` (without a leading `/`). The sync engine's `matchesPattern` auto-prefixes these as `**/SKILL.md`, which matches at **any depth** within the sparse-checked-out subtree — not just the root. For a monorepo like `clip-farmer-skills` where multiple skill directories live side by side, this means any nested `SKILL.md` files inside `twitch-vod-clipper/`, `market-validator/`, or `git-workflow/` (e.g. in an `examples/` subdirectory) would be silently pulled in as unvetted content. The sync engine will also emit an advisory warning for each entry at run time (blocker 62ye.6 in `sync-external.mjs`). The entry immediately preceding these — `quit-sponsor` — uses the anchored form `'/SKILL.md'` correctly.
```suggestion
- name: twitch-vod-clipper
description: Download Twitch VODs, detect viral moments from audio energy and the transcript, and render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails
repo: gupsspam-netizen/clip-farmer-skills
source_path: twitch-vod-clipper
target_path: plugins/community/twitch-vod-clipper
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
- name: market-validator
description: Structured 40-minute process to validate a business idea — competition scan, demand signals, revenue estimate — outputs a GREEN/YELLOW/RED verdict with evidence
repo: gupsspam-netizen/clip-farmer-skills
source_path: market-validator
target_path: plugins/community/market-validator
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
- name: git-workflow
description: Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21 safe steps with recovery paths
repo: gupsspam-netizen/clip-farmer-skills
source_path: git-workflow
target_path: plugins/community/git-workflow
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
```
Reviews (1): Last reviewed commit: "Add twitch-vod-clipper, market-validator..." | Re-trigger Greptile
| - name: twitch-vod-clipper | ||
| description: Download Twitch VODs, detect viral moments from audio energy and the transcript, and render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails | ||
| repo: gupsspam-netizen/clip-farmer-skills | ||
| source_path: twitch-vod-clipper | ||
| target_path: plugins/community/twitch-vod-clipper | ||
| author: | ||
| name: Carl Johnson | ||
| github: gupsspam-netizen | ||
| license: MIT | ||
| category: community | ||
| verified: false | ||
| include: | ||
| - 'SKILL.md' | ||
| exclude: | ||
| - '.git/**' | ||
|
|
||
| - name: market-validator | ||
| description: Structured 40-minute process to validate a business idea — competition scan, demand signals, revenue estimate — outputs a GREEN/YELLOW/RED verdict with evidence | ||
| repo: gupsspam-netizen/clip-farmer-skills | ||
| source_path: market-validator | ||
| target_path: plugins/community/market-validator | ||
| author: | ||
| name: Carl Johnson | ||
| github: gupsspam-netizen | ||
| license: MIT | ||
| category: community | ||
| verified: false | ||
| include: | ||
| - 'SKILL.md' | ||
| exclude: | ||
| - '.git/**' | ||
|
|
||
| - name: git-workflow | ||
| description: Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21 safe steps with recovery paths | ||
| repo: gupsspam-netizen/clip-farmer-skills | ||
| source_path: git-workflow | ||
| target_path: plugins/community/git-workflow | ||
| author: | ||
| name: Carl Johnson | ||
| github: gupsspam-netizen | ||
| license: MIT | ||
| category: community | ||
| verified: false | ||
| include: | ||
| - 'SKILL.md' | ||
| exclude: | ||
| - '.git/**' |
There was a problem hiding this comment.
All three
include patterns use the unanchored form 'SKILL.md' (without a leading /). The sync engine's matchesPattern auto-prefixes these as **/SKILL.md, which matches at any depth within the sparse-checked-out subtree — not just the root. For a monorepo like clip-farmer-skills where multiple skill directories live side by side, this means any nested SKILL.md files inside twitch-vod-clipper/, market-validator/, or git-workflow/ (e.g. in an examples/ subdirectory) would be silently pulled in as unvetted content. The sync engine will also emit an advisory warning for each entry at run time (blocker 62ye.6 in sync-external.mjs). The entry immediately preceding these — quit-sponsor — uses the anchored form '/SKILL.md' correctly.
| - name: twitch-vod-clipper | |
| description: Download Twitch VODs, detect viral moments from audio energy and the transcript, and render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: twitch-vod-clipper | |
| target_path: plugins/community/twitch-vod-clipper | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - 'SKILL.md' | |
| exclude: | |
| - '.git/**' | |
| - name: market-validator | |
| description: Structured 40-minute process to validate a business idea — competition scan, demand signals, revenue estimate — outputs a GREEN/YELLOW/RED verdict with evidence | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: market-validator | |
| target_path: plugins/community/market-validator | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - 'SKILL.md' | |
| exclude: | |
| - '.git/**' | |
| - name: git-workflow | |
| description: Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21 safe steps with recovery paths | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: git-workflow | |
| target_path: plugins/community/git-workflow | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - 'SKILL.md' | |
| exclude: | |
| - '.git/**' | |
| - name: twitch-vod-clipper | |
| description: Download Twitch VODs, detect viral moments from audio energy and the transcript, and render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: twitch-vod-clipper | |
| target_path: plugins/community/twitch-vod-clipper | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - '/SKILL.md' | |
| exclude: | |
| - '.git/**' | |
| - name: market-validator | |
| description: Structured 40-minute process to validate a business idea — competition scan, demand signals, revenue estimate — outputs a GREEN/YELLOW/RED verdict with evidence | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: market-validator | |
| target_path: plugins/community/market-validator | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - '/SKILL.md' | |
| exclude: | |
| - '.git/**' | |
| - name: git-workflow | |
| description: Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21 safe steps with recovery paths | |
| repo: gupsspam-netizen/clip-farmer-skills | |
| source_path: git-workflow | |
| target_path: plugins/community/git-workflow | |
| author: | |
| name: Carl Johnson | |
| github: gupsspam-netizen | |
| license: MIT | |
| category: community | |
| verified: false | |
| include: | |
| - '/SKILL.md' | |
| exclude: | |
| - '.git/**' |
Prompt To Fix With AI
This is a comment left during a code review.
Path: sources.yaml
Line: 1713-1759
Comment:
All three `include` patterns use the unanchored form `'SKILL.md'` (without a leading `/`). The sync engine's `matchesPattern` auto-prefixes these as `**/SKILL.md`, which matches at **any depth** within the sparse-checked-out subtree — not just the root. For a monorepo like `clip-farmer-skills` where multiple skill directories live side by side, this means any nested `SKILL.md` files inside `twitch-vod-clipper/`, `market-validator/`, or `git-workflow/` (e.g. in an `examples/` subdirectory) would be silently pulled in as unvetted content. The sync engine will also emit an advisory warning for each entry at run time (blocker 62ye.6 in `sync-external.mjs`). The entry immediately preceding these — `quit-sponsor` — uses the anchored form `'/SKILL.md'` correctly.
```suggestion
- name: twitch-vod-clipper
description: Download Twitch VODs, detect viral moments from audio energy and the transcript, and render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails
repo: gupsspam-netizen/clip-farmer-skills
source_path: twitch-vod-clipper
target_path: plugins/community/twitch-vod-clipper
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
- name: market-validator
description: Structured 40-minute process to validate a business idea — competition scan, demand signals, revenue estimate — outputs a GREEN/YELLOW/RED verdict with evidence
repo: gupsspam-netizen/clip-farmer-skills
source_path: market-validator
target_path: plugins/community/market-validator
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
- name: git-workflow
description: Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21 safe steps with recovery paths
repo: gupsspam-netizen/clip-farmer-skills
source_path: git-workflow
target_path: plugins/community/git-workflow
author:
name: Carl Johnson
github: gupsspam-netizen
license: MIT
category: community
verified: false
include:
- '/SKILL.md'
exclude:
- '.git/**'
```
How can I resolve this? If you propose a fix, please make it concise.
jeremylongshore
left a comment
There was a problem hiding this comment.
Thanks for this, @gupsspam-netizen — and for contributing the right way, through sources.yaml rather than dumping files. I read all three skills in full, and they're genuinely good:
git-workflow— real safety discipline, not just command lists: state inspection (git status+git log) before every destructive op,--force-with-leasealways,git revert(notreset) for public history, and reflog/--aborttreated as first-class recovery. Complete sections plus three worked examples. This is the kind of skill I'd actually want an agent running.market-validator— a genuine 5-phase, time-boxed methodology on free public endpoints (Reddit.json, GitHub/HN APIs), honest about estimate-vs-forecast, with real red-flag detection ("everyone needs X" → nobody is the customer).twitch-vod-clipper— a real technical pipeline (yt-dlp → Whisper word-timestamps → energy/transcript scoring → ffmpeg 9:16 with libass captions, mediapipe face-tracking, watermark, thumbnails), with correct commands and honest hardware notes.
Complete frontmatter on all three, verified: false (honest). Nice work.
One thing to fix before we can track the source: your upstream repo gupsspam-netizen/clip-farmer-skills declares license: MIT in each entry, but the repo itself has no LICENSE file (just a README). Because we mirror your content and always preserve the upstream license and credit, the license has to actually exist in the source repo — otherwise the MIT grant we'd be relying on isn't real.
To unblock: add a standard LICENSE file (MIT, with your name/year) to the root of clip-farmer-skills, then drop a comment here. That's the only blocker — the sources.yaml entries themselves are well-formed and correctly pointed.
What happens next, so you know the path: once the license is in place, we pin your source and the weekly external-sync pipeline mirrors the SKILL.md files into plugins/community/ and runs them through our full grading. That grade — not this PR — is the real quality gate (our bar is high; see CONTRIBUTING.md and the rubric at https://tonsofskills.com/grading). Given how these read, I expect them to do well.
Leaving this open pending the LICENSE file. Thanks again — this is a solid contribution.
- Jeremy Longshore
intentsolutions.io
…git-workflow, docker-deploy
…d an external-PR playbook
WHY THIS WAS URGENT
The CI/CD teaching material handed to the incoming CTO on 2026-07-16 said branch
protection requires "exactly two" status checks. `skill-conform` became a third
required context on 2026-07-23, so the doc had been wrong for six days — and the
error was not confined to a footnote. Section 8 is a verbatim CLIENT-FACING
SCRIPT, so the doc was actively coaching him to say "two required checks" in the
exact room it was written to prepare him for.
CORRECTED, ALL FOUR SURFACES
704 §1 exactly two -> exactly three, with skill-conform named
704 §1 added WHY skill-conform is NOT in ci-required's needs: per doc 110
§5 a skippable/path-scoped job must never green the aggregate,
because inside needs: a `skipped` result counts as a PASS
704 §8 the client script now says three, and "~19 jobs" -> "19 jobs"
705 Q1 deepened to ask which context stands outside needs: and why
705 Q6 now names all three green contexts
706 A1 rewritten: Three, plus the needs: rationale as the Approver-level
discriminator
706 A6 gate list updated
CLAUDE.md "needs: all 17 gate jobs" -> 19
VERIFIED, NOT ASSUMED
Every count was read off the live system rather than copied between documents,
which is how the drift happened in the first place:
required contexts gh api branches/main/protection -> ci-required, gitleaks,
skill-conform (exactly 3)
aggregate jobs yaml.safe_load(validate-plugins.yml) -> len(needs) == 19,
so the doc's "19" was RIGHT and CLAUDE.md's "17" was the
stale one. Corrected the file that was actually wrong.
curated sources 3 (tonone, servicegraph, schedule-after-usage-reset), all
verified=false. A `grep -c 'curated: true'` said 8; the YAML
parse said 3. The parser is right — grep was matching prose.
Caught before it reached the new doc.
baseline semantics check-internal-doc-links.mjs refuses outright;
lint-design-tokens.mjs ratchets DOWN only via
--update-baseline. Different mechanics, so the new doc
states them separately instead of flattening both to
"refuses".
NEW: 709 — reviewing external PRs
704 teaches the pipeline but not the judgement call, which is the part that
actually consumes a maintainer's time. 709 covers what a gate cannot:
- Classify FIRST by which files changed. The live queue splits cleanly:
lane A = sources.yaml only (#1083 #1103 #1144), lane B = new plugin dir
(#1070 #1101 #1125 #1131). Written against the real 7-PR queue, not invented
examples.
- Lane A's CI failure is BY DESIGN — sources-change-unscanned is a waivable
CHALLENGE that exists to force a human to vet the source. Documents the
allowlist line, that the reason field is required, and that a malformed
waiver fails CLOSED (ignored, not honoured).
- REFUSE is never waivable.
- curated: true is a FREEZE, and why: a --force sync once reverted ~100 A-graded
agents to upstream stubs, an 18,900-line deletion.
- curated: and verified: are orthogonal.
- Two traps that have each cost real time: an EMPTY check list means CI never
ran (merging on one broke main in July), and an absent ci-required means the
19 jobs are still running.
- The AI reviewers are not a gate and right now are not even running: Kilo is
out of credits and fails every PR, Gemini's consumer product is sunset,
Greptile is advisory and quota-limited.
- Upstreaming flow, with the hard rule that contributor-facing wording gets
Jeremy's sign-off BEFORE posting.
- How to close a PR well. ~1 in 10 external-sync PRs merges, so closing is the
normal outcome and the doc says so plainly.
- A 6-stage ramp ending at the CODEOWNERS flip to Approver.
CHOSE A SEPARATE DOC over extending 704 because the two answer different
questions — 704 is "how does the gate work" and is quiz-backed for the Approver
promotion, while 709 is "how do I decide" and is judgement, not mechanics.
Merging them would have buried the judgement material inside reference text.
NOTE ON LINTING: 000-docs/** is excluded in .markdownlint-cli2.jsonc, so these
files are not lint-gated. Formatting was kept consistent with 704 by hand.
|
Hi @gupsspam-netizen — the three skills the PR claims to add are well-structured (Path B pattern is correct, multi-skill-from-one-repo is the established pattern used by P0 —
|
…rections to the blueprint WHAT Nine corrections the owner attached to his conditional ratification of the master modernization blueprint, applied as documentation and planning only. No code, no production architecture, no corpus, no adapter, no catalog, no package, no bead, no issue, no external setting was touched. 1. Root README landing contract (727 § 6A, new). 728 C6 and 729 § 6 both REJECT "README as catalog surface" and named no successor. § 6A is the successor: a governed landing contract — model-agnostic platform identity, scale stated as a strength with cohort labels, five navigation axes (harness/model, application, category, plugin, certification tier), four artifact classes distinguished on sight, harness support stated only where a generated adapter exists, the frozen install slug and plugins//skills/ contracts preserved, tonsofskills.com live and the dead domain retired outside frozen records. Ships R1–R10 acceptance criteria, an information architecture, and one PROPOSED bead (2.13) — documented, not created. 2. Activation completed, not weakened. The STANDARDS.md § Canonical documents pointer lands in this PR, satisfying the Status condition verbatim; 727 § 11.1 proves the resulting graph has exactly one owner per fact class. 3. Disputed figures corrected from a re-measurement at HEAD 49210ec, embedded in 727 § 3.1 with SHA, commands and cohort definitions so the correction is self-proving: 962 A/B failing (not 963); 132 A-graded CONFIRMED; those 132 carry 219 errors (not 469). 469 has no measured source and every near-miss (1,101 / 1,320 / 2,155 / 7,433) was excluded rather than substituted. Three totals are now named separately and never merged: SKILL.md 7,433 over 3,680 rows, agent lane 253 over 353 files, terminal marketplace headline 7,687. 4. Benchmark licensing repaired. 728 § 4.0 is a binding preamble — unlicensed repos may be studied for ideas only; files, schema wording, prose and implementation text may not be copied; adoption is independent reimplementation; every decision preserves its source's license constraint; absence of a license means ALL RIGHTS RESERVED. Rows A2, A4, A5, A6, B4, B7 and D1 now carry that constraint inline. 5. Mission 01 is not Epic 1. 727 Epic 1 gains a delivery table (PRs #1174–#1184) and a per-bead disposition: 0 satisfied, 0 superseded, 1.7/1.8 narrowed, 1.0 partially informed — so Epic 1 stays at 15 and no filler bead was invented to protect it. 6. Progressive activation is binding. Beads/Dolt is task authority; GitHub and Plane are projections; no uncontrolled 151-bead batch; one owner-authorized slice at a time behind review + AAR + evidence + owner gate. § 15.1 is now the single unambiguous launch sequence and reconciles the Epic 7 bead 7.1 recommendation with the Day-0 diagram: slice 1 is a named PRE-PROGRAM CONTAINMENT MISSION of two beads. 7. npm token resolution RECORDED, not performed (§ 18.9): treat as potentially live, revoke, minimum-scope replacement, protected npm-production Environment, verify without exposing. Marked OWNER-AUTHORIZED EXTERNAL ACTION. 8. Honest independent review preserved (§ 18.5, rewritten + Epic 10 precondition): one approval is the target and is not reduced to zero; an implementer-controlled alternate identity is not independence; admin bypasses stay disclosed; Epic 10 cannot claim independent certification before the machine boundary is real. 9. Contributor wording DRAFTED, NOT POSTED (709 § 8A): a close-and-reopen note that puts the delay on the repository, excludes #1131 (active) and #1181 (0 days), adds the fork-CI clause only for the four PRs with zero checks (#1181, #1173, #1172, #1083), preserves credit and gives a one-click reopen. Awaiting owner sign-off. WHY THIS WAY Correction 3 is embedded with its commands rather than stated, because a corrected number that cannot be re-derived is the same defect wearing a new value. The 3,680 vs 3,678 cohort discrepancy is recorded and deliberately NOT reconciled by hand — that is bead 1.0's job. Section 6A is numbered 6A rather than renumbering §§ 7–20, so every existing cross-reference in the document survives. VERIFICATION node scripts/check-docs-ignore-policy.mjs → 21 assertions OK node scripts/check-doc-citations.mjs → OK (20 pre-existing baselined, 0 new) node scripts/check-generated-artifacts.mjs → OK (2 projection globs, 0 tracked) pnpm format:check → All matched files use Prettier code style npx markdownlint-cli2 (10,629 files) → exit 0 709 is already tracked, so no filing-ledger line was required and 000-INDEX.md is unchanged (no new document). RISK / ROLLBACK Documentation only; no runtime, schema, workflow or catalog surface changes. Revert this commit to restore the pre-correction text byte-identically; the observable is `git diff --stat` reporting five files and the three gates above still green. UNFINISHED Bead count moves 140→141 task / 150→151 total (Epic 2 gains 2.13). No bead, issue or Plane record was created. Escalations 18.1–18.9 remain open owner decisions.
Summary
Three community skills for the marketplace:
twitch-vod-clipper
Download Twitch VODs, detect viral moments from audio and transcript energy, render vertical 9:16 clips with animated captions, face tracking, watermarks, and thumbnails.
market-validator
Structured 40-minute business idea validation. Five-phase process: idea scrubbing → competition scan → demand signal check → monetization check → GREEN/YELLOW/RED verdict.
git-workflow
Execute common Git workflows safely — rebase, squash, conflict resolution, commit management, force-push with lease. 21-step methodology with safety rules baked in.
Submission checklist
Auto-sync
All three skills live in https://github.com/gupsspam-netizen/clip-farmer-skills and will sync to the marketplace weekly via Path B.