From bfcf74e0b5b16fd2643267b29a8ba6efbcf314f4 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Date: Sat, 1 Aug 2026 15:01:16 -0400 Subject: [PATCH] Adopt ai-flow proposal checks (origin-firing) on learning PRs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dev carries repo-tier learning proposals (e.g. #77) but had no proposal verification — only the index-hygiene test. Copies the canonical caller from ai-flow/templates/proposal-checks.yml, same as the knowledge repo; structure-only and unmarked PRs skip green. Co-authored-by: Cursor --- .github/workflows/proposal-checks.yml | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/proposal-checks.yml diff --git a/.github/workflows/proposal-checks.yml b/.github/workflows/proposal-checks.yml new file mode 100644 index 0000000..052eb52 --- /dev/null +++ b/.github/workflows/proposal-checks.yml @@ -0,0 +1,29 @@ +# ai-flow proposal checks — copy to .github/workflows/proposal-checks.yml +# in the org knowledge repo (and any repo whose learning proposals should be +# verified). Requires the same org secrets as the caller workflow +# (CURSOR_API_KEY, AI_FLOW_APP_ID, AI_FLOW_APP_PRIVATE_KEY — this repo must be +# in each secret's selected-repos list) and a self-hosted runner labeled +# ai-learn. +# +# The origin-firing check (d3mlabs/ai-flow docs/paper.md §6.2): a proposed +# learning must fire on the context it was distilled from. Runs on every PR — +# GitHub draft state included, which is the point: the verdict lands while +# the human gate is still deciding. Structure-only and unmarked PRs skip +# green. +name: proposal-checks + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: read + pull-requests: read + +jobs: + origin-firing: + uses: d3mlabs/ai-flow/.github/workflows/origin-firing.yml@main + secrets: + CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }} + AI_FLOW_APP_ID: ${{ secrets.AI_FLOW_APP_ID }} + AI_FLOW_APP_PRIVATE_KEY: ${{ secrets.AI_FLOW_APP_PRIVATE_KEY }}