chore(PF-3969): add security policy, governance model, and code of conduct - #61
Conversation
8e95192 to
dddd88a
Compare
afe5b14 to
e4605f4
Compare
e4605f4 to
9ba62ea
Compare
9ba62ea to
2bab003
Compare
29cf10f to
c24e3c8
Compare
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
|
Warning Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories. 📝 WalkthroughWalkthroughAdds governance and security documentation and tightens automated review rules: new Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsLinked repositories: Couldn't analyze 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. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
♻️ Duplicate comments (1)
CODE_OF_CONDUCT.md (1)
7-7: 🧹 Nitpick | 🔵 TrivialReporting 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
📒 Files selected for processing (6)
.coderabbit.yamlCODE_OF_CONDUCT.mdCONTRIBUTING-SKILLS.mdGOVERNANCE.mdREADME.mdSECURITY.md
c24e3c8 to
fad4073
Compare
fad4073 to
d905d9f
Compare
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
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
📒 Files selected for processing (6)
.coderabbit.yamlCODE_OF_CONDUCT.mdCONTRIBUTING-SKILLS.mdGOVERNANCE.mdREADME.mdSECURITY.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.
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
.coderabbit.yaml (1)
29-34:⚠️ Potential issue | 🔴 CriticalCritical 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
📒 Files selected for processing (1)
.coderabbit.yaml
cdcabrera
left a comment
There was a problem hiding this comment.
2 minor optional notes, pretty thorough!
| 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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
📒 Files selected for processing (2)
.coderabbit.yamlSECURITY.md
| 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 |
There was a problem hiding this comment.
🧹 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.
Summary
From AgentReady assessment (PF-3969)
SECURITY.md— vulnerability reporting policy scoped to plugin/skill concernsCODE_OF_CONDUCT.md— references Contributor Covenant v2.1Independent of AgentReady
GOVERNANCE.md— three-layer review model documenting how contributions are validated: automated review (CodeRabbit), human review, and runtime permission boundaries.coderabbit.yamlfor both SKILL.md files and bundled scriptsCONTRIBUTING-SKILLS.md— what contributors must not do (hardcoded secrets,curl | bash, permission bypass, etc.)CONTRIBUTING-SKILLS.md— points contributors to Anthropic's skill-creator eval framework for skills with structured output or external system interactionsREADME.mdlinking both docsWhat didn't we change?
Most AgentReady categories are not applicable — this repo distributes Markdown plugins, not compiled code:
Closes #54
Summary by CodeRabbit
Documentation
Chores