@veleads/gtm 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +72 -0
  3. package/dist/cli.js +268 -89
  4. package/kit/AGENTS.md +63 -63
  5. package/kit/providers/_template.md +1 -1
  6. package/kit/schemas/account.schema.json +2 -2
  7. package/kit/schemas/campaign-config.schema.json +3 -3
  8. package/kit/schemas/contact.schema.json +2 -2
  9. package/kit/schemas/icp.schema.json +3 -3
  10. package/kit/schemas/lead.schema.json +2 -2
  11. package/kit/schemas/{client.schema.json → project.schema.json} +7 -7
  12. package/kit/schemas/signal.schema.json +2 -2
  13. package/kit/schemas/signals.schema.json +3 -3
  14. package/kit/skills/00-intake/SKILL.md +12 -12
  15. package/kit/skills/01-icp/SKILL.md +9 -9
  16. package/kit/skills/02-tam/SKILL.md +5 -5
  17. package/kit/skills/03-enrich/SKILL.md +1 -1
  18. package/kit/skills/04-qualify/SKILL.md +4 -4
  19. package/kit/skills/05-copy/SKILL.md +6 -6
  20. package/kit/skills/06-qa/SKILL.md +2 -2
  21. package/kit/skills/07-launch/SKILL.md +3 -3
  22. package/kit/skills/08-results/SKILL.md +4 -4
  23. package/kit/templates/campaign/brief.md +1 -1
  24. package/kit/templates/campaign/config.yaml +3 -3
  25. package/kit/templates/outputs/qa-report.md +1 -1
  26. package/kit/templates/outputs/run-log.md +1 -1
  27. package/kit/templates/outputs/weekly-report.md +1 -1
  28. package/kit/templates/{client → project}/icp.md +1 -1
  29. package/kit/templates/{client → project}/icp.yaml +2 -2
  30. package/kit/templates/{client → project}/intake.md +11 -11
  31. package/kit/templates/{client → project}/offer.md +1 -1
  32. package/kit/templates/{client → project}/personas.md +1 -1
  33. package/kit/templates/project/project.yaml +12 -0
  34. package/kit/templates/{client → project}/proof.md +1 -1
  35. package/kit/templates/{client → project}/signals.yaml +2 -2
  36. package/kit/templates/{client → project}/voice.md +1 -1
  37. package/kit/templates/repo/{CLIENT.md → PROJECT.md} +5 -5
  38. package/kit/templates/repo/README.md +9 -9
  39. package/kit/templates/repo/github/workflows/gtm-upgrade.yml +10 -12
  40. package/kit/templates/repo/github/workflows/gtm.yml +14 -8
  41. package/kit/templates/repo/package.json +1 -2
  42. package/package.json +1 -1
  43. package/kit/templates/client/client.yaml +0 -12
package/CHANGELOG.md CHANGED
@@ -5,6 +5,24 @@ All notable changes to `@veleads/gtm`. Each entry is tagged: **no action**, **op
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.3.0] - 2026-10-24
9
+ - **migration** "Clients" are now **projects**: one private repo = one project.
10
+ `client.yaml` → `project.yaml`, `CLIENT.md` → `PROJECT.md`, `client_id` → `project_id` in every YAML
11
+ file (all kinds now version 2), `owners.client_approver` → `owners.approver`, project status
12
+ `churned` → `closed`. `gtm migrate` (run by `gtm upgrade`) renames the files and keys in place,
13
+ keeping comments; existing ICP/copy approvals stay valid. New repos are named `gtm-project-<slug>`.
14
+ - **action** Approvals are recorded as name and role, e.g. `--by "Maria Chen (VP Marketing)"`.
15
+ - **action** Project repos no longer require pnpm. New repos default to npm (no `packageManager` pin),
16
+ and every command is `npx gtm <command>`. CI and `gtm upgrade` use whichever package manager the
17
+ repo's committed lockfile belongs to (npm, pnpm or yarn). Existing repos: copy the CI workflows from
18
+ `.gtm/templates/repo/github/workflows/` after upgrading.
19
+
20
+ ## [0.2.1] - 2026-10-24
21
+ - **no action** The npm package now has a README (what it is, quick start, commands, guidance for
22
+ coding agents).
23
+ - **no action** `gtm <command> --help` and `gtm help <command>` print that command's usage, what it
24
+ writes, and examples, without running it. Previously `--help` after a command ran the command.
25
+
8
26
  ## [0.2.0] - 2026-10-24
9
27
  - **action** ICP approvals are now pinned to the approved content. New `gtm approve icp --by "<name>"`
10
28
  records the sign-off with a `content_hash`; `gtm validate` fails if `context/icp.yaml` changes after
package/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # @veleads/gtm
2
+
3
+ CLI and process kit for **gtm-brain**: run outbound for many projects with one standard,
4
+ agent-agnostic process. Each project gets its own **private** git repo; this package scaffolds it,
5
+ keeps its playbooks in sync with the core, validates it, and upgrades it safely.
6
+
7
+ Works with Claude Code, Codex, or any coding agent that can read files and run shell commands.
8
+ Source: [Veleads/gtm-core](https://github.com/Veleads/gtm-core) · MIT
9
+
10
+ ## Quick start
11
+
12
+ Requires Node.js 22+. npm is enough; pnpm or yarn work too (the repo follows whichever lockfile you commit).
13
+
14
+ ```bash
15
+ npx @veleads/gtm init acme --name "Acme Corp"
16
+ cd gtm-project-acme
17
+ npm install
18
+ npx gtm status
19
+ npx gtm validate
20
+ ```
21
+
22
+ Push the new folder to a **private** repository, then open it in your coding agent. The generated
23
+ `AGENTS.md` tells the agent how to work in the repo, starting at stage `00-intake`.
24
+
25
+ ## What you get in a project repo
26
+
27
+ | Path | What | Edit? |
28
+ |---|---|---|
29
+ | `AGENTS.md` | operator manual: session start, 9-stage routing, hard stops, data rules | no, generated by `gtm sync` |
30
+ | `.gtm/` | stage playbooks (Agent Skills), templates, JSON schemas, provider docs | no, generated by `gtm sync` |
31
+ | `PROJECT.md` | project-specific rules that add to the process | yes |
32
+ | `project.yaml`, `context/` | owners, ICP (md + yaml), signals, personas, offer, proof, voice | yes |
33
+ | `campaigns/<id>/` | brief, config, copy, QA report, run logs | yes |
34
+
35
+ Stages: intake → ICP (**sign-off**) → TAM → enrich → qualify → copy (**sign-off**) →
36
+ QA → launch (**go/no-go**) → results. ICP and copy approvals are pinned to the approved content:
37
+ editing either afterwards makes `gtm validate` fail until it's re-approved.
38
+
39
+ ## Commands
40
+
41
+ Run inside a project repo as `npx gtm <command>` (whichever package manager installed it). `gtm <command> --help` shows usage, **what the
42
+ command writes**, and examples, without running it.
43
+
44
+ | Command | What it does | Writes |
45
+ |---|---|---|
46
+ | `init <slug> --name "<Name>"` | scaffold a new project repo | new folder |
47
+ | `new-campaign <slug>` | scaffold `campaigns/<slug>/` | that folder |
48
+ | `validate [campaign]` | schemas, gates, cross-references, no lead data, core sync | nothing |
49
+ | `status` | campaigns, stages, gates | nothing |
50
+ | `approve icp --by "<name>"` | record ICP sign-off, pin its hash | `context/icp.yaml` |
51
+ | `approve copy <campaign> --by "<name>"` | record copy sign-off, pin its hash | campaign `config.yaml` |
52
+ | `sync [--check]` | copy the core kit into `.gtm/` + `AGENTS.md` | `.gtm/`, `AGENTS.md` (nothing with `--check`) |
53
+ | `migrate [--dry-run]` | move YAML files to the current schema versions | YAML files |
54
+ | `upgrade [version]` | install a newer core, sync, migrate, validate, show changelog | deps, `.gtm/`, YAML |
55
+ | `job <name> <campaign>` | pipeline jobs (TAM, enrich, …) | planned, not available yet |
56
+
57
+ Exit codes: `0` success, `1` failure or validation errors.
58
+
59
+ ## For coding agents
60
+
61
+ - Inside a project repo, **read `AGENTS.md` first** and follow it; then `PROJECT.md`.
62
+ - Read-only commands are always safe: `validate`, `status`, `sync --check`, `migrate --dry-run`,
63
+ and any `--help`.
64
+ - Never edit `AGENTS.md` or `.gtm/`. Never run `gtm approve` unless a named human explicitly approved
65
+ in the session.
66
+ - `gtm job` is not available yet: stop and tell the human rather than improvising with scripts.
67
+
68
+ ## Upgrades
69
+
70
+ Project repos pin an exact version. New releases arrive as a pull request from the repo's weekly
71
+ `gtm-upgrade` workflow, or via `npx gtm upgrade`. Breaking YAML changes ship with automatic
72
+ migrations; see [CHANGELOG.md](https://github.com/Veleads/gtm-core/blob/main/CHANGELOG.md).