This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git


The following commit(s) were added to refs/heads/main by this push:
     new f591c15  feat(security-cve-allocate): title-only allocation recipe 
(#110)
f591c15 is described below

commit f591c158f25e0ae5a07aaea9ab024ce5d40bc5ba
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sun May 10 23:49:24 2026 +0200

    feat(security-cve-allocate): title-only allocation recipe (#110)
    
    The Vulnogram allocation form accepts a bare title — product /
    packageName, CWE, affected versions, summary, and reporter
    credits are all easier to set correctly during the Step 6
    `security-issue-sync` handoff after the tracker body has settled.
    Drop them from the Step 3 paste-into-form recipe (and from the
    non-PMC relay message), refresh the scope-label blocker
    rationale so it reflects the new model (still surfaced up front
    because sync depends on it; no longer because allocation does),
    and add an explicit "Allocation is title-only" note that points
    the user at where the remaining fields land.
    
    Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
---
 .claude/skills/security-cve-allocate/SKILL.md | 55 +++++++++++++--------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/.claude/skills/security-cve-allocate/SKILL.md 
b/.claude/skills/security-cve-allocate/SKILL.md
index c6a34f9..4d8a9e2 100644
--- a/.claude/skills/security-cve-allocate/SKILL.md
+++ b/.claude/skills/security-cve-allocate/SKILL.md
@@ -254,10 +254,14 @@ Blocker checks — if any fail, stop and surface the 
failure:
 - **Scope label set.** The CVE record's `product` / `packageName`
   fields depend on the scope (`airflow` → `apache-airflow`,
   `providers` → `apache-airflow-providers-<name>`,
-  `chart` → `apache-airflow-helm-chart`). If no scope label is
-  set, stop and ask the user to confirm the scope before allocating
-  — it is **much** easier to set the right product at allocation
-  time than to correct it after the Vulnogram record has a CVE ID.
+  `chart` → `apache-airflow-helm-chart`). Allocation itself is
+  title-only and does not need the scope label, but the Step 4
+  CVE-JSON regeneration and the Step 6 sync handoff both depend on
+  it — without a scope the product / packageName cannot be mapped
+  and the record-update push that follows will be blocked. Surface
+  it as a blocker here so the user fixes it once, up front, instead
+  of being interrupted mid-flow after the CVE has already been
+  allocated.
 - **Not still `needs triage`.** If `needs triage` is still on the
   tracker, the valid/invalid decision has not been landed yet —
   allocating now would be premature. Surface as a soft warning and
@@ -349,35 +353,30 @@ one copy-paste pass:
    <stripped title>
    ```
 
-3. Fill in the rest of the form from the tracker body — the key
-   fields and where the skill reads them from:
-   - **Product**: `<product, derived from scope — see table below>`
-   - **CWE**: `<body.CWE if set, else "_No response_ — set during 
allocation"`>`
-   - **Affected versions**: `<body.Affected versions>`
-   - **Summary**: `<body.Short public summary for publish>`
-   - **Reporter credits**: `<body.Reporter credited as>`
-4. Click *Allocate*. Vulnogram returns a `CVE-YYYY-NNNNN` ID.
-5. Paste the allocated CVE ID back into this conversation — the
+3. Click *Allocate*. Vulnogram returns a `CVE-YYYY-NNNNN` ID.
+4. Paste the allocated CVE ID back into this conversation — the
    skill will pick it up and update the tracker automatically.
 ````
 
-Scope → Vulnogram product table: the adopting project's scope labels
-and their CVE product / package-name mappings are defined in
-[`<project-config>/scope-labels.md`](../../../<project-config>/scope-labels.md).
-Read the label off the tracker and look up the matching product /
-`packageName` there.
-
-Note in the recipe which provider / chart / task-sdk is involved
-when the scope is not bare `airflow`, so the user does not have to
-re-infer it from the tracker body at paste time.
+**Allocation is title-only.** Every other CVE-record field —
+product / `packageName`, CWE, affected versions, public summary,
+reporter credits, references — is populated later: Step 4 of this
+skill regenerates the CVE JSON from the tracker body, Step 6 hands
+off to [`security-issue-sync`](../security-issue-sync/SKILL.md) to
+reconcile the surrounding state, and the
+[`vulnogram-api-record-update`](../../../tools/vulnogram/oauth-api/README.md)
+push that follows writes the full record into Vulnogram. Do not
+ask the user to paste those fields into the allocation form — the
+form accepts a bare title and they are easier to set correctly
+during sync, after the tracker body is in its final shape.
 
 **Before printing the recipe**, ask the user *"are you an Airflow
 PMC member?"* — a one-line yes/no question. This determines which
 of two handoff paths the recipe describes:
 
 - **User is a PMC member** — the recipe is self-service: click the
-  URL, paste the stripped title, fill the form, hit *Allocate*,
-  paste the allocated `CVE-YYYY-NNNNN` back into this conversation.
+  URL, paste the stripped title, hit *Allocate*, paste the allocated
+  `CVE-YYYY-NNNNN` back into this conversation.
 - **User is NOT a PMC member** — the ASF CVE tool will not let them
   submit the allocation. Reshape the recipe into a **relay message**
   the user posts as a comment on the tracker (``@``-mentioning one
@@ -389,13 +388,13 @@ of two handoff paths the recipe describes:
   contains only:
   - the clickable allocation URL,
   - the stripped title (ready for the Vulnogram form),
-  - the derived scope / product / package-name block from Step 2,
   - one line: *"Paste the allocated `CVE-YYYY-NNNNN` back here when
     done."*
 
-  Do not restate the vulnerability, the assessment history, or the
-  handling process in the relay — the PMC member can read the
-  tracker for any of that.
+  Do not restate the vulnerability, the assessment history, the
+  scope/product mapping, or the handling process in the relay — the
+  PMC member can read the tracker for any of that, and the
+  product / packageName lands during sync anyway.
 
 The relay message is just markdown — it does not go to Vulnogram
 directly. The PMC member reads the message, clicks through, fills

Reply via email to