Systems Lab

Agent skill

gtm-workflow

Triggers when a user wants to create, update, inspect, delete, run, approve, query, schedule, trigger, or deploy a saved GTM workflow in a GTM workspace, including typed result tables, paid provider or model calls, dry runs, checkpoints, authorized triggers, and hosted workflows.

activeNeeds a keyActs undeclared681 words

Filed under Prospecting and list building.

From eliasstravik/gtm-skills · 4 skills · 11 · pushed 2026-08-28

What it does when it runs

Triggers when a user wants to create, update, inspect, delete, run, approve, query, schedule, trigger, or deploy a saved GTM workflow in a GTM workspace, including typed result tables, paid provider or model calls, dry runs, checkpoints, authorized triggers, and hosted workflows. Not for creating or repairing the workspace itself, ICP or persona lifecycle work, other workflow engines, or one-off calls that are not saved as workflows.

Read from the skill and the 47 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • AI_GATEWAY_API_KEY
  • COMPANY_DATA_API_KEY
  • CRON_SECRET
  • GTM_RUN_SECRET
  • TURSO_AUTH_TOKEN
  • TURSO_READ_ONLY_AUTH_TOKEN
Hosts it reaches
  • buymeacoffee.com
  • dotenvx.com
  • feross.org
  • opencollective.com
  • paulmillr.com
  • registry.npmjs.org
  • tsx.hirok.io
  • www.patreon.com
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shellnetwork

Ask about gtm-workflow

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/eliasstravik/gtm-skills.git /tmp/gtm-skills
git -C /tmp/gtm-skills sparse-checkout set "skills/gtm-workflow"
mkdir -p ~/.claude/skills/gtm-workflow
cp -R "/tmp/gtm-skills/skills/gtm-workflow/." ~/.claude/skills/gtm-workflow/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs AI_GATEWAY_API_KEY, COMPANY_DATA_API_KEY, CRON_SECRET, GTM_RUN_SECRET, TURSO_AUTH_TOKEN, TURSO_READ_ONLY_AUTH_TOKEN, which you have to obtain separately.

Reproduced in full from eliasstravik/gtm-skills/blob/2f237f42f40858a62b53e06a0c5837f2f1a7dfc9/skills/gtm-workflow/SKILL.md, which is licensed MIT (repository). 681 words, 10 headings.

GTM workflow

Trigger

Apply this Lifecycle SOP when a request creates, updates, inspects, deletes, runs, or opens a saved GTM workflow.

Scope

Own the root workflows/ Nitro project, its managed workflows, typed tables, migrations, paid-call cache and ledger, local or Vercel runtime, native inspection tools, and deployment metadata. gtm-workspace, gtm-icp, and gtm-persona own their respective lifecycles.

Contract

FieldPublic contract
ReadsAccepted intent, workspace ownership and context files, current workflow code, supplied rows, environment-held credentials, caps, and deployment metadata
WritesThe root workflow project, workflow-owned tables and adapters, committed migrations, and database rows created by accepted runs
OutputsAn accepted workflow change, validation or deployment state, inspection result, or database-backed run outcome
ApprovalThe user accepts tracked changes, production effect, real spend, external writes, checkpoint continuation, destruction, and credential entry
PersistsSource and migrations in main Git history; results, cache, ledger, and run index in the database; retained execution traces in the runtime
Handoffgtm-workspace for repository structure or connections, gtm-icp for market definitions, and gtm-persona for buyer definitions

Inputs

Use the accepted intent, resolved GTM workspace and owner, relevant ICP and persona files, current workflow project, supplied rows, provider documentation and credentials available through the environment, accepted caps, and deployment metadata.

Roles

The agent owns authoring, validation, dry runs, checkpointed runs, scoped changes, migrations, inspection, UI opening, and Git-connected deployment through the accepted main commit. The user accepts behavior, limits, tracked changes and their production deployment effect, real spend, external writes, checkpoint continuation, destruction, and credentials they must enter.

Procedure

ConditionAction
No action is clearUse the guided menu in flows
CreateFollow create in flows
UpdateFollow update in flows
InspectFollow inspect in flows
DeleteFollow delete in flows
RunFollow run in flows
OpenFollow open
No valid workspace resolvesStop before workflow writes and hand creation or connection to gtm-workspace

Outputs

Produce an accepted workflow change, committed migration, validation result, deployment state, inspection, opened native tool, or database-backed run outcome.

Exceptions

Report a run still active after the bounded poll so gtm runs get can retrieve it later. A duplicate live run returns the existing run key. Leave tracked state unchanged when persistence fails.

QC

  • Secrets never appear in prompts, tracked files, conversation, or command output; values move from .env through the shell only.
  • Before editing any workflow or managed library file, read the pinned runtime's bundled documentation under workflows/node_modules/workflow/docs/; assume prior SDK knowledge is outdated.
  • Run gtm check and compare every // gtm-lib v11 header and recorded content hash before an action. Show locally modified diffs, offer a recopy, and never apply it silently.
  • Copy the versioned lib, routes, scripts, and config verbatim and edit workflow-owned tables, adapters, migrations, and workflow files instead.
  • Route every paid vendor call through provider() and every model call through agent().
  • Use committed migrations. The project has no db:push command.
  • When GTM_SANDBOX=1, use Turso, the api model backend, host-approved tracked writes, and no exposed port or remote Git command. The sandbox authors, validates, dry-runs, and queries; it starts no real run. Real runs, approvals, and cancellations go through the host's trusted controls.
  • Save accepted tracked changes to history on main.
  • For Runs: on Vercel, state in the save gate that the main commit starts production deployment; do not add a second deploy gate or deploy token.
  • Never use AskUserQuestion.
  • Start, reuse, record, and stop processes only under open.

References

Read the contract for every action, flows for create, update, inspect, delete, or run, open for open and local server work, conversation for visible messages, and deploy before Vercel changes. Read providers before adapter work and agents when configuring command permissions.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what gtm-workflow does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.