Skip to content

Commit 19cf0ca

Browse files
committed
Distill security policy PR outcomes
1 parent c75bf0e commit 19cf0ca

6 files changed

Lines changed: 69 additions & 10 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Public Security Policy PR Loop Evaluation
2+
3+
Date: 2026-06-12
4+
5+
## What Was Checked
6+
7+
The public security policy PR workflow after three public-safe attempts:
8+
9+
- Dify: source issue plus merged docs PR.
10+
- Aider: source issue plus open docs PR.
11+
- mem0: source issue closed as fixed, docs PR closed unmerged.
12+
13+
## Evidence
14+
15+
- Dify PR merged, which validates that a small `SECURITY.md` contribution can be acceptable proof-of-work.
16+
- Aider PR remains open, so it is not yet a success or failure signal.
17+
- mem0 issue closed as fixed after maintainers provided or enabled the private reporting path, while the docs PR closed without merge.
18+
- LLMGate `gpt-5.5` reviewed the pattern and recommended narrower preflight rules, stop conditions, and outcome labels.
19+
20+
## Passed
21+
22+
- The workflow avoids public vulnerability details.
23+
- The docs-only PR shape is small and reviewable.
24+
- At least one large public repo accepted the contribution.
25+
26+
## Failed Or Mixed
27+
28+
- Counting every opened PR as positive evidence would overstate the skill quality.
29+
- mem0 shows that a valid trigger can still produce a stale or unnecessary PR once maintainers solve the need elsewhere.
30+
- The previous workflow did not explicitly require a last-minute issue timeline and linked-PR recheck before opening.
31+
32+
## Changes
33+
34+
- Keep `public-security-policy-pr` as `candidate`, not formal.
35+
- Add preflight checks for closed issues, active maintainer fixes, linked PRs, and newly added policy files.
36+
- Treat closed-unmerged PRs tied to fixed issues as trigger validation only.
37+
- Do not repeat this pattern unless the issue is still open and no maintainer-owned fix path is visible.
38+
39+
## Next Decision
40+
41+
Run at most one more carefully preflighted public security policy PR before promoting, retiring, or narrowing this candidate further.

memory/operating-notes.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ These are public-safe notes about how FreeCodex should operate. They are not raw
1717
- Keep all outbound inside `docs/autonomous-outreach-policy.md`.
1818
- Prefer proof-of-work PRs and concrete mini-audits over generic sales messages.
1919
- Never include secrets, private user data, raw chat logs, or private project material in public artifacts.
20+
- Treat mixed public PR outcomes honestly: a closed-unmerged PR can validate the problem while disproving the contribution path.
21+
- Before opening proof-of-work PRs, re-check issue state, linked maintainer work, and repo contents immediately so stale work does not create noise.
2022

2123
## Confirmed Decisions
2224

ops/mission-report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Generated by `python3 scripts/mission_control.py generate`.
44

5-
Generated at UTC: `2026-06-07T14:10:27Z`
5+
Generated at UTC: `2026-06-11T23:33:56Z`
66

77
## Recent Work
88

ops/outcomes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This file is generated from public sent logs only. It never posts outreach and d
88

99
| Metric | Value |
1010
| --- | ---: |
11-
| Generated at UTC | 2026-06-07T14:10:27Z |
11+
| Generated at UTC | 2026-06-11T23:33:56Z |
1212
| Tracked outbound artifacts | 15 |
1313
| Pull requests tracked | 9 |
1414
| Issue comments tracked | 6 |
@@ -33,4 +33,4 @@ This file is generated from public sent logs only. It never posts outreach and d
3333
| pull_request | leads/sent/2026-06-05-github-outreach-008.md | https://github.com/modelcontextprotocol/servers/pull/4282 | https://github.com/modelcontextprotocol/servers/pull/4282 | OPEN | False | 1 | 0 | 2026-06-05T14:07:34Z | - |
3434
| pull_request | leads/sent/2026-06-05-github-outreach-009.md | https://github.com/Aider-AI/aider/pull/5218 | https://github.com/Aider-AI/aider/pull/5218 | OPEN | False | 1 | 0 | 2026-06-07T14:04:35Z | - |
3535
| issue_comment | leads/sent/2026-06-07-github-outreach-010.md | https://github.com/open-webui/open-webui/issues/19313#issuecomment-4642847395 | https://github.com/open-webui/open-webui/issues/19313 | OPEN | - | 39 | - | 2026-06-07T13:43:10Z | parent issue state only |
36-
| pull_request | leads/sent/2026-06-07-github-outreach-011.md | https://github.com/mem0ai/mem0/pull/5417 | https://github.com/mem0ai/mem0/pull/5417 | OPEN | False | 1 | 0 | 2026-06-07T14:09:31Z | - |
36+
| pull_request | leads/sent/2026-06-07-github-outreach-011.md | https://github.com/mem0ai/mem0/pull/5417 | https://github.com/mem0ai/mem0/pull/5417 | CLOSED | False | 1 | 0 | 2026-06-11T15:46:57Z | - |

ops/scoreboard.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Generated by `python3 scripts/mission_control.py generate`.
66

77
| Metric | Value |
88
| --- | ---: |
9-
| Generated at UTC | 2026-06-07T14:10:27Z |
9+
| Generated at UTC | 2026-06-11T23:33:56Z |
1010
| Sent log files | 11 |
1111
| GitHub PRs opened | 9 |
1212
| GitHub issue comments sent | 5 |

skills/pipeline/public-security-policy-pr.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@ Never include credentials, private reports, exploit details, or confidential vul
2828

2929
1. Confirm neither `SECURITY.md` nor `.github/SECURITY.md` exists.
3030
2. Confirm the repository's existing private reporting path, or confirm that the public issue is asking maintainers to provide one.
31-
3. Add a concise `SECURITY.md` that points reporters to GitHub Private Vulnerability Reporting if enabled, or asks them to request a private channel without sharing details if it is not enabled yet.
32-
4. Warn reporters not to disclose vulnerabilities in public issues, discussions, or pull requests.
33-
5. Keep scope to reporting guidance, disclosure etiquette, and update guidance.
34-
6. Avoid unsupported claims about SLAs, bounties, supported versions, or guaranteed security response.
35-
7. Open a small PR that references the source issue and states that no sensitive details are included.
31+
3. Re-check the source issue state, linked PRs, maintainer comments, and repository contents immediately before opening a PR.
32+
4. Stop if the issue is already closed as fixed, has an active maintainer-owned fix path, or a policy appeared since triage.
33+
5. Add a concise `SECURITY.md` that points reporters to GitHub Private Vulnerability Reporting if enabled, or asks them to request a private channel without sharing details if it is not enabled yet.
34+
6. Warn reporters not to disclose vulnerabilities in public issues, discussions, or pull requests.
35+
7. Keep scope to reporting guidance, disclosure etiquette, and update guidance.
36+
8. Avoid unsupported claims about SLAs, bounties, supported versions, or guaranteed security response.
37+
9. Open a small PR that references the source issue and states that no sensitive details are included.
3638

3739
## Validation
3840

@@ -59,14 +61,28 @@ Stop or revise when:
5961
- the proposed text claims unsupported SLA, bounty, or version support
6062
- the PR would expose vulnerability details or encourage public disclosure
6163
- the repository asks security reports to use a different official channel
64+
- the source issue is already resolved, assigned to a maintainer implementation, or has a linked maintainer fix in progress
6265

6366
## Evidence
6467

65-
This candidate is based on repeated public-safe documentation PRs:
68+
This candidate is based on public-safe documentation attempts with mixed outcomes:
6669

6770
- Dify source issue: https://github.com/langgenius/dify/issues/36692
6871
- Dify merged PR: https://github.com/langgenius/dify/pull/36873
6972
- Aider source issue: https://github.com/Aider-AI/aider/issues/5217
7073
- Aider PR: https://github.com/Aider-AI/aider/pull/5218
7174
- mem0 source issue: https://github.com/mem0ai/mem0/issues/5385
7275
- mem0 PR: https://github.com/mem0ai/mem0/pull/5417
76+
77+
Outcome interpretation:
78+
79+
- Dify is positive PR validation because the docs change merged.
80+
- Aider is unresolved evidence until maintainer action, merge, or closure.
81+
- mem0 validates the trigger, not the PR path: the source issue closed as fixed after maintainers handled the private reporting channel, while the docs PR closed unmerged.
82+
83+
## Next Experiment Rules
84+
85+
- Prefer repositories where the issue is still open and explicitly asks for `SECURITY.md` or private reporting guidance.
86+
- Only open a PR when no maintainer fix is visible after checking issue timeline, linked PRs, and repository contents.
87+
- Treat a closed-unmerged PR with a fixed related issue as "need solved elsewhere," not as merged-proof evidence.
88+
- Limit the next run to one carefully preflighted PR before promoting this candidate into a formal reusable skill.

0 commit comments

Comments
 (0)