pr — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pr (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Model-neutral helper for GitHub PR workflow operations including creating PRs with auto-generated content, checking CI status, linking PRs to issues, polling for and addressing review comments, tracking PRs you're working on, and saving PR notes to memory.
Use when the user says: "create pr", "pr create", "pr checks", "check pr", "pr link", "link pr", "link pr to issue", "pr poll", "poll pr", "pr address", "address comments", "pr comments", "view comments", "watch pr", "unwatch pr", "watching", "what prs am i watching", "pr status", "pr remember", "remember pr", "save pr note".
Create a PR with auto-generated body, issue linking, and auto-watch:
# Create PR from current branch (auto-detects base branch and linked issues)
lisa pr create
# Create PR linking to specific issues
lisa pr create --issue 40 --issue 41
# Create PR with custom title and base branch
lisa pr create --title "feat: add pr create command" --base develop
# Create as draft PR
lisa pr create --draft
# Skip auto-watching the PR
lisa pr create --no-watch
# Skip commenting on linked issues
lisa pr create --no-comment
# Output as JSON
lisa pr create --jsonFeatures:
15, 15-description, feature/15, issue-15, fix/#15)Closes #N)PR: #NCLOSES) between PR and issuesOutput:
Created PR #51: https://github.com/owner/repo/pull/51
Linked issues: #40Get the current status of CI checks for a PR:
# Check current repo's PR
lisa pr checks <PR_NUMBER>
# Check specific repo's PR
lisa pr checks <PR_NUMBER> --repo owner/repo
# Output as JSON
lisa pr checks <PR_NUMBER> --jsonOutput:
PR #50 Checks
fix(github): prevent shell injection in GithubClient
✅ 2 passed, 0 failed
✓ ci/build
✓ security/gitguardianFetch and display PR review comments with triage status:
# View all comments
lisa pr comments <PR_NUMBER>
# View only pending comments
lisa pr comments <PR_NUMBER> --filter pending
# View only addressed comments
lisa pr comments <PR_NUMBER> --filter addressed
# Output as JSON
lisa pr comments <PR_NUMBER> --jsonOutput:
PR: fix(github): prevent shell injection in GithubClient
Comments: 4 total (2 pending, 1 addressed, 1 resolved)
src/lib/infrastructure/github/GithubClient.ts
:red_circle: Line:365 - @coderabbitai
"Shell injection risk in command argument construction..."
:yellow_circle: Line:138 - @coderabbitai (addressed)
"The current escaping only handles double quotes..."Comment Status:
Start tracking a PR for updates (used by polling system):
# Watch a PR in current repo
lisa pr watch <PR_NUMBER>
# Watch a PR in specific repo
lisa pr watch <PR_NUMBER> --repo owner/repoOutput:
Now watching PR #50: fix(github): prevent shell injection in GithubClientStop tracking a PR:
lisa pr unwatch <PR_NUMBER>Create a CLOSES relationship between a PR and an issue:
# Link PR to issue in current repo
lisa pr link <PR_NUMBER> <ISSUE_NUMBER>
# Link in specific repo
lisa pr link <PR_NUMBER> <ISSUE_NUMBER> --repo owner/repo
# Skip commenting on the GitHub issue
lisa pr link <PR_NUMBER> <ISSUE_NUMBER> --no-comment
# Output as JSON
lisa pr link <PR_NUMBER> <ISSUE_NUMBER> --jsonFeatures:
CLOSES relationship in Neo4j--no-comment)alreadyLinked: trueOutput:
✓ Linked PR #28 to Issue #15
PR: https://github.com/owner/repo/pull/28
Issue: https://github.com/owner/repo/issues/15Already linked:
⚠ PR #28 is already linked to Issue #15Save notes, decisions, or learnings about a PR to memory:
# Save a note about a PR
lisa pr remember 50 "Learned to always reply inline to review comments"
# Save a note for a specific repo
lisa pr remember 50 "Key decision: use factory pattern" --repo owner/repo
# Output as JSON
lisa pr remember 50 "Important learning" --jsonFeatures:
github:pr and github:pr:<number> for retrievalOutput:
✓ Saved note for PR #50
Fact: PR #50 (Fix auth bug): Learned to always reply inline to review comments
Tags: github:pr, github:pr:50PR workflow integrates with Lisa's memory system for automatic knowledge capture:
Auto-capture on merge: When a watched PR is merged, it is automatically saved to memory with the github:pr-merged tag. This happens during lisa pr poll when the PR status changes to merged (requires memory to be configured).
Retrieve PR memories:
# Search for PR-related memories
lisa memory load --query "PR merged"
# Load recent memories (PR notes will have github:pr tags)
lisa memory load --cacheTags:
github:pr - General PR memorygithub:pr:<number> - Specific PR (e.g., github:pr:50)github:pr-merged - Auto-captured merged PRSee all PRs you're currently watching:
# List all watched PRs
lisa pr watching
# Filter by repo
lisa pr watching --repo owner/repo
# Output as JSON
lisa pr watching --jsonOutput:
Watching 3 PR(s)
:green_circle: #50 fix(github): prevent shell injection in GithubClient
TonyCasey/lisa :white_check_mark:
:green_circle: #49 feat(dal): add PR entity types and Neo4j repository
TonyCasey/lisa :white_check_mark:
:purple_circle: #48 feat: add session compaction detection
TonyCasey/lisa :white_check_mark: (merged)PR Status Indicators:
Checks Indicators:
Monitor a PR for new review comments with auto-address support:
# Poll a PR (auto-address enabled by default)
lisa pr poll <PR_NUMBER>
# Poll without auto-address output
lisa pr poll <PR_NUMBER> --no-auto-address
# Output as JSON
lisa pr poll <PR_NUMBER> --jsonFeatures:
Output:
PR #50: fix(github): prevent shell injection
New comments: 2
src/lib/GithubClient.ts:365
@coderabbitai: "Shell injection risk in command argument..."Get formatted instructions for addressing specific comments:
# Get address instructions for a PR
lisa pr address <PR_NUMBER>
# Include more context lines around the code
lisa pr address <PR_NUMBER> --context 10The recommended workflow for handling PR review comments:
lisa pr poll 50Add an 👀 (eyes) emoji reaction to show you've seen the comment:
gh api repos/owner/repo/pulls/comments/COMMENT_ID/reactions -X POST -f content="eyes"Reply inline explaining what was done:
gh api repos/owner/repo/pulls/comments/COMMENT_ID/replies -X POST -f body="Fixed in commit abc123 - added try/catch with proper error logging"git push
lisa pr poll 50Continue polling and addressing comments until:
Example session:
# Create PR and start watching
lisa pr create
# -> Created PR #50
# Poll for review comments
lisa pr poll 50
# -> New comment from @reviewer on line 42
# Acknowledge with eyes emoji
gh api repos/owner/repo/pulls/comments/12345/reactions -X POST -f content="eyes"
# Fix the code
vim src/file.ts
git add . && git commit -m "fix: add error handling per review"
git push
# Reply to the comment
gh api repos/owner/repo/pulls/comments/12345/replies -X POST -f body="Added try/catch - fixed in abc123"
# Poll again for response
lisa pr poll 50
# -> Comment resolved by reviewer{
"success": true,
"message": "Created PR #51: https://github.com/owner/repo/pull/51",
"pr": {
"number": 51,
"url": "https://github.com/owner/repo/pull/51",
"title": "feat: add pr create command",
"repo": "owner/repo"
},
"linkedIssues": [40, 41],
"body": "## Summary\n- feat: add feature\n\n## Linked Issues\nCloses #40\nCloses #41"
}{
"repo": "owner/repo",
"prNumber": 50,
"title": "PR title",
"overallStatus": "success",
"checks": [
{"name": "ci/build", "status": "success", "detailsUrl": "..."}
],
"summary": ":white_check_mark: 2 passed, 0 failed"
}{
"repo": "owner/repo",
"prNumber": 50,
"title": "PR title",
"comments": [
{
"id": 12345,
"file": "src/file.ts",
"line": 42,
"author": "reviewer",
"body": "Comment text",
"status": "pending",
"htmlUrl": "..."
}
],
"summary": {"total": 4, "pending": 2, "addressed": 1, "resolved": 1}
}{
"action": "list",
"success": true,
"message": "Watching 3 PR(s)",
"watchedPrs": [
{
"number": 50,
"repo": "owner/repo",
"title": "PR title",
"status": "open",
"checksStatus": "success",
"unresolvedComments": 2,
"watchingSince": "2026-01-26T10:00:00Z"
}
]
}{
"action": "poll",
"success": true,
"repo": "owner/repo",
"prNumber": 50,
"title": "PR title",
"hasNewComments": true,
"newCommentCount": 2,
"comments": [
{
"id": 12345,
"file": "src/file.ts",
"line": 42,
"author": "reviewer",
"body": "Comment text",
"status": "pending"
}
],
"addressOutput": "## PR #50 Comments\n\n### src/file.ts:42\n..."
}{
"action": "address",
"success": true,
"repo": "owner/repo",
"prNumber": 50,
"title": "PR title",
"pendingComments": [
{
"id": 12345,
"file": "src/file.ts",
"line": 42,
"author": "reviewer",
"body": "Comment text",
"codeContext": "function example() {\n // line 42\n}"
}
],
"formattedOutput": "..."
}{
"success": true,
"message": "Linked PR #28 to Issue #15",
"pr": {
"number": 28,
"repo": "owner/repo",
"title": "Fix authentication bug",
"url": "https://github.com/owner/repo/pull/28"
},
"issue": {
"number": 15,
"repo": "owner/repo",
"title": "Authentication fails on mobile",
"url": "https://github.com/owner/repo/issues/15"
},
"alreadyLinked": false
}{
"success": true,
"message": "Saved note for PR #50",
"pr": {
"number": 50,
"repo": "owner/repo",
"title": "Fix auth bug"
},
"fact": "PR #50 (Fix auth bug): Learned to always reply inline",
"tags": ["github:pr", "github:pr:50"]
}/github - For GitHub Issues, Projects, version bumping, and CI retriggers~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.