delimit_substantive_content_check
Validates draft body for autonomous GitHub outreach, blocking forbidden phrases and enforcing technical anchors, minimum length, and target-repo keyword vetoes.
Instructions
Pre-submit gate for autonomous github outreach (LED-2214b).
When to use: as the LAST step before any agent submits a comment, issue body, or PR description to a third-party github repo via the outreach_substantive task path. Mandatory under CLAUDE.md SHIFT-1; bypass requires explicit founder approval. When NOT to use: for internal repo content, for posts on platforms other than github, or for non-outreach submissions (use the surface's own validators instead).
Sibling contrast: delimit_external_pr_check guards PR duplication; this guards the substantive-content boundary itself. For a PR submission the agent calls BOTH — this one first to refuse covert-commercial drafts, then external_pr_check to refuse duplicates.
Side effects: read-only. Pure validator over the body string and target metadata; no network, no ledger writes, no notifications.
The gate runs in two stages:
Target-side veto — if repo / repo_description / repo_topics contain a banking / fintech / regulator-adjacent keyword, the gate blocks regardless of content quality (SHIFT-1 hard veto; KYC would deanonymize the operating account).
Content shape — bans forbidden phrases (incl. our own product names), requires at least one technical anchor (commit hash, issue number, CVE, spec path, source file path), enforces minimum body length.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The draft body to validate. Required. | |
| proposed_action | No | "comment", "issue", or "pr". Default "comment". | comment |
| repo | No | Target "owner/name" if known (used in target veto). | |
| repo_description | No | Repo description string (target veto). | |
| repo_topics | No | List of repo topic tags (target veto). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||