Founder Signal OpenClaw Skill
Use this skill to turn verified Reddit evidence into a small, reviewable signal package for founders evaluating product demand and positioning across one or more configured product profiles.
Founder Signal Invariant
No saved verified snapshot means no scoring and no draft.
Every run must persist a run folder before later steps execute so failures still leave
traceable artifacts. The skill should only score verified evidence and should only
prepare a Draft handoff after daily-review.md exists for the selected profile.
Actual public Draft publication requires explicit founder confirmation.
Inputs
- one or more active product profiles from
profiles/*.json - optional
--profile <profile_id>selection for single-profile runs - deterministic Eddrit discovery from profile
subreddits,keywords, andscoring_terms; discovery always runs before configured hints - optional
excluded_reddit_urlsin a profile to suppress known old candidates - optional
verified_evidence_snapshotsin a profile when a Claw/browser agent has verified a Reddit post but the mirror fetch is blocked
Draft Publish Handoff
Founder Signal depends on the canonical draft-cli skill for public Draft page
publication. Draft handoff preparation is on by default: when Founder Signal creates
daily-review.md, it also writes draft-publish-intent.json next to
daily-review.md and does not hardcode Draft CLI subcommands. The intent contains the
artifact path, title, profile, public visibility request, and
requires_confirmation: true.
The agent must not invoke draft-cli public publish immediately after the intent is
written. It must first show the founder what would become public, or clearly point to
daily-review.md, then ask for explicit publish approval. This prevents unused public
Draft pages from occupying cloud storage and keeps the public boundary reviewable.
The draft-cli skill is the source of truth for daemon readiness, page creation,
append/patch behavior, public publishing, invite codes, and Draft URL extraction.
E2E Verification Playbook
When the founder asks for an end-to-end verification run, the agent must deliver a public Draft URL or clearly report E2E incomplete.
- Enable the target profiles.
- Use the built-in discovery phase. Do not start from placeholder URLs.
- Try the normal Eddrit search/listing and post mirror paths first.
- If the mirror is blocked, use browser/manual verification and add
verified_evidence_snapshotsto the profile:
{
"reddit_url": "https://www.reddit.com/r/ChatGPT/comments/abc123/real_slug/",
"verification_method": "agent_browser",
"verified_by": "openclaw-agent",
"text_snapshot": "Copy the relevant Reddit post text observed by the agent here."
}
The snapshot must be real source text from the Reddit post, not invented content.
Placeholder URLs such as POST_ID, REAL_ID, SUB, or /slug/ are invalid and must
not be used. Founder Signal treats verified_read_via_agent_browser and
verified_read_via_manual_snapshot as verified reads only after the snapshot is
persisted.
Run E2E checks with:
bash scripts/run_founder_signal_once.sh --all --require-action-card --require-publish-intent
When the run creates draft-publish-intent.json, inspect its requires_confirmation
field. If it is true, show the founder the public-boundary summary and ask for
approval before invoking the required draft-cli skill. After approval, publish
daily-review.md publicly and return the resulting public Draft URL to the founder.
This Draft handoff preparation is part of normal Founder Signal operation, but the
public publish action is confirmation-gated.
Outputs
runs/<RUN_ID>/run.jsonruns/<RUN_ID>/REPORT.mdruns/<RUN_ID>/profiles/<profile_id>/run.jsonruns/<RUN_ID>/profiles/<profile_id>/REPORT.mdruns/<RUN_ID>/profiles/<profile_id>/evidence/runs/<RUN_ID>/profiles/<profile_id>/outputs/candidates.jsonruns/<RUN_ID>/profiles/<profile_id>/selected-candidate.jsonwhen a verified candidate is selectedruns/<RUN_ID>/profiles/<profile_id>/daily-review.mdwhen an Action Card is generatedruns/<RUN_ID>/profiles/<profile_id>/draft-publish-intent.jsonwhen public Draft publishing is prepared and awaiting confirmationstate/past-candidates.jsonas private local candidate history used to avoid repeat candidates in future runs
Manual Execution
bash scripts/run_founder_signal_once.sh
bash scripts/run_founder_signal_once.sh --profile draft
bash scripts/run_founder_signal_once.sh --all --require-action-card --require-publish-intent
Without --profile, the runner processes all enabled profiles.
Bundled Runtime Payload
This published skill package includes the minimum local runtime payload needed to run from the installed skill directory:
scripts/run_founder_signal_once.shsrc/founder_signal/profiles/README.mdprofiles/draft.example.json
Before a real run, copy at least one example profile to an active .json file under
profiles/. No Draft publish settings file is required; Draft review is part of the
default flow.
Runtime Order
- Load either all enabled profiles or one selected profile.
- For each profile, run deterministic Eddrit discovery from subreddits and keywords, skipping profile exclusions and previous local candidate history, then consider real configured hints and verified snapshot fallbacks.
- Save evidence from mirror or verified snapshot fallback, enforce the verified-read gate, score only verified candidates, and optionally generate an Action Card.
- Write a public Draft publish intent whenever
daily-review.mdexists, marked as requiring confirmation before public publish.
Eddrit search/listing and post mirror pages are the primary source read layer. Reddit direct JSON or HTML, Redlib, and browser fallback are diagnostic or future fallback paths only.