<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Preflight AI</title>
    <description>The latest articles on DEV Community by Preflight AI (@tamara_preflight).</description>
    <link>https://dev.to/tamara_preflight</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155714%2Fa5f9de4f-340a-43b6-bbae-28cbc0299cab.png</url>
      <title>DEV Community: Preflight AI</title>
      <link>https://dev.to/tamara_preflight</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tamara_preflight"/>
    <language>en</language>
    <item>
      <title>Preflight: human approval for Node.js GitHub agents</title>
      <dc:creator>Preflight AI</dc:creator>
      <pubDate>Thu, 01 Oct 2026 20:22:30 +0000</pubDate>
      <link>https://dev.to/tamara_preflight/preflight-human-approval-for-nodejs-github-agents-2hh</link>
      <guid>https://dev.to/tamara_preflight/preflight-human-approval-for-nodejs-github-agents-2hh</guid>
      <description>&lt;p&gt;An agent proposes a GitHub issue. A human approves it. What should happen if the title changes before execution, or the same approved request is submitted twice?&lt;/p&gt;

&lt;p&gt;Preflight Action Gate is a downloadable local kit for this specific Node.js workflow. It separates the agent credential from reviewer authority, binds approval to the stored action, rejects changed intent and blocks repeat execution.&lt;/p&gt;

&lt;p&gt;It is proprietary evaluation software, not an open-source framework.&lt;/p&gt;

&lt;p&gt;Try the actual runtime&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preflight-action-gate.temoode32.chatgpt.site/?source=dev-showdev#availability" rel="noopener noreferrer"&gt;Download the free evaluation&lt;/a&gt;, extract the ZIP, open a terminal in the extracted folder and run:&lt;/p&gt;

&lt;p&gt;node scripts/buyer-demo.js&lt;/p&gt;

&lt;p&gt;Requires Node.js 22+. The default trial needs no npm install, GitHub token, database, AI key, account or card.&lt;/p&gt;

&lt;p&gt;It calls a real local Preflight server with synthetic actions, checks 13 outcomes and creates no external issue. A successful run ends with:&lt;/p&gt;

&lt;p&gt;Successful use: 13 checks passed&lt;/p&gt;

&lt;p&gt;Inspect the manual approval flow&lt;/p&gt;

&lt;p&gt;In one terminal:&lt;/p&gt;

&lt;p&gt;node scripts/local-kit.js&lt;/p&gt;

&lt;p&gt;In another terminal, in the same folder:&lt;/p&gt;

&lt;p&gt;node examples/self-service-issue.js propose&lt;/p&gt;

&lt;p&gt;A separate reviewer inspects the returned request ID. Replace REQUEST_ID with that value:&lt;/p&gt;

&lt;p&gt;node scripts/local-review.js REQUEST_ID&lt;/p&gt;

&lt;p&gt;Inspection alone leaves the request unapproved. After inspecting the exact repository, title and body, the reviewer explicitly confirms the displayed hash. Replace both placeholders:&lt;/p&gt;

&lt;p&gt;node scripts/local-review.js REQUEST_ID --approve EXACT_INTENT_HASH&lt;/p&gt;

&lt;p&gt;Then exercise the dry-run execution:&lt;/p&gt;

&lt;p&gt;node examples/self-service-issue.js execute&lt;/p&gt;

&lt;p&gt;Run the execution command again to check replay rejection.&lt;/p&gt;

&lt;p&gt;The guides inside the archive cover the reusable SDK and role permissions.&lt;/p&gt;

&lt;p&gt;Limits that matter&lt;/p&gt;

&lt;p&gt;The supplied connector only creates GitHub issues. An agent with direct GitHub write credentials or access to operator secrets can bypass the gate; separate OS permissions are necessary.&lt;/p&gt;

&lt;p&gt;Local state and audit writes are separate, and GitHub is not part of an atomic transaction. A timeout may mean the issue already exists, so uncertain outcomes require reconciliation rather than automatic retries.&lt;/p&gt;

&lt;p&gt;A controlled connected-tool transport test created and verified a real issue. A customer's ordinary direct-token setup has not yet been independently validated.&lt;/p&gt;

&lt;p&gt;The kit is not a general prompt-injection defense, MCP firewall or compliance certification. If your framework's existing approval controls already cover your needs, use them.&lt;/p&gt;

&lt;p&gt;Availability&lt;/p&gt;

&lt;p&gt;The evaluation is free for local testing under the included license.&lt;/p&gt;

&lt;p&gt;A proposed $49 one-time license would permit ongoing use of the purchased version for one organization's internal single-host Node.js/GitHub issue workflow. Sales are not open. This offer does not include hosting or a custom integration service.&lt;/p&gt;

&lt;p&gt;Read the integration guide.&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>node</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
