Skip to content

docs: sync AGENTS.md + README.md to CLI v0.7.0 - #2

Merged
ord669 merged 2 commits into
mainfrom
docs/sync-cli-0.7.0
Apr 20, 2026
Merged

docs: sync AGENTS.md + README.md to CLI v0.7.0#2
ord669 merged 2 commits into
mainfrom
docs/sync-cli-0.7.0

Conversation

@ord669

@ord669 ord669 commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Syncs the webhook-starter-kit's AI-agent docs to CLI v0.7.0 source-of-truth. Docs-only; src/index.js (the kit code) is unchanged because the forwarder signs JSON.stringify(body) and V8 JSON.stringify is deterministic — parsed+restringified on the kit side is byte-equivalent (see forwarder/src/webhook/webhook.service.ts:251-254).

Based on a 38-gap audit (/tmp/hookmyapp-skills-audit.md — 38 gaps identified against CLI v0.7.0).

AGENTS.md

  • Add hookmyapp login --code <bootstrap> zero-browser alternative to step 2.
  • Replace 3→5 env-key mapping prose with an explicit table in Production step 4.
  • Document hookmyapp webhook set <waba-id> --verify-token <token> in step 5.
  • Rewrite the signature-verification section: the customer-facing contract is a SINGLE shape (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN) in both sandbox and production. The previous guidance that production uses X-Hub-Signature-256 keyed on Meta's APP_SECRET was wrong — the forwarder verifies Meta's signature internally and re-signs with the customer's VERIFY_TOKEN in both environments.
  • Add sandbox listen --verbose and --reinstall-tunnel-binary to the troubleshooting table.
  • Add billing and config to the "Going further" command surface list.
  • Fix --env to local|staging|production.
  • Soften unverifiable ~/.hookmyapp/ creds-path claim.

README.md

  • Soften step 2 "wizard auto-chains into `hookmyapp sandbox listen`" — the actual default is a "Next steps" print; `hookmyapp login --next sandbox` triggers explicit auto-chain.

Paired with https://github.com/hookmyapp/agent-skills (separate PR) for the matching SKILL.md rewrite.

Caveat: The 3→5 env-key mapping (WABA_ID, ACCESS_TOKEN, PHONE_NUMBER_ID) was not verified against a live `hookmyapp env ` output against a staging WABA during drafting — verify before merge.

Test plan

  • Read AGENTS.md top-to-bottom; confirm signature section no longer recommends an `APP_SECRET` verification branch.
  • Spot-check every `hookmyapp` command in the file against `hookmyapp --help` on v0.7.0.
  • Confirm `src/index.js`, `.env.example`, `package.json` are unchanged.

Summary by CodeRabbit

Documentation

  • Clarified login workflow and added a non‑browser code-paste login option for CI/AI contexts.
  • Reworked production environment mapping guidance and which values should be set vs. emitted.
  • Made webhook setup clearer, including explicit guidance on verify tokens and signature handling.
  • Unified guidance for signed webhook shape and correct request-body handling.
  • Added troubleshooting for missing request bodies and tunnel/cloud issues.
  • Updated Quick Start CLI wizard guidance and next‑steps instructions.

- AGENTS.md: add `hookmyapp login --code` alternative for zero-browser flow
- AGENTS.md: replace 3->5 env key prose with explicit mapping table (production step 4)
- AGENTS.md: document `webhook set --verify-token` for production (step 5)
- AGENTS.md: rewrite signature-verification section - universal single shape
  (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN, both sandbox and production);
  remove incorrect APP_SECRET / X-Hub-Signature-256 customer-facing claim
- AGENTS.md: add `sandbox listen --verbose` and `--reinstall-tunnel-binary` to
  troubleshooting
- AGENTS.md: add `billing` and `config` to "Going further" command surface;
  fix `--env` values to `local|staging|production`
- AGENTS.md: soften `~/.hookmyapp/` creds-path claim to "locally"
- README.md: soften "wizard auto-chains into sandbox listen" - actual default
  is "Next steps" guide; show `login --next sandbox` for explicit auto-chain

Docs-only. Kit code in src/index.js is byte-equivalent to the forwarder's
signature-signing (JSON.stringify determinism); no code change needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: faf5d08e-57d8-40b6-a75d-07f1b4bccea5

📥 Commits

Reviewing files that changed from the base of the PR and between 5a452c1 and 7f58126.

📒 Files selected for processing (1)
  • AGENTS.md
✅ Files skipped from review due to trivial changes (1)
  • AGENTS.md

📝 Walkthrough

Walkthrough

Documentation-only updates to AGENTS.md and README.md clarifying the login human-in-the-loop flow with a code-based non-browser option, revising env-variable mapping and production webhook flags (including --verify-token), and expanding signature-verification and troubleshooting guidance.

Changes

Cohort / File(s) Summary
Authentication & CLI Flow
AGENTS.md, README.md
Clarified human-in-the-loop login; added non-browser alternative hookmyapp login --code <bootstrap> and --next behavior; updated Quick Start to instruct hookmyapp login --next sandbox instead of automatic chaining.
Environment Mapping
AGENTS.md
Reworked hookmyapp env <waba-id> docs: now describes three emitted keys that must be expanded into the kit’s five .env entries; explicitly instructs hardcoding WHATSAPP_API_URL and setting VERIFY_TOKEN/PORT per kit/SIG requirements.
Webhook Configuration & Signatures
AGENTS.md
Added --verify-token <your-chosen-token> to production webhook command; explained VERIFY_TOKEN use for X-HookMyApp-Signature-256 and behavior when omitted; unified signed webhook shape for sandbox/production; clarified correct body handling (express.json() vs express.raw(...)) and removed prior guidance about a Meta APP_SECRET-based verification branch.
Troubleshooting & CLI Surface
AGENTS.md
Expanded troubleshooting rows (missing request bodies, tunnel/cloudflared issues); updated CLI help surface and global flag enum (`--env local

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Poem

🐰 I nibble notes and polish prose,
Bootstrap codes where the bright wind blows,
Tokens tucked and webhooks signed,
Docs aligned, no steps left blind,
Hooray — the rabbit hops, well-timed! 🥕✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: syncing documentation files to align with CLI v0.7.0.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/sync-cli-0.7.0

Comment @coderabbitai help to get the list of available commands and usage tips.

ord669 added a commit to hookmyapp/agent-skills that referenced this pull request Apr 20, 2026
Closes 38-gap audit between SKILL.md (v0.6.1 metadata) and CLI v0.7.0
--help output. Docs-only; no code changes.

SKILL.md:
- Bump frontmatter version 0.6.1 -> 0.7.0
- Add billing and config rows to Command Reference (alphabetized)
- Add `hookmyapp login --code <bootstrap>` zero-browser alt to Sandbox Quickstart
- Rewrite Production Quickstart step 5 with explicit 3->5 env-key mapping table
- Update Production step 6 to show `webhook set --verify-token`
- Rewrite Signature verification section - ONE shape customer-facing
  (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN, sandbox AND production);
  remove incorrect APP_SECRET / X-Hub-Signature-256 customer guidance
- Global Options: add --human, fix --env to local|staging|production, fix
  --workspace to "name, slug, or id", tighten --debug description
- Safety Rules: add `channels disable` silent-drop warning and `config set env`
  persistence warning
- Troubleshooting: add sandbox listen --verbose and --reinstall-tunnel-binary
- Sending Messages: Graph API v19.0+ -> v22.0
- Two Paths table: production has 5 env keys (same as sandbox), only VALUES
  differ

references/:
- auth.md: add --code/--phone/--wizard/--next; remove invented logout --env;
  add zero-browser + CI subsections
- channels.md: add show/disconnect/enable/disable; note no --yes on destructive;
  fix workspace-ID example from ULID to slug form; mark plan-limit exit code as
  observed
- sandbox.md: fix required->optional flags on start/env/listen/send; add
  --session/--verbose/--json/--reinstall-tunnel-binary to listen; document
  --write default ./.env + --force on env; remove per-command --workspace from
  stop (global)
- webhook.md: add --verify-token to set with full description; add rotation
  subsection covering the two-step dance
- workspace.md: fix use positional to optional + name/slug/id; add current/
  rename/members-list/members-invite/members-remove/members-role/
  invites-cancel subcommands; remove per-command --json on new (global);
  document -y/--yes on destructive subcommands; disambiguation safety note
- health.md: mark exit-code claims as observed (not enumerated in --help);
  reconcile with troubleshooting.md
- troubleshooting.md: rewrite decision-tree signature-verify branch to
  HookMyApp's VERIFY_TOKEN shape; add --verbose and --reinstall-tunnel-binary
  rows; add channels-disable row; fix signature-fails row
- sending-messages.md: v19.0 -> v22.0 (4 occurrences)
- token.md: v19.0 -> v22.0 in example curl (sanity-check alignment)
- billing.md (NEW): status/manage/upgrade reference with safety notes
- config.md (NEW): set/get/unset/show reference with persistence warning

Paired with hookmyapp/webhook-starter-kit#2 "docs: sync AGENTS.md + README.md
to CLI v0.7.0" which applies the matching AGENTS.md signature rewrite.

Audit report: /tmp/hookmyapp-skills-audit.md (38 numbered gaps).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review feedback from Codex + CodeRabbit:
- "Going further" command surface was missing `logout` (and wrongly listed
  non-existent `auth` group); align with actual `hookmyapp --help` output.
- Global `--workspace` accepts name, slug, OR id per CLI help — not id only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ord669
ord669 merged commit 2d0590d into main Apr 20, 2026
1 check passed
@ord669
ord669 deleted the docs/sync-cli-0.7.0 branch April 20, 2026 09:10
ord669 added a commit to hookmyapp/agent-skills that referenced this pull request Apr 20, 2026
* docs(skill): sync integrate-hookmyapp to CLI v0.7.0

Closes 38-gap audit between SKILL.md (v0.6.1 metadata) and CLI v0.7.0
--help output. Docs-only; no code changes.

SKILL.md:
- Bump frontmatter version 0.6.1 -> 0.7.0
- Add billing and config rows to Command Reference (alphabetized)
- Add `hookmyapp login --code <bootstrap>` zero-browser alt to Sandbox Quickstart
- Rewrite Production Quickstart step 5 with explicit 3->5 env-key mapping table
- Update Production step 6 to show `webhook set --verify-token`
- Rewrite Signature verification section - ONE shape customer-facing
  (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN, sandbox AND production);
  remove incorrect APP_SECRET / X-Hub-Signature-256 customer guidance
- Global Options: add --human, fix --env to local|staging|production, fix
  --workspace to "name, slug, or id", tighten --debug description
- Safety Rules: add `channels disable` silent-drop warning and `config set env`
  persistence warning
- Troubleshooting: add sandbox listen --verbose and --reinstall-tunnel-binary
- Sending Messages: Graph API v19.0+ -> v22.0
- Two Paths table: production has 5 env keys (same as sandbox), only VALUES
  differ

references/:
- auth.md: add --code/--phone/--wizard/--next; remove invented logout --env;
  add zero-browser + CI subsections
- channels.md: add show/disconnect/enable/disable; note no --yes on destructive;
  fix workspace-ID example from ULID to slug form; mark plan-limit exit code as
  observed
- sandbox.md: fix required->optional flags on start/env/listen/send; add
  --session/--verbose/--json/--reinstall-tunnel-binary to listen; document
  --write default ./.env + --force on env; remove per-command --workspace from
  stop (global)
- webhook.md: add --verify-token to set with full description; add rotation
  subsection covering the two-step dance
- workspace.md: fix use positional to optional + name/slug/id; add current/
  rename/members-list/members-invite/members-remove/members-role/
  invites-cancel subcommands; remove per-command --json on new (global);
  document -y/--yes on destructive subcommands; disambiguation safety note
- health.md: mark exit-code claims as observed (not enumerated in --help);
  reconcile with troubleshooting.md
- troubleshooting.md: rewrite decision-tree signature-verify branch to
  HookMyApp's VERIFY_TOKEN shape; add --verbose and --reinstall-tunnel-binary
  rows; add channels-disable row; fix signature-fails row
- sending-messages.md: v19.0 -> v22.0 (4 occurrences)
- token.md: v19.0 -> v22.0 in example curl (sanity-check alignment)
- billing.md (NEW): status/manage/upgrade reference with safety notes
- config.md (NEW): set/get/unset/show reference with persistence warning

Paired with hookmyapp/webhook-starter-kit#2 "docs: sync AGENTS.md + README.md
to CLI v0.7.0" which applies the matching AGENTS.md signature rewrite.

Audit report: /tmp/hookmyapp-skills-audit.md (38 numbered gaps).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(skill): review fixes — config get behavior, verify-token required, flag defaults

Review feedback from Codex + CodeRabbit:

- references/config.md: `config get env` doesn't error on unset; CLI returns
  the effective value (persisted OR built-in default) and exits 0. Rewrite
  the section with verified behavior + --json field semantics (value vs active).
- references/auth.md: `--wizard` flag default is `false` per `hookmyapp login
  --help`, not `true`. (Browser sign-in auto-runs the wizard — that's a
  behavior note, not a flag default.)
- references/webhook.md: soften the "401 on mismatch" claim (handler-dependent,
  not CLI-contractual); add a one-line clarifier that `--verify-token` is
  required on first-time setup but optional for URL-only rotation after.
- SKILL.md Two Paths table: distinguish sandbox `VERIFY_TOKEN` (CLI-issued
  per session) from production `VERIFY_TOKEN` (user-chosen via `webhook
  set --verify-token`) — prior cell conflated the two.
- SKILL.md Production Quickstart step 6: explicitly call out that
  `--verify-token` is REQUIRED on first-time setup (the forwarder has no
  prior token to preserve); prior wording only said it was "not desirable
  to omit".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ord669 added a commit that referenced this pull request Jul 14, 2026
* docs: sync AGENTS.md + README.md to CLI v0.7.0

- AGENTS.md: add `hookmyapp login --code` alternative for zero-browser flow
- AGENTS.md: replace 3->5 env key prose with explicit mapping table (production step 4)
- AGENTS.md: document `webhook set --verify-token` for production (step 5)
- AGENTS.md: rewrite signature-verification section - universal single shape
  (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN, both sandbox and production);
  remove incorrect APP_SECRET / X-Hub-Signature-256 customer-facing claim
- AGENTS.md: add `sandbox listen --verbose` and `--reinstall-tunnel-binary` to
  troubleshooting
- AGENTS.md: add `billing` and `config` to "Going further" command surface;
  fix `--env` values to `local|staging|production`
- AGENTS.md: soften `~/.hookmyapp/` creds-path claim to "locally"
- README.md: soften "wizard auto-chains into sandbox listen" - actual default
  is "Next steps" guide; show `login --next sandbox` for explicit auto-chain

Docs-only. Kit code in src/index.js is byte-equivalent to the forwarder's
signature-signing (JSON.stringify determinism); no code change needed.


* docs(agents): add logout + fix --workspace flag syntax

Review feedback from Codex + CodeRabbit:
- "Going further" command surface was missing `logout` (and wrongly listed
  non-existent `auth` group); align with actual `hookmyapp --help` output.
- Global `--workspace` accepts name, slug, OR id per CLI help — not id only.


---------
ord669 added a commit to hookmyapp/agent-skills that referenced this pull request Jul 14, 2026
* docs(skill): sync integrate-hookmyapp to CLI v0.7.0

Closes 38-gap audit between SKILL.md (v0.6.1 metadata) and CLI v0.7.0
--help output. Docs-only; no code changes.

SKILL.md:
- Bump frontmatter version 0.6.1 -> 0.7.0
- Add billing and config rows to Command Reference (alphabetized)
- Add `hookmyapp login --code <bootstrap>` zero-browser alt to Sandbox Quickstart
- Rewrite Production Quickstart step 5 with explicit 3->5 env-key mapping table
- Update Production step 6 to show `webhook set --verify-token`
- Rewrite Signature verification section - ONE shape customer-facing
  (X-HookMyApp-Signature-256 keyed on VERIFY_TOKEN, sandbox AND production);
  remove incorrect APP_SECRET / X-Hub-Signature-256 customer guidance
- Global Options: add --human, fix --env to local|staging|production, fix
  --workspace to "name, slug, or id", tighten --debug description
- Safety Rules: add `channels disable` silent-drop warning and `config set env`
  persistence warning
- Troubleshooting: add sandbox listen --verbose and --reinstall-tunnel-binary
- Sending Messages: Graph API v19.0+ -> v22.0
- Two Paths table: production has 5 env keys (same as sandbox), only VALUES
  differ

references/:
- auth.md: add --code/--phone/--wizard/--next; remove invented logout --env;
  add zero-browser + CI subsections
- channels.md: add show/disconnect/enable/disable; note no --yes on destructive;
  fix workspace-ID example from ULID to slug form; mark plan-limit exit code as
  observed
- sandbox.md: fix required->optional flags on start/env/listen/send; add
  --session/--verbose/--json/--reinstall-tunnel-binary to listen; document
  --write default ./.env + --force on env; remove per-command --workspace from
  stop (global)
- webhook.md: add --verify-token to set with full description; add rotation
  subsection covering the two-step dance
- workspace.md: fix use positional to optional + name/slug/id; add current/
  rename/members-list/members-invite/members-remove/members-role/
  invites-cancel subcommands; remove per-command --json on new (global);
  document -y/--yes on destructive subcommands; disambiguation safety note
- health.md: mark exit-code claims as observed (not enumerated in --help);
  reconcile with troubleshooting.md
- troubleshooting.md: rewrite decision-tree signature-verify branch to
  HookMyApp's VERIFY_TOKEN shape; add --verbose and --reinstall-tunnel-binary
  rows; add channels-disable row; fix signature-fails row
- sending-messages.md: v19.0 -> v22.0 (4 occurrences)
- token.md: v19.0 -> v22.0 in example curl (sanity-check alignment)
- billing.md (NEW): status/manage/upgrade reference with safety notes
- config.md (NEW): set/get/unset/show reference with persistence warning

Paired with hookmyapp/webhook-starter-kit#2 "docs: sync AGENTS.md + README.md
to CLI v0.7.0" which applies the matching AGENTS.md signature rewrite.

Audit report: /tmp/hookmyapp-skills-audit.md (38 numbered gaps).


* docs(skill): review fixes — config get behavior, verify-token required, flag defaults

Review feedback from Codex + CodeRabbit:

- references/config.md: `config get env` doesn't error on unset; CLI returns
  the effective value (persisted OR built-in default) and exits 0. Rewrite
  the section with verified behavior + --json field semantics (value vs active).
- references/auth.md: `--wizard` flag default is `false` per `hookmyapp login
  --help`, not `true`. (Browser sign-in auto-runs the wizard — that's a
  behavior note, not a flag default.)
- references/webhook.md: soften the "401 on mismatch" claim (handler-dependent,
  not CLI-contractual); add a one-line clarifier that `--verify-token` is
  required on first-time setup but optional for URL-only rotation after.
- SKILL.md Two Paths table: distinguish sandbox `VERIFY_TOKEN` (CLI-issued
  per session) from production `VERIFY_TOKEN` (user-chosen via `webhook
  set --verify-token`) — prior cell conflated the two.
- SKILL.md Production Quickstart step 6: explicitly call out that
  `--verify-token` is REQUIRED on first-time setup (the forwarder has no
  prior token to preserve); prior wording only said it was "not desirable
  to omit".


---------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant