Skip to content
This repository was archived by the owner on Aug 11, 2026. It is now read-only.

chore(PF-3969): add security policy, governance model, and code of conduct - #61

Merged
jpuzz0 merged 5 commits into
patternfly:mainfrom
jpuzz0:PF-3969-agentready-low-hanging-fruit
Apr 29, 2026
Merged

chore(PF-3969): add security policy, governance model, and code of conduct#61
jpuzz0 merged 5 commits into
patternfly:mainfrom
jpuzz0:PF-3969-agentready-low-hanging-fruit

Conversation

@jpuzz0

@jpuzz0 jpuzz0 commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

From AgentReady assessment (PF-3969)

  • Ran AgentReady baseline assessment. Score: 39.8/100 — most "failures" are categories that don't apply to a docs/plugin repo (lock files, src/tests layout, pre-commit hooks, etc.)
  • Added SECURITY.md — vulnerability reporting policy scoped to plugin/skill concerns
  • Added CODE_OF_CONDUCT.md — references Contributor Covenant v2.1

Independent of AgentReady

  • Added GOVERNANCE.md — three-layer review model documenting how contributions are validated: automated review (CodeRabbit), human review, and runtime permission boundaries
  • Added security-specific review instructions to .coderabbit.yaml for both SKILL.md files and bundled scripts
  • Added security rules section to CONTRIBUTING-SKILLS.md — what contributors must not do (hardcoded secrets, curl | bash, permission bypass, etc.)
  • Added optional evals guidance to CONTRIBUTING-SKILLS.md — points contributors to Anthropic's skill-creator eval framework for skills with structured output or external system interactions
  • Added Security & Governance section to README.md linking both docs

What didn't we change?

Most AgentReady categories are not applicable — this repo distributes Markdown plugins, not compiled code:

  • No lock files or package.json (no npm dependencies)
  • No src/tests directories (nothing to build or unit test)
  • No pre-commit hooks, commitlint, or linter configs (we follow conventional commits by convention)
  • No ADRs (decisions tracked in issues and commits)
  • No .editorconfig (contributors write markdown skill definitions — formatting is enforced by frontmatter structure and PR review, not editor config)

Closes #54

Summary by CodeRabbit

  • Documentation

    • Added a Code of Conduct with private reporting instructions (public issues prohibited)
    • Added a Security policy for confidential vulnerability reporting, scope guidance for distributed AI plugins, and link to governance; only latest main branch supported
    • Added Governance guidance on contribution review and runtime safety guarantees
    • Updated contribution guidance with security rules and eval recommendations
    • Added Security & Governance references to the README
  • Chores

    • Enhanced automated review configuration with expanded security checks for plugins and scripts

@jpuzz0 jpuzz0 changed the title chore(PF-3969): add security, conduct, editorconfig WIP chore(PF-3969): add security, conduct, editorconfig Apr 21, 2026
@jpuzz0
jpuzz0 marked this pull request as draft April 21, 2026 01:54
coderabbitai[bot]

This comment was marked as outdated.

@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch from 8e95192 to dddd88a Compare April 21, 2026 02:03
@jpuzz0 jpuzz0 changed the title WIP chore(PF-3969): add security, conduct, editorconfig chore(PF-3969): add SECURITY.md and CODE_OF_CONDUCT.md Apr 21, 2026
@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch 3 times, most recently from afe5b14 to e4605f4 Compare April 21, 2026 02:11
@jpuzz0
jpuzz0 marked this pull request as ready for review April 21, 2026 02:15
@patternfly patternfly deleted a comment from coderabbitai Bot Apr 21, 2026
@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch from e4605f4 to 9ba62ea Compare April 21, 2026 14:56
@jpuzz0 jpuzz0 changed the title chore(PF-3969): add SECURITY.md and CODE_OF_CONDUCT.md chore(PF-3969): add security policy, code of conduct, and contribution security rules Apr 21, 2026
coderabbitai[bot]

This comment was marked as outdated.

@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch from 9ba62ea to 2bab003 Compare April 21, 2026 15:02
@jpuzz0 jpuzz0 changed the title chore(PF-3969): add security policy, code of conduct, and contribution security rules chore(PF-3969): add security policy, governance model, and code of conduct Apr 21, 2026
@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch 2 times, most recently from 29cf10f to c24e3c8 Compare April 21, 2026 15:43
@jpuzz0

jpuzz0 commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Apr 21, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@patternfly patternfly deleted a comment from coderabbitai Bot Apr 21, 2026
@coderabbitai

coderabbitai Bot commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Warning

Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories.

📝 Walkthrough

Walkthrough

Adds governance and security documentation and tightens automated review rules: new CODE_OF_CONDUCT.md, SECURITY.md, GOVERNANCE.md, updates to CONTRIBUTING-SKILLS.md and README.md, plus expanded .coderabbit.yaml checks for plugin skills and bundled scripts. (31 words)

Changes

Cohort / File(s) Summary
Code of Conduct
CODE_OF_CONDUCT.md
New contributor code of conduct (Contributor Covenant v2.1) with private reporting directive and prohibition on public-issue conduct reports.
Security Policy & README
SECURITY.md, README.md
New SECURITY.md describing private vulnerability disclosure channels, scope for distributed AI plugins (Markdown/JSON), example vulnerability types, and README.md link to security/governance docs.
Contribution Guidance
CONTRIBUTING-SKILLS.md
Adds guidance recommending optional evals for certain skills and a “Security rules” section prohibiting hardcoded secrets, permission/verification bypasses, unconfirmed exfiltration, dangerous code pipelines, and out-of-scope file access.
Governance
GOVERNANCE.md
Introduces automated + human review layers, skill structure validation, security scanning for risky script patterns, consistency checks, and runtime permission boundaries clarifying skills cannot execute autonomously.
Automated Review Config
.coderabbit.yaml
Expands auto-review rules for plugins/**/SKILL.md, plugins/**/*.{js,sh,py,ts}, and scripts/** to flag credential/secret exposure, weakening safety controls, data exfiltration instructions, hardcoded secrets/tokens, dangerous shell/script patterns (`curl

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main changes: adding security policy, governance model, and code of conduct.
Linked Issues check ✅ Passed All primary coding objectives from issue #54 are met: security policy added, governance model established, code of conduct included, and remediation documentation updated.
Out of Scope Changes check ✅ Passed All changes directly support the PR objectives and issue #54 requirements; no unrelated changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Review ran into problems

🔥 Problems

Linked repositories: Couldn't analyze patternfly/ai-helpers - clone failed: Clone operation failed: fatal: unable to access 'https://github.com/patternfly/ai-helpers.git/': Empty reply from server


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
CODE_OF_CONDUCT.md (1)

7-7: 🧹 Nitpick | 🔵 Trivial

Reporting path is still ambiguous without a concrete contact.

Please add an explicit channel (email alias or GitHub team handle) so conduct reports are actionable without guesswork.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CODE_OF_CONDUCT.md` at line 7, Update the "Report unacceptable behavior..."
line to include a concrete contact channel so reports are actionable: replace
the sentence "Report unacceptable behavior by contacting the repository
maintainers directly. Do not open a public issue for conduct reports." with a
version that lists a specific email alias or GitHub team handle (e.g.
conduct@your-org.com or `@your-org/conduct-team`) and optional instructions for
private reporting; locate the exact sentence in CODE_OF_CONDUCT.md (the line
starting with "Report unacceptable behavior by contacting the repository
maintainers directly.") and update it accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.coderabbit.yaml:
- Around line 55-59: The network-request rule in the Security checklist is too
strict for approved fixed endpoints; update the rule to support an explicit
whitelist and documented exceptions so known-safe automation (e.g., intentional
curl/JQL/jq blocks used for Jira queries) are not flagged. Modify the rule
implementation to read an approved_endpoints (or approved_services) list and
skip alerts when a network request URL matches an entry, add a short
comment/description field for each exception for auditability, and update the
Security checklist text to mention the new exceptions mechanism and where to
document approvals.
- Around line 29-34: Add a check to the security checklist block in
.coderabbit.yaml to explicitly flag hardcoded secrets/tokens/credentials in
SKILL.md (as required by CONTRIBUTING-SKILLS.md): update the checklist text to
mention “flag hardcoded secrets/tokens/credentials (API keys, passwords, private
keys, tokens, secrets in code or config)” and mark it critical, include guidance
for reviewers to block the PR or request secret rotation/removal, and add an
example pattern to help reviewers detect such cases.

In `@SECURITY.md`:
- Line 10: Update the GitLab reporting entry that currently reads "**GitLab:**
Open a confidential issue" to include the explicit confidential-issue URL/path
used by our instance (e.g., the full URL or path for creating a confidential
issue such as "/-/issues/new?confidential=true" or the complete
https://.../issues/new?confidential=true for the org repo); replace the generic
line with the exact URL and a brief note about which project or namespace to use
so reporters can open the confidential issue directly.

---

Duplicate comments:
In `@CODE_OF_CONDUCT.md`:
- Line 7: Update the "Report unacceptable behavior..." line to include a
concrete contact channel so reports are actionable: replace the sentence "Report
unacceptable behavior by contacting the repository maintainers directly. Do not
open a public issue for conduct reports." with a version that lists a specific
email alias or GitHub team handle (e.g. conduct@your-org.com or
`@your-org/conduct-team`) and optional instructions for private reporting; locate
the exact sentence in CODE_OF_CONDUCT.md (the line starting with "Report
unacceptable behavior by contacting the repository maintainers directly.") and
update it accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4fe99ac1-4613-43f2-876a-220b50ed12a9

📥 Commits

Reviewing files that changed from the base of the PR and between aa2766e and c24e3c8.

📒 Files selected for processing (6)
  • .coderabbit.yaml
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING-SKILLS.md
  • GOVERNANCE.md
  • README.md
  • SECURITY.md

Comment thread .coderabbit.yaml Outdated
Comment thread .coderabbit.yaml Outdated
Comment thread SECURITY.md
@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch from c24e3c8 to fad4073 Compare April 21, 2026 16:12
@jpuzz0
jpuzz0 force-pushed the PF-3969-agentready-low-hanging-fruit branch from fad4073 to d905d9f Compare April 21, 2026 16:31
@jpuzz0

jpuzz0 commented Apr 24, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Apr 24, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Full review triggered.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.coderabbit.yaml:
- Around line 55-59: The Security checklist text block needs a new rule ensuring
scripts don't access resources outside the target project—update the checklist
(the "Security checklist" entry) to explicitly include a check for "outside
target project" or equivalent phrasing (e.g., "scripts that access external
repositories, cloud resources, or network endpoints outside the target project")
so it matches the required rule in CONTRIBUTING-SKILLS.md; add this as a bullet
alongside the existing checks (hardcoded secrets, curl|bash, --no-verify,
unquoted variables, eval/exec, external network requests) and ensure the
language is clear and enforceable.

In `@CONTRIBUTING-SKILLS.md`:
- Around line 149-160: The "Security rules" paragraph in CONTRIBUTING-SKILLS.md
claims bundled scripts are auto-reviewed for the listed patterns but the
`.coderabbit.yaml` script checklist does not explicitly include the "access
files outside the target project without stating why" rule; update the
automation or the doc: either add that specific check to `.coderabbit.yaml`
(ensure the rule name/text matches "access files outside the target project
without stating why") so the automation enforces the doc, or edit the sentence
under the "Security rules" header to remove/qualify that claim (e.g., list only
checks that `.coderabbit.yaml` currently enforces) to keep the source-of-truth
aligned with actual automated checks.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c182ea7b-f22d-467e-bf6e-166a0dfe4e3a

📥 Commits

Reviewing files that changed from the base of the PR and between aa2766e and d905d9f.

📒 Files selected for processing (6)
  • .coderabbit.yaml
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING-SKILLS.md
  • GOVERNANCE.md
  • README.md
  • SECURITY.md

Comment thread .coderabbit.yaml Outdated
Comment thread CONTRIBUTING-SKILLS.md
Add "access to files or resources outside the target project" to the
script security checklist in .coderabbit.yaml, closing the
policy/enforcement gap flagged by CodeRabbit.
@jpuzz0
jpuzz0 requested a review from a team April 24, 2026 18:52
@jpuzz0
jpuzz0 requested review from cdcabrera and removed request for a team April 24, 2026 18:52
@jpuzz0

jpuzz0 commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
.coderabbit.yaml (1)

29-34: ⚠️ Potential issue | 🔴 Critical

Critical policy drift: SKILL.md checklist omits hardcoded credentials.

Line [30] currently flags only hardcoded secrets/tokens. The source-of-truth rule is secrets, tokens, or credentials; omitting credentials weakens automated enforcement.

🔧 Proposed patch
-        hardcoded secrets or tokens, instructions that tell the AI to disable
+        hardcoded secrets, tokens, or credentials, instructions that tell the AI to disable
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.coderabbit.yaml around lines 29 - 34, Update the SKILL.md/checklist phrase
that currently reads "hardcoded secrets or tokens" to explicitly include
credentials so it becomes "hardcoded secrets, tokens, or credentials"; locate
the string in .coderabbit.yaml (the policy checklist line containing "hardcoded
secrets or tokens") and change the wording, ensuring any matching checks,
examples, or regexes referencing that phrase are updated accordingly to cover
credentials as well.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.coderabbit.yaml:
- Around line 55-60: Update the "Security checklist" rule that currently only
flags `eval`/`exec` when used on user input so it instead flags occurrences of
`eval` and `exec` more broadly; modify the rule text and matching logic to
remove the "on user input" qualifier and add generic patterns for eval/exec
(e.g., match tokens like `\beval\s*\(`, `\bexec\s*\(`, shell usage like `eval `
and backtick/$(...) evaluations) so bundled scripts are caught even if not
explicitly tied to user input; ensure the rule name/entry "Security checklist"
and its matcher are updated accordingly.

---

Duplicate comments:
In @.coderabbit.yaml:
- Around line 29-34: Update the SKILL.md/checklist phrase that currently reads
"hardcoded secrets or tokens" to explicitly include credentials so it becomes
"hardcoded secrets, tokens, or credentials"; locate the string in
.coderabbit.yaml (the policy checklist line containing "hardcoded secrets or
tokens") and change the wording, ensuring any matching checks, examples, or
regexes referencing that phrase are updated accordingly to cover credentials as
well.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 39776285-497e-4200-8f76-feab137a5a5e

📥 Commits

Reviewing files that changed from the base of the PR and between d905d9f and abfe28d.

📒 Files selected for processing (1)
  • .coderabbit.yaml

Comment thread .coderabbit.yaml Outdated

@cdcabrera cdcabrera left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 minor optional notes, pretty thorough!

Comment thread .coderabbit.yaml
variables in shell commands, use of eval or exec, access to
files or resources outside the target project without explicit
justification, and any network requests to URLs not provided by the
user. Do not flag style or formatting.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional:

not really blocking. only thing of note is that the below - path: "scripts/**" block might also benefit from a Security checklist since scripts could include some of the same techniques

- path: "scripts/**"
      instructions: >
        Repo-level automation scripts. Review for bugs, correctness, and
        broken behavior. These generate docs and maintain repo consistency.
        Security checklist: flag hardcoded secrets, tokens, or credentials, curl piped to
        shell (curl | bash), use of --no-verify or --force flags, unquoted
        variables in shell commands, use of eval or exec, access to
        files or resources outside the target project without explicit
        justification, and any network requests to URLs not provided by the
        user. Do not flag style or formatting.

Comment thread SECURITY.md Outdated
coderabbitai[bot]
coderabbitai Bot previously requested changes Apr 29, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@SECURITY.md`:
- Around line 14-18: Update the opening scope sentence in SECURITY.md that
currently reads "This repository distributes AI coding plugins (skills and
agents) as Markdown and JSON files" to explicitly include bundled scripts and
other artifact types (e.g., "Markdown, JSON, and bundled scripts") so the scope
covers the examples in the following bullet (such as "Bundled scripts with
injection risks..."); edit that single-sentence identifier to broaden the
distribution formats and avoid the ambiguity between Lines 14–17.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5bcbdfb4-0a05-421f-8ad0-916828f77ac6

📥 Commits

Reviewing files that changed from the base of the PR and between abfe28d and 8ee7def.

📒 Files selected for processing (2)
  • .coderabbit.yaml
  • SECURITY.md

Comment thread SECURITY.md
Comment on lines +14 to +18
This repository distributes AI coding plugins (skills and agents) as Markdown and JSON files. Security concerns may include:

- Skills that instruct the AI to disable permissions or skip verification
- Bundled scripts with injection risks or unsafe command patterns
- Exposure of secrets, tokens, or credentials in skill definitions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Nitpick: align scope wording with bundled script coverage.

Line 14 says distribution is Markdown/JSON, but Line 17 explicitly includes bundled scripts. Consider broadening the scope sentence to avoid policy ambiguity.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@SECURITY.md` around lines 14 - 18, Update the opening scope sentence in
SECURITY.md that currently reads "This repository distributes AI coding plugins
(skills and agents) as Markdown and JSON files" to explicitly include bundled
scripts and other artifact types (e.g., "Markdown, JSON, and bundled scripts")
so the scope covers the examples in the following bullet (such as "Bundled
scripts with injection risks..."); edit that single-sentence identifier to
broaden the distribution formats and avoid the ambiguity between Lines 14–17.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AgentReady: ai-helpers — assess + low-hanging fruit

2 participants