refactor: reorganize demo tooling under content/demo hub - #83
Open
Andreas-Garcia wants to merge 2 commits into
Open
refactor: reorganize demo tooling under content/demo hub#83Andreas-Garcia wants to merge 2 commits into
Andreas-Garcia wants to merge 2 commits into
Conversation
Moves library VHS demo tapes/scripts from docs/demos/ and root-level
scripts/ into content/demo/{docs,demos,scripts}/, alongside the new
content/ hub layout (demo/, scripts/, articles/). Along the way, fixes
run_demo_tape.py's off-by-one repo_root resolution (content/articles/
was never found) and a silent no-op when a tape's Output directive
couldn't be found for rewriting. Drops the now-superseded top-level
content/linkedin/ draft convention in favor of per-article platform
subfolders.
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request reorganizes demo/content tooling into a centralized content/ hub, migrating the previous docs/demos/ and root scripts/*demo* utilities into content/demo/, and updating docs/config to match the new layout.
Changes:
- Move demo scripts and VHS demo docs into
content/demo/and remove legacydocs/demos/+scripts/run_demo_tape.py. - Add new library demo tapes under
content/demo/demos/tapes/and supporting installation/docs undercontent/demo/docs/. - Update repo docs and configs (
AGENTS.md,.cursor/rules/*,pyproject.toml,.gitignore, pre-commit excludes,CHANGELOG.md) to reflect the new structure and behavior.
Reviewed changes
Copilot reviewed 26 out of 28 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| system-dependencies-demo.toml | Updates install comments to reflect the new demo tooling layout and removes reference to a nonexistent Ubuntu script. |
| scripts/run_demo_tape.py | Removes legacy tape runner script under scripts/. |
| pyproject.toml | Updates Ruff per-file ignores to point to demo scripts under content/demo/scripts/. |
| docs/demos/tapes/get_full_metadata.tape | Removes legacy doc demo tape. |
| docs/demos/README.md | Removes legacy demo documentation under docs/demos/. |
| content/scripts/README.md | Adds documentation for non-demo content scripts and points to new demo tooling locations. |
| content/README.md | Replaces old “channel folder” convention with the new content/demo, content/scripts, and content/articles structure. |
| content/linkedin/2025-02-example-draft/.gitkeep | Removes legacy LinkedIn draft scaffolding. |
| content/linkedin/2025-02-example-draft.md | Removes legacy LinkedIn draft scaffolding. |
| content/linkedin/2025-02-audiometa-1.0.0-draft.md | Removes legacy LinkedIn draft content. |
| content/demo/scripts/run_demo_tape.py | Adds new article-oriented tape runner that selects recent tapes and rewrites Output robustly. |
| content/demo/scripts/install-demo-dependencies-macos.sh | Adds macOS installer for VHS demo dependencies. |
| content/demo/scripts/demo_repl.py | Adds REPL-style demo script used by VHS tapes. |
| content/demo/scripts/article_output_paths.sh | Adds shared bash helpers for resolving article output paths. |
| content/demo/README.md | Adds a top-level README describing the content/demo hub structure. |
| content/demo/docs/VHS_DEMO_README.md | Adds detailed VHS demo usage/install documentation under the new location. |
| content/demo/docs/DEMO_VIDEOS_README.md | Adds demo video overview/reference under the new location. |
| content/demo/docs/DEMO_INSTALLATION.md | Adds install/troubleshooting guide for demo video creation under the new location. |
| content/demo/demos/tapes/audiometa_demo.tape | Adds library REPL-style VHS tape under the new layout. |
| content/demo/demos/tapes/audiometa_demo_script.tape | Adds library script-style VHS tape under the new layout. |
| content/demo/demos/README.md | Adds README for running library VHS demos from the new location. |
| CHANGELOG.md | Adds [Unreleased] entries documenting the demo tooling fixes and layout changes. |
| AGENTS.md | Updates contributor instructions for demo videos to the new content/demo + content/articles structure. |
| .pre-commit-config.yaml | Expands check-added-large-files exclude to include article sample audio directory. |
| .gitignore | Switches ignore rules from docs/demos to content/**/output/ and article-generated media patterns. |
| .cursor/rules/demo-videos.mdc | Updates Cursor rule guidance for demo videos to the new content layout and workflow. |
| .cursor/rules/demo-tape-authoring.mdc | Updates tape authoring guidance to match the new article/demo layout and conventions. |
| .cursor/rules/code-style.mdc | Updates demo-script carve-out paths to the new content/demo/scripts/* locations. |
Suppressed comments (1)
content/demo/docs/DEMO_INSTALLATION.md:131
- This quick-test command uses a multi-line string with
echo "...which will break when copied into a shell (the quote is not closed on the first line). Useprintf(or a here-doc) to emit a valid multi-line tape to stdin.
# Test VHS (quick test)
echo "Output test.gif
Type 'echo Hello, World!'" | vhs /dev/stdin
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+34
to
+36
| This will generate: | ||
|
|
||
| - `get_full_metadata_demo.gif` - Animated GIF |
DEMO_INSTALLATION.md, DEMO_VIDEOS_README.md, VHS_DEMO_README.md, audiometa_demo.tape, audiometa_demo_script.tape, and scripts/install-demo-dependencies-macos.sh were left behind at the repo root after being moved to content/demo/... in this branch. All references already point at the new paths.
This was referenced Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Reorganizes library demo tooling under a single
content/hub, replacing the olddocs/demos/and root-levelscripts/demo_repl.py/scripts/run_demo_tape.py:content/demo/: hub for library demo docs (docs/), demo scripts (scripts/), and shared tapes/output (demos/).content/scripts/: content build scripts that aren't demo-specific.content/linkedin/channel-folder convention, superseded by per-article platform subfolders (seecontent/README.md).Picked up along the way:
run_demo_tape.py'srepo_rootresolution was one directory level too shallow, socontent/articles/was never found — fixed the.parentchain.cd'd only two levels up instead of three, breaking repo-root-relative paths.run_demo_tape.pyrewrote a tape'sOutput ...directive withre.sub()without checking a replacement occurred — now usesre.subn()and errors if nothing matched.system-dependencies-demo.toml's install comment referenced a nonexistent Ubuntu install script.Split out of #80 — this is the infra move that #80's new article content builds on top of.
Type of Change
Pre-PR Checklist
verify-system-dependency-versions, skipped locally — pinned mediainfo version is bumped in fix(ci): bump macOS mediainfo pin 26.01 -> 26.05 #81, unrelated to this PR's content)