Skip to main content

agency-docs-updater

Automates the publishing of Claude Code lab meetings by managing transcripts, video uploads, and documentation generation.

Install this skill

or
0/100

Security score

The agency-docs-updater skill was audited on May 29, 2026 and we found 36 security issues across 3 threat categories, including 18 high-severity. Review the findings below before installing.

Categories Tested

Security Issues

medium line 28

Template literal with variable interpolation in command context

SourceSKILL.md
28```bash
high line 42

Template literal with variable interpolation in command context

SourceSKILL.md
42If `LAB_FILTER` is set: `${VAULT_DIR}/${DATE}-claude-code-lab-${LAB_FILTER}.md`
high line 43

Template literal with variable interpolation in command context

SourceSKILL.md
43If empty: glob `${VAULT_DIR}/${DATE}-claude-code-lab-*.md` (pick most recent by mtime).
high line 45

Template literal with variable interpolation in command context

SourceSKILL.md
45If missing: run `${SKILLS_LOCAL_DIR}/calendar-sync/sync.sh`, re-check, stop if still missing.
high line 49

Template literal with variable interpolation in command context

SourceSKILL.md
49- `VIDEO_NAME` = `${DATE}-claude-code-lab-${LAB_NUMBER}`
high line 52

Template literal with variable interpolation in command context

SourceSKILL.md
52**Determine `MEETING_NUMBER`**: check existing MDX files in `${DOCS_SITE_DIR}/content/docs/claude-code-internal-${LAB_NUMBER}/meetings/` for a placeholder with today's date. If found, use that number.
high line 56

Template literal with variable interpolation in command context

SourceSKILL.md
56Skip if `${VAULT_DIR}/${VIDEO_NAME}.mp4` exists and is > 1MB.
medium line 61

Template literal with variable interpolation in command context

SourceSKILL.md
61```bash
medium line 68

Template literal with variable interpolation in command context

SourceSKILL.md
68```bash
medium line 74

Template literal with variable interpolation in command context

SourceSKILL.md
74```bash
medium line 81

Template literal with variable interpolation in command context

SourceSKILL.md
81```bash
high line 92

Template literal with variable interpolation in command context

SourceSKILL.md
92Extract `YOUTUBE_URL` from stdout (`✓ YouTube video: ...`) or `processed/metadata/${VIDEO_NAME}.json`.
medium line 99

Template literal with variable interpolation in command context

SourceSKILL.md
99```python
high line 143

Template literal with variable interpolation in command context

SourceSKILL.md
143If verification fails: delete the failed video metadata (`rm processed/metadata/${VIDEO_NAME}.json`), re-upload with `--resume-from upload`, and re-verify. Do NOT proceed to MDX or thumbnail steps wit
high line 156

Template literal with variable interpolation in command context

SourceSKILL.md
1563. Write a **temporary** HTML file (e.g. `/tmp/lab-meeting-${MEETING_NUMBER}.html`) based on `${YOUTUBE_UPLOADER_DIR}/templates/images/lab-meeting.html` — update meeting number, topic hero text, bulle
high line 157

Template literal with variable interpolation in command context

SourceSKILL.md
1574. Render with Playwright at 1280×720 → `${YOUTUBE_UPLOADER_DIR}/processed/thumbnails/${VIDEO_NAME}.jpg`
high line 165

Template literal with variable interpolation in command context

SourceSKILL.md
165Read `${FATHOM_FILE}`. Generate a structured summary **in `${TRANSCRIPT_LANG}`**:
high line 184

Template literal with variable interpolation in command context

SourceSKILL.md
184Meeting page URL: `https://${SITE_DOMAIN}/claude-code-lab-${LAB_NUMBER}/meetings/${MEETING_NUMBER}`
medium line 190

Template literal with variable interpolation in command context

SourceSKILL.md
190```bash
high line 195

Template literal with variable interpolation in command context

SourceSKILL.md
195**Before running**: check if a placeholder MDX already exists for today's date (`grep -l` in `meetings/`). If so, use `-n ${MEETING_NUMBER} --update` to target it.
high line 199

Template literal with variable interpolation in command context

SourceSKILL.md
1992. Check for presentation file: look in `${PRESENTATIONS_DIR}/presentations/lab-${LAB_NUMBER}/` and `${PRESENTATIONS_DIR}/lesson-generator/` for files matching `${DATE}`. If found, copy to `${DOCS_SIT
high line 202

Template literal with variable interpolation in command context

SourceSKILL.md
2025. Verify: `cd ${DOCS_SITE_DIR} && npm run build 2>&1 | tail -5`
medium line 207

Template literal with variable interpolation in command context

SourceSKILL.md
207```bash
medium line 227

Template literal with variable interpolation in command context

SourceSKILL.md
227```bash
high line 241

Template literal with variable interpolation in command context

SourceSKILL.md
241Open `https://${SITE_DOMAIN}/claude-code-lab-${LAB_NUMBER}/meetings/${MEETING_NUMBER}` in a browser (via chrome automation tools or manually). Verify YouTube embed is visible. If not: check VIDEO_ID,
medium line 247

Template literal with variable interpolation in command context

SourceSKILL.md
247```bash
high line 256

Template literal with variable interpolation in command context

SourceSKILL.md
256**Handle new glossary terms**: the script prints `→ N NEW term(s) need definitions` for terms it has never seen. For each, write a one-line definition into `${DOCS_SITE_DIR}/.agency-glossary.json` (ke
high line 258

Template literal with variable interpolation in command context

SourceSKILL.md
258**Then**: `cd ${DOCS_SITE_DIR} && npm run build 2>&1 | tail -5` to confirm the generated MDX compiles, stage the changed aggregation files (the three MDX pages, `public/data/meetings.json`, and `.agen
medium line 259

Template literal with variable interpolation in command context

SourceSKILL.md
259```bash
medium line 16

Access to hidden dotfiles in home directory

SourceSKILL.md
16- [calendar-sync](~/.claude/skills/calendar-sync) — local-only, calendar event sync (`sync.sh`)
medium line 10

Access to .env file

SourceSKILL.md
10**Configuration**: paths are read from `.env` in the skill root (see `.env.example`). Defaults work for the standard setup. Key env vars: `VAULT_DIR`, `DOCS_SITE_DIR`, `YOUTUBE_UPLOADER_DIR`, `PRESENT
medium line 21

Access to .env file

SourceSKILL.md
21Load `.env` from skill root. Then split `args` by whitespace:
medium line 251

Access to .env file

SourceSKILL.md
251The script reads the same `.env` paths and writes (paths configurable via `AGG_*` env vars):
low line 184

External URL reference

SourceSKILL.md
184Meeting page URL: `https://${SITE_DOMAIN}/claude-code-lab-${LAB_NUMBER}/meetings/${MEETING_NUMBER}`
low line 241

External URL reference

SourceSKILL.md
241Open `https://${SITE_DOMAIN}/claude-code-lab-${LAB_NUMBER}/meetings/${MEETING_NUMBER}` in a browser (via chrome automation tools or manually). Verify YouTube embed is visible. If not: check VIDEO_ID,
low line 274

External URL reference

SourceSKILL.md
274For **repo-wide** jobs across all past meetings — auditing every page for broken embeds/MDX defects, or backfilling/repairing incomplete meetings — see `references/workflows.md`. Those are fan-out [dy
Scanned on May 29, 2026
View Security Dashboard