Skip to content

social/account-growth

social/account-growth — daily per-account follower / view snapshots.

Category: social
Source: workflows/social/account_growth.py

FieldTypeDefaultDescription
cohortstring"default"Cohort label (e.g. ‘validation-cohort-1’) for grouping snapshots.
cohort_start_datestring""ISO date for cohort Day 0 (e.g. ‘2026-04-29’). Empty = use the earliest fetched_at in the existing log for this cohort, or today if none. Used to compute day_index per row.
days_targetinteger30Days from cohort start by which the target should be hit.
handlesany[]List of (platform, handle) to snapshot in parallel.
log_pathstring""Path to the growth-log JSONL. Empty = ~/.fabric/account-growth.jsonl.
regenerateobjectWhen set, this run is a regeneration. Workflows may read direction / keep / extra_instructions to modulate prompts; the engine persists parent_run_id and parent_variant_index as run lineage columns.
target_followersinteger1000Follower target for the growth-curve pace projection.
target_viewsinteger1000000Total-views target for the growth-curve pace projection.
variantsinteger1Number of independent variant executions (1–10). When > 1, the engine runs the workflow N times with different sampling, producing N outputs.
FieldTypeDefaultDescription
cohortstringrequired
curvesany[]
day_indexinteger0Days since cohort_start_date for this snapshot run.
fetched_atstringrequired
kindobjectVariant card shape: video / carousel / image / text. Surfaced on the per-variant entry of the run-output API and used by gallery UIs to pick the right layout.
log_pathstringrequired
snapshotsany[]
snapshots_writteninteger0
snapshot_handles → compute_curves → finalize
TaskDescription
snapshot_handlesFan out across handles in parallel, persist, and build output rows.
compute_curvesBuild per-(handle, platform, metric) growth-curve rollups.
finalizeShape the aggregate output.

Save the YAML below as my-run.yaml, edit the values, and run with the CLI or POST it to the API. Required fields are uncommented; optional knobs are documented above the input: block — copy any line under input: and uncomment to set.

workflow: social/account-growth
# Optional fields — copy any line(s) under `input:` and uncomment to set:
# Cohort label (e.g. 'validation-cohort-1') for grouping snapshots.
# cohort: default
#
# ISO date for cohort Day 0 (e.g. '2026-04-29'). Empty = use the earliest fetched_at in the existing log for this cohort, or today if none. Used to compute day_index per row.
# cohort_start_date: ""
#
# Days from cohort start by which the target should be hit.
# [min=1, max=365]
# days_target: 30
#
# List of (platform, handle) to snapshot in parallel.
# handles: []
#
# Path to the growth-log JSONL. Empty = ~/.fabric/account-growth.jsonl.
# log_path: ""
#
# Follower target for the growth-curve pace projection.
# [min=1]
# target_followers: 1000
#
# Total-views target for the growth-curve pace projection.
# [min=1]
# target_views: 1000000
#
input: {}

Run it locally:

Terminal window
fab-workflow --from-file my-run.yaml

Or submit over the wire — the same file is the request body:

Terminal window
curl -X POST 'https://gofabric.dev/v1/workflows/runs?name=social/account-growth' \
-H 'Authorization: Bearer fab_xxx' \
-H 'content-type: application/yaml' \
--data-binary @my-run.yaml

Every workflow also accepts the universal WorkflowInput fields — variants (1–10 fan-out) and regenerate (creative-direction hints with run lineage). See Run-specs (YAML / TOML / JSON) for the full top-level shape (metadata, priority, bundle, parent, etc.).