vf.py command reference
Generated from the installed argument parser. Run these commands from the app checkout. Placeholders such as <name> must be replaced. Skill invocations go into your agent; Python commands go into your terminal.
Overview
usage: vf.py [-h]
{home,profiles,next-round,dup,pair,mark-draft,status,validate,blind,rules,next-id,rule,derive,make-official,migrate,promote-draft,review-score,export,setup,github,sync,save,feedback,holdout,settings,init}
...
Manage the Voice Forge voice home: setup, sync, rounds, lessons, feedback, holdout.
positional arguments:
{home,profiles,next-round,dup,pair,mark-draft,status,validate,blind,rules,next-id,rule,derive,make-official,migrate,promote-draft,review-score,export,setup,github,sync,save,feedback,holdout,settings,init}
pair find the before and after versions of a file in git, for Learn
mode
mark-draft commit only this file as a Voice Forge draft
validate check base.md and profiles against the schema
blind blind comparison of texts for the fidelity test
rules show a profile's rules in a short readable list
next-id the next free rule ID (never reuses a retired one)
rule add, replace or drop one rule; writes only if the file stays
valid
derive start a profile in another language from an existing one; never
overwrites
make-official mark a provisional (derived) profile as official
migrate write rules.migrated.md in the new layout; never overwrites
promote-draft print the rule block for a lesson; writes nothing
review-score score a review report against expected verdicts (tests)
export print a profile as JSON, generated from rules.md
setup create or find the voice home and remember where it is
github create a private GitHub repo for the voice home, or check the
linked one
sync save local changes, get the latest, push
save commit every change and push if allowed
feedback add a line to feedback.md
holdout add a test text or list them
settings show or change settings
init create a voice home or add a profile; never overwrites
options:
-h, --help show this help message and exit
home
usage: vf.py home [-h]
options:
-h, --help show this help message and exit
profiles
usage: vf.py profiles [-h]
options:
-h, --help show this help message and exit
next-round
usage: vf.py next-round [-h] --profile PROFILE
options:
-h, --help show this help message and exit
--profile PROFILE
dup
usage: vf.py dup [-h] --profile PROFILE file
positional arguments:
file
options:
-h, --help show this help message and exit
--profile PROFILE
pair
usage: vf.py pair [-h] [--profile PROFILE] [--out OUT] file [baseline]
positional arguments:
file
baseline commit to compare from; default: see learn.md
options:
-h, --help show this help message and exit
--profile PROFILE check duplicates only in this profile
--out OUT folder for before/after texts (default: a temporary folder)
mark-draft
usage: vf.py mark-draft [-h] --profile PROFILE file
positional arguments:
file
options:
-h, --help show this help message and exit
--profile PROFILE
status
usage: vf.py status [-h] [--profile PROFILE]
options:
-h, --help show this help message and exit
--profile PROFILE
validate
usage: vf.py validate [-h] [--profile PROFILE] [--file FILE]
options:
-h, --help show this help message and exit
--profile PROFILE
--file FILE check any rules file, such as rules.migrated.md
blind
usage: vf.py blind [-h] [--pick PICK] [--note NOTE]
{make,score,summary} [name] [files ...]
positional arguments:
{make,score,summary}
name
files
options:
-h, --help show this help message and exit
--pick PICK
--note NOTE
rules
usage: vf.py rules [-h] [--profile PROFILE] [--base] [--full]
options:
-h, --help show this help message and exit
--profile PROFILE
--base
--full print the whole file
next-id
usage: vf.py next-id [-h] [--profile PROFILE] [--base] [--never]
options:
-h, --help show this help message and exit
--profile PROFILE
--base
--never an N ID for a prohibited rule
rule
usage: vf.py rule [-h] [--profile PROFILE] [--base] [--section SECTION] [--file FILE]
[--reason REASON]
{add,replace,drop} [rule_id]
positional arguments:
{add,replace,drop}
rule_id
options:
-h, --help show this help message and exit
--profile PROFILE
--base
--section SECTION 2 to 10, for add
--file FILE the rule block, for add and replace (default: stdin)
--reason REASON why the user drops it, for drop
derive
usage: vf.py derive [-h] [--from SOURCE] --to TO [--update]
options:
-h, --help show this help message and exit
--from SOURCE
--to TO
--update propose rules added or changed in the source since then
make-official
usage: vf.py make-official [-h] --profile PROFILE [--force]
options:
-h, --help show this help message and exit
--profile PROFILE
--force
migrate
usage: vf.py migrate [-h] [--profile PROFILE] [--base]
[--type {nonfiction,fiction,unclassified}]
options:
-h, --help show this help message and exit
--profile PROFILE
--base migrate base.md instead of a profile
--type {nonfiction,fiction,unclassified}
promote-draft
usage: vf.py promote-draft [-h] --profile PROFILE lesson
positional arguments:
lesson
options:
-h, --help show this help message and exit
--profile PROFILE
review-score
usage: vf.py review-score [-h] [--rules RULES] [--base BASE] expected report
positional arguments:
expected
report
options:
-h, --help show this help message and exit
--rules RULES the profile, to check that every rule is in the report
--base BASE
export
usage: vf.py export [-h] --profile PROFILE [--force]
options:
-h, --help show this help message and exit
--profile PROFILE
--force export even if the profile has errors
setup
usage: vf.py setup [-h] [--path PATH] [--profile PROFILE] [--no-auto-push] [--no-git]
[--confirm-private]
options:
-h, --help show this help message and exit
--path PATH folder for the voice home (default ~/.voice-forge)
--profile PROFILE also create this profile, for example default-en
--no-auto-push
--no-git
--confirm-private you checked that the linked GitHub repo is private
github
usage: vf.py github [-h] [--name NAME] [--confirm-private]
options:
-h, --help show this help message and exit
--name NAME
--confirm-private
sync
usage: vf.py sync [-h]
options:
-h, --help show this help message and exit
save
usage: vf.py save [-h] -m MESSAGE
options:
-h, --help show this help message and exit
-m MESSAGE, --message MESSAGE
feedback
usage: vf.py feedback [-h] [--tool TOOL] [--mode MODE] text [text ...]
positional arguments:
text
options:
-h, --help show this help message and exit
--tool TOOL
--mode MODE
holdout
usage: vf.py holdout [-h] [--profile PROFILE] {add,list,check} [file]
positional arguments:
{add,list,check}
file
options:
-h, --help show this help message and exit
--profile PROFILE
settings
usage: vf.py settings [-h] [--auto-push {on,off}]
options:
-h, --help show this help message and exit
--auto-push {on,off}
init
usage: vf.py init [-h] --profile PROFILE [--language {en,es}] [--purpose PURPOSE]
[--register REGISTER] [--audience AUDIENCE] [--no-git]
[--type {nonfiction,fiction}]
options:
-h, --help show this help message and exit
--profile PROFILE for example essays-en or blog-es
--language {en,es}
--purpose PURPOSE
--register REGISTER
--audience AUDIENCE
--no-git do not start a git repo
--type {nonfiction,fiction}