Skip to content
Back to skills

Headless Gtm Shared

ASecurity

Reference module for the Headless GTM chain, not a skill to invoke. Holds the record contract every chain skill reads and writes (CONVENTIONS.md) plus the Python helpers they import (common.py, schema.py). Installed alongside the chain so those imports and references resolve; read CONVENTIONS.md when you need the JSONL record shape, the runs/ layout, or the cost-gate rules.

  • 26 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 31, 2026
ai-agentspythonshellapi

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 5 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add Zevenue/headless-gtm --skill headless-gtm-shared --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Headless Gtm Shared?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Headless Gtm Shared
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zevenue-headless-gtm-shared/badge)](https://www.skillsdirectory.com/skills/zevenue-headless-gtm-shared)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: headless-gtm-shared
description: >
  Reference module for the Headless GTM chain, not a skill to invoke. Holds the
  record contract every chain skill reads and writes (CONVENTIONS.md) plus the
  Python helpers they import (common.py, schema.py). Installed alongside the
  chain so those imports and references resolve; read CONVENTIONS.md when you
  need the JSONL record shape, the runs/ layout, or the cost-gate rules.
---

# `headless-gtm-shared` - the chain's record contract and helpers

This folder is a library, not a skill. Nothing invokes it directly. It ships as
a skill folder for one reason: the `SKILL.md` marker is what makes skill
installers copy a directory, and every chain skill depends on this one.

## What is in here

| File | What it is | Who uses it |
|---|---|---|
| `CONVENTIONS.md` | The chain contract: JSONL records, additive per-stage fields, the `runs/<run-id>/` layout, deviation logging | Every chain skill references it; read it before changing any output format |
| `common.py` | `.env` loading, the >$10 cost gate, output-dir resolution, run slugs, run metadata | Imported by the chain scripts |
| `schema.py` | `ProspectRecord` construction and the CSV/JSON writers | Imported by the discovery scripts |
| `requirements.txt` | The full dependency list for the chain, mirrored at the repo root | `pip install` |

## If you are reading this because an import failed

A script exited with `cannot find headless-gtm-shared/common.py`. The skill was
copied out without this folder. Copy `skills/headless-gtm-shared/` next to the
skill that failed, so the layout is:

```
<skills-dir>/
├── headless-gtm-shared/          <- this folder
├── 02-apify-maps-discover/
└── ...
```

The `npx skills add` installer picks this folder up on its own. Only a manual
single-folder copy can miss it.

## Two rules worth knowing before you edit anything here

- **`common.load_env()` never overwrites an exported variable.** A real shell
  export or a secrets manager always beats a `.env` on disk. The loader only
  fills in what is missing.
- **`common.resolve_out_dir()` writes under the current working directory**, not
  under the skill. An installed skill is a read-only package; client output
  belongs in the project you are working in.

Files in this skill

  • CONVENTIONS.md7.3 KB
  • SKILL.md2.2 KB
  • common.py7.2 KB
  • requirements.txt956 B
  • schema.py4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.