Skip to main content

reel-driven-development

Reel Driven Development (RDD) - turn recorded user walks (reels) into domain stories and outcome objects

PyPi PyPI Status License pypi format downloads
GitHub Github Actions Build Release Contributors Last Commit GitHub issues GitHub closed issues
Code style-black imports-isort
Docs API Docs formatter-docformatter style-google

Demo

See a reel for yourself: the GenWiki demo reel (7 hops) on rdd.bitplan.com - true inspection mode, your verdicts stay on your device. Reviewers get a link by mail - no account, no password.

Installation

pip install reel-driven-development

or isolated with pipx:

pipx install reel-driven-development

Both put the rdd command and the tool entry points on the PATH.

Documentation

Wiki

Authors

Reel Driven Development

A reel is a recorded user walk - e.g. a screen-share demo where a domain expert walks through a system while talking. RDD treats the reel as a graph walk:

  • every context switch (page, browser tab, application) and every relevant interaction (submenu, filter, zoom, sort) is a hop
  • the narrative drives the sampling, never the clock
  • every hop gets an evidence frame (screenshot) or a proven-absent note
  • findings become outcome objects: a frustration spoken during a walk becomes a bug report, which is an acceptance criterion, which is an example

HopDetection was the first step - issue #1; the requirements epic is issue #7.

rdd - the one command name

rdd dispatches to the tools of the pipeline, so a user has to know one name - the name of what we do:

subcommand tool purpose
rdd detect hopdetect find the hops of a reel and capture the evidence frames
rdd doc reeldoc generate the reel document from a Recording
rdd review reelreview serve one reel folder for review
rdd site reelsite serve the reel site; --init initializes it, --mint mints a review token

rdd without a subcommand lists them; the tool names stay available as entry points of their own.

rdd detect flags

flag meaning default change it when
--detector the detector to find the hops with, by name Content comparing detectors, or one detector misses hops on this material
--start segment start (seconds or MM:SS) 0 processing a part of the reel
--end segment end (seconds or MM:SS) video duration processing a part of the reel
--out output directory for the evidence frames, hops.yaml and config.yaml hops keeping several hop sets apart
--progress show the progress bar of the running detection off a run over a long reel must not be silent (issue #6)

rdd detect --help lists these together with the standard options of pybasemkit.

Detectors

Hop candidates come from the detectors of PySceneDetect, which benchmarks them.

Each detector is on offer at its library default and at half and double its threshold. ThresholdDetector is not on offer: it detects fades to a near-black level.

Cuts found on examples/recordings/genwiki-walk - 1501 frames, 60 s, about 1.4 s per run:

detector half default double
Adaptive 32 15 11
Content 17 9 0
Hash 32 12 0
Histogram 13 10 7

Output

A run writes to --out:

  • hop-<hh>h<mm>m<ss>s[<ms>ms].jpg - the evidence frame of each hop, the full frame as recorded, named by its time offset so curation never renames a surviving frame (issue #21)
  • hops.yaml - the hop records, whose field names are the property names of Concept:HopContent; node, url and summary stay empty because they come from the transcript and are never guessed from the picture
  • config.yaml - the values that decided this hop set, so a run can be repeated from its own output (issue #4)

Example: GenWiki walk

rdd detect examples/recordings/genwiki-walk/genwiki-walk.mp4 --detector Content --out hops
genwiki-walk.mp4: 9 hops from Content over 1501 frames -> hops

Raw results of an earlier run in examples/recordings/genwiki-walk.

Known gaps

  • content outside the walk - participant tiles, a clock, a playing video - can still decide hop boundaries (issue #5)
  • there is no machine-readable progress stream for an agent driving a run (issue #36)
  • transcript-anchored capture of a named moment is not implemented

Metadata

Release files for reel-driven-development 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reel-driven-development 0.0.2
File Size Uploaded
reel_driven_development-0.0.2.tar.gz 2.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for reel-driven-development 0.0.2
File Interpreter ABI Platform
reel_driven_development-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / reel_driven_development-0.0.2.tar.gz

Download URL reel_driven_development-0.0.2.tar.gz
Size 2.8 MB
Tags Source
SHA-256 checksum
How to use checksums
5bfd6fca4fe00cbf268d182fff5b69e06270019b46c3ff12976a3e03fda6c56f
BLAKE2b-256 checksum
How to use checksums
df941bf17dfa20c0048a7e10a24a9745ca9e54cb01b610aac1c5b363c8e8d36e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release files / reel_driven_development-0.0.2-py3-none-any.whl

Download URL reel_driven_development-0.0.2-py3-none-any.whl
Size 69.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
640e74854617c27c7cff0d7f44d9b065e52f03fc3157572bc66e8b739d0f4b71
BLAKE2b-256 checksum
How to use checksums
d193d33cd98ecffc3634ee98757e23047879eab1ad9f2d1dd144c90cb315e558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page