Skip to content
Agentmart
Submit a tool

affiliate

Builds, runs, and migrates the Life Manager Affiliate Agent across macOS devices.

Skill by Daisuke134

IndexedMIT★ 8
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/daisuke134-affiliate

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Builds, runs, and migrates the Life Manager Affiliate Agent across macOS devices.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/affiliate

What's inside

Skill name
affiliate
Description
Builds, runs, and migrates the Life Manager Affiliate Agent across macOS devices.
License
MIT
Instructions
515 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Agent Skills spec issues

  • body: 515 lines (spec recommends under 500)

Files (93)

  • SKILL.md
  • affiliate
  • install.sh · bootstrap/
  • manifest.lock · bootstrap/
  • agent-runner.json · config/
  • command-authority.json · config/
  • command-registry.json · config/
  • ai-voice-evaluation-en-v1.md · config/content/
  • elevenagents-en-v1.md · config/content/
  • elevenlabs-en-v1.md · config/content/
  • elevenlabs-tts-api-en-v1.md · config/content/
  • demand-pages.json · config/
  • en-candidates.json · config/programs/
  • elevenlabs.json · config/provider-playbooks/
  • hubspot-impact.json · config/provider-playbooks/
  • systeme-io.json · config/provider-playbooks/
  • acquisition-decision-v1.json · config/schemas/
  • action-proposal-v1.json · config/schemas/
  • affiliate-x-distribution-job-v1.json · config/schemas/
  • command-registry-v1.json · config/schemas/
  • composition-draft-v1.json · config/schemas/
  • distribution-route-v1.json · config/schemas/
  • funnel-decision-v1.json · config/schemas/
  • opportunity-decision-v1.json · config/schemas/
  • policy-audit-v1.json · config/schemas/
  • elevenagents-en.json · config/source-plans/
  • elevenlabs-dubbing-en.json · config/source-plans/
  • elevenlabs-en.json · config/source-plans/
  • elevenlabs-tts-api-en.json · config/source-plans/
  • en.json · config/x-profiles/
  • acquisition_decision.py · scripts/
  • action_proposal.py · scripts/
  • agent_checkpoint.py · scripts/
  • agent_due.py · scripts/
  • agent_runner.py · scripts/
  • authority_inventory.py · scripts/
  • composition_owner.py · scripts/
  • content.py · scripts/
  • context_packet.py · scripts/
  • cta_instrumentation.py · scripts/
  • devto_publish.py · scripts/
  • funnel_decision.py · scripts/
  • guarded_dispatch.py · scripts/
  • host_fence_reconcile.py · scripts/
  • job_journal.py · scripts/
  • local-browser · scripts/
  • local_browser.py · scripts/
  • local_loop.py · scripts/
  • machine_capability_inventory.py · scripts/
  • owned_publish.py · scripts/
  • profile_provisioner.py · scripts/
  • program_registry.py · scripts/
  • provider_cli.py · scripts/
  • revenue_cli.py · scripts/
  • runtime_guard.py · scripts/
  • source_capture.py · scripts/
  • substack_publish.py · scripts/
  • telegram_effect_reconcile.py · scripts/
  • x_post_cli.py · scripts/
  • x_profile_cli.py · scripts/
  • …and 33 more

SKILL.md (first lines)

# Life Manager Affiliate Skill

status: `LOCAL_RUNTIME_READY`
legacy_migration: `MIGRATION_ONLY`
execution: `MACOS_LOCAL_ONLY`

The canonical source is this `skills/affiliate` directory in the Life Manager
repository. `legacy/` contains byte-preserved evidence only; archived files are
never executed by this skill.

Mutable state lives at
`${LIFE_MANAGER_STATE_HOME:-$HOME/.local/state/life-manager}/affiliate`.
Installed data lives at
`${LIFE_MANAGER_DATA_HOME:-$HOME/.local/share/life-manager}/affiliate`.

The runtime follows the proven Coconala boundary: an immutable release, mutable
append-only receipts outside Git, an isolated browser profile, and launchd-owned
local wakes. It does not use Railway or an Anicca API redirect. Public content
uses an authenticated provider tracking link directly; clicks are not revenue.

The model boundary uses the repository-global `runtime/agent-runner/`
commit `d150e4b1dba4c207a12fa4be974356124d425919`. `SOURCE.md`, the preserved MIT
license, and `SHA256SUMS` are authoritative; an installed Gig release is evidence,
not source. The runner is not admitted into `loop wake` until the Affiliate
routing, privacy, schema, and budget gates in the SSOT are closed.

`config/agent-runner.json` exposes two single-candidate Affiliate routes through
the native Codex account: GPT-6.1-Sol medium for marketing and an explicit,
one-use GPT-6.1-Sol high repair escalation. Publication remains separately gated
by source/policy receipts and the existing effect-reconciliation contract.

Production callers use `scripts/agent_runner.py`, never the vendored runner
directly. The gate requires `AFFILIATE_CODEX_CAPABILITY_RECEIPT`, rechecks the
canonical Codex path, `--version`, and SHA-256, writes the verified pin beside
the model-call receipts, and refuses to start a provider after any mismatch.
`machine_capability_inventory.py` creates the private receipt from an explicitly
requested `codex_cli`; it does not admit arbitrary executables or commands.
Before importing the vendored runner, the gate replaces the parent environment
with an explicit allowlist. Codex receives its executable directory, the parent
directory of launchd's pinned `LIFE_MANAGER_RUNTIME_NODE`, system directories,
an Affiliate-owned `HOME` and `CODEX_HOME`, the configured auth-file path,
locale/timezone, and only named budget variables. Parent API keys, database URLs,
browser routes, and every other ambient variable are absent. Never add a wildcard
or copy `os.environ` into this boundary.

The same wrapper owns model evidence. It applies `0700` to directories and
`0600` to files, rejects symlinks, and removes a stale seal before each run.
After the vendored runner writes its atomic summary, the wrapper validates the
attempt JSONL and atomically writes `evidence-seal.json` with the summary,
attempt, exact result, source-set, and execution hashes/data. Consumers call
`verify_evidence_seal` with the expected source set; raw output without a valid
seal is incomplete evidence, never a model result.

F0 provides four deterministic, non-publishing primitives:

- `bootstrap/install.sh` verifies a reviewed pinned manifest and writes an
  atomic machine-capability receipt;
- `scripts/authority_inventory.py` binds a Keychain reference to one explicit
  intent and records human-only external challenges;
- `scripts/profile_provisioner.py` creates isolated EN/JA browser roots without
  launching or copying a browser session.
- `scripts/machine_capability_inventory.py` receipts an explicitly requested
  macOS browser app from held no-follow file descriptors without launching it;
  generic executable admission remains fail-closed.

The first provider CLI slice is live:

```bash
skills/affiliate/affiliate provider inspect \
  --provider hubspot-impact --cdp-port 9327 --receipt "$RECEIPT"
```

It attaches read-only to the dedicated `impact-en:9327` browser, selects exactly one
origin/title/path-bound tab, maps rendered text through the versioned provider
playbook, and writes an atomic sanitized receipt. Unknown UI never becomes an
approval. The current slice observes status only; it cannot submit or publish.

Use `provider poll` with the same arguments in a loop. The first observation or
a real state change returns `changed=true` and a deterministic `transition_id`;
an unchanged retry returns `next_action=NO_STATE_CHANGE`. Downstream actions
must deduplicate on `transition_id`.

Use credential-first resume only on a supported semantic playbook:

```bash
skills/affiliate/affiliate provider resume \
  --provider elevenlabs --cdp-port 9324 --receipt "$RECEIPT"
```

It reads the mode-0600 Git-external Markdown, clears and fills the named controls
through CDP, submits at most once per invocation, and requires rendered readback.
Credentials never enter stdout, receipts, Git, selectors, or command arguments.

Impact device verification is also a provider command, not an owner task:

```bash
skills/affiliate/affiliate provider verify-device \
  --provider hubspot-impact --cdp-port 9327 \
  --receipt ~/.local/state/life-manager/affiliate/providers/hubspot-impact-device.json
```

It reads only inbound messages from the playbook-bound sender in the local
macOS Messages database, requires exactly one six-digit code newer than ten
minutes, submits it once, and retains neither the code nor message contents.
Missing, stale, or ambiguous codes fail closed.

Recover an expired Impact account only in its dedicated browser. Save the new
credential before the provider mutation, then require a fresh authenticated
application readback:

```bash
python3 -c 'import secrets; print("A!" + secrets.token_urlsafe(36))' | \
  skills/affiliate/affiliate programs store-credential \
  --id hubspot-impact --label Impact --verification SAVED_BEFORE_SUBMIT
skills/affiliate/affiliate provider reset-password \
  --provider hubspot-impact --cdp-port 9327 \
  --receipt ~/.local/state/life-manager/affiliate/providers/hubspot-impact-password-reset.json
skills/affiliate/affiliate provider resume \
  --provider hubspot-impact --cdp-port 9327 \

From Daisuke134/life-manager, MIT.

More from Daisuke134/life-manager

Signals

Stars
8
Forks
2
Open issues
2,737
Last commit (this folder)
Oct 17, 2026 (11 days ago)
Last release
Aug 15, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Daisuke134

Cite this page

affiliate skill. Agent Mart. https://agentmart.dev/skills/daisuke134-affiliate (last updated 2026-10-24)