원클릭으로
promotion-assistant
Automate multi-channel product promotion (email/posts/forum/DM), track conversion funnel, self-tune via feedback.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Automate multi-channel product promotion (email/posts/forum/DM), track conversion funnel, self-tune via feedback.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | promotion-assistant |
| description | Automate multi-channel product promotion (email/posts/forum/DM), track conversion funnel, self-tune via feedback. |
Governing principle (full text in the repo's
PHILOSOPHY.md): methodology is constant, signals adapt; compliance is engineering not goodwill; dry-run is the default, not an option. The channel matrix, six-layer funnel, bandit and compliance gate are fixed; every platform limit, audience and piece of copy lives in per-product config. No outbound action ever leaves the machine unless the product is explicitly set live AND that channel is individually authorized.
market-intel. Scheduling/reminders themselves → this skill delegates to the
schedule-reminder base (it does not reimplement scheduling).reference/<shard>.md on demand)| layer | job | shard |
|---|---|---|
| L0 config/creds | locate per-product config (PROMO_CONFIG_DIR, Mode B secrets) | reference/config-schema.md |
| L1 orchestration | plan→schedule-reminder; run --once/--daemon; alerts→Discord relay | reference/integration.md |
| L2 channels | one provider/platform (publish/engage/dm/read_metrics) | reference/channels.md |
| L3 compliance/throttle | fail-closed gate + token-bucket+AIMD + warmup + the dry-run exit | reference/compliance.md |
| L4 metrics | six-layer funnel + UTM/ref attribution + shadowban probe | reference/metrics.md |
| L5 decision | Thompson-Sampling bandit (discounted, non-stationary) | reference/bandit.md |
Two repos: this public, product-agnostic skill (no copy, no creds) + one private per-product config repo. Everything product-specific is config.
python scripts/cli.py init # locate/verify the product config repo
python scripts/cli.py channels list # registered channels + which have a live transport
python scripts/cli.py apply # secrets -> active config (delegates; never echoes)
python scripts/cli.py plan --campaign <C> # content calendar -> schedule-reminder
python scripts/cli.py run --campaign <C> --once # gated dispatch (DRY-RUN by default)
python scripts/cli.py authorize --channel <X> # the exact per-channel live-unlock steps
python scripts/cli.py report --funnel | --bandit # funnel + arm convergence
python scripts/cli.py doctor # health / compliance / dry-run self-check
dispatch() exit,
which fail-closed asserts product.json.send_mode=="live" and env
PROMO_LIVE_AUTHORIZED_<CHANNEL>. Missing either → it simulates (full pipeline, simulated
event + dry-run.jsonl, zero egress). Build/test never sends to real audiences.secrets/*
is always gitignored in the config repo; never commit copy or creds into this skill.schedule-reminder CLI only (never its .db/SQL);
alerts → the existing Discord relay; email → the machine's send-gmail.ps1 link.deferred-gap, never silently dropped.python scripts/selftest.py runs E1-E12 (metrics exactness, bandit convergence + drift recovery,
throttle limits, compliance fail-closed, attribution, dry-run zero-egress, propensity completeness,
event schema, anti-fingerprint, delayed-conversion censoring, idempotency). All must pass before any
behavior change ships, this is the self-evolve gate.
This SKILL.md is the only always-loaded file. Read reference/<shard>.md on demand, one at a time.