reel-driven-development
Reel Driven Development (RDD) - turn recorded user walks (reels) into domain stories and outcome objects
| PyPi | |
| GitHub | |
| Code | |
| Docs |
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
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,urlandsummarystay empty because they come from the transcript and are never guessed from the pictureconfig.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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reel_driven_development-0.0.2.tar.gz.
File metadata
- Download URL: reel_driven_development-0.0.2.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bfd6fca4fe00cbf268d182fff5b69e06270019b46c3ff12976a3e03fda6c56f
|
|
| MD5 |
d7d022bf4b4d84da87cd26bcde585455
|
|
| BLAKE2b-256 |
df941bf17dfa20c0048a7e10a24a9745ca9e54cb01b610aac1c5b363c8e8d36e
|
Provenance
The following attestation bundles were made for reel_driven_development-0.0.2.tar.gz:
Publisher:
upload-to-pypi.yml on WolfgangFahl/reel-driven-development
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reel_driven_development-0.0.2.tar.gz -
Subject digest:
5bfd6fca4fe00cbf268d182fff5b69e06270019b46c3ff12976a3e03fda6c56f - Sigstore transparency entry: 2467828107
- Sigstore integration time:
-
Permalink:
WolfgangFahl/reel-driven-development@b84585223de6ad799aa4baecf0526bc5c1422212 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/WolfgangFahl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
upload-to-pypi.yml@b84585223de6ad799aa4baecf0526bc5c1422212 -
Trigger Event:
release
-
Statement type:
File details
Details for the file reel_driven_development-0.0.2-py3-none-any.whl.
File metadata
- Download URL: reel_driven_development-0.0.2-py3-none-any.whl
- Upload date:
- Size: 69.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
640e74854617c27c7cff0d7f44d9b065e52f03fc3157572bc66e8b739d0f4b71
|
|
| MD5 |
1420c5071a28c67c0f08c1685b39a696
|
|
| BLAKE2b-256 |
d193d33cd98ecffc3634ee98757e23047879eab1ad9f2d1dd144c90cb315e558
|
Provenance
The following attestation bundles were made for reel_driven_development-0.0.2-py3-none-any.whl:
Publisher:
upload-to-pypi.yml on WolfgangFahl/reel-driven-development
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reel_driven_development-0.0.2-py3-none-any.whl -
Subject digest:
640e74854617c27c7cff0d7f44d9b065e52f03fc3157572bc66e8b739d0f4b71 - Sigstore transparency entry: 2467828160
- Sigstore integration time:
-
Permalink:
WolfgangFahl/reel-driven-development@b84585223de6ad799aa4baecf0526bc5c1422212 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/WolfgangFahl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
upload-to-pypi.yml@b84585223de6ad799aa4baecf0526bc5c1422212 -
Trigger Event:
release
-
Statement type: