polish-claw-project
About
This skill provides a structured 9-step workflow for contributing security-focused code reviews and fixes to the OpenClaw ecosystem repositories. It emphasizes parallel auditing, false positive prevention, and cross-referencing findings with existing issues to identify high-impact changes. Use it when you want to systematically audit and submit pull requests to projects like NVIDIA/OpenClaw or NVIDIA/NemoClaw.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/polish-claw-projectCopy and paste this command in Claude Code to install this skill
Documentation
Polish Claw Project
Structured workflow for OpenClaw ecosystem contributions. Novel value: Steps 5-7 — parallel audit, false positive prevention, cross-ref findings vs open issues → high-impact picks. Mechanical steps (fork, PR) → existing skills.
Use When
- Contribute to NVIDIA/OpenClaw, NVIDIA/NemoClaw, NVIDIA/NanoClaw, similar Claw repos
- First-time contributions to unfamiliar OSS w/ security-sensitive arch
- Want repeatable auditable workflow vs ad-hoc fixes
- Found Claw project accepting external contributions (check CONTRIBUTING.md)
In
- Required:
repo_url— GitHub URL of target Claw project (e.g.,https://github.com/NVIDIA/NemoClaw) - Optional:
contribution_count— n contributions (default: 1-3)focus—security,tests,docs,bugs,any(default:any)fork_org— fork target org/user (default: authenticated user)
Do
Step 1: Identify + Verify Target
Confirm project accepts external + actively maintained.
- Read
CONTRIBUTING.md,CODE_OF_CONDUCT.md,LICENSE - Check recent commit activity (last 30 days) + open PR merge rate
- Verify permissive or contribution-friendly license
- Read
SECURITY.mdif present → note disclosure rules - Identify primary language, test framework, CI
→ CONTRIBUTING.md exists, commits w/in 30 days, clear contribution guidelines.
If err: no CONTRIBUTING.md or no recent activity → doc why + stop. Stale projects rarely merge external PRs.
Step 2: Fork + Clone
Working copy of repo.
- Fork:
gh repo fork <repo_url> --clone - Upstream remote:
git remote add upstream <repo_url> - Verify:
git remote -vshowsorigin(fork) +upstream - Sync:
git fetch upstream && git checkout main && git merge upstream/main
→ Local clone w/ both remotes configured + up to date.
If err: fork fails → check gh auth status. Slow clone → --depth=1 for initial explore.
Step 3: Explore Codebase
Build mental model of arch.
- Read
README.mdfor arch overview + goals - ID entry points, core modules, public API surface
- Map test structure: where tests, framework, coverage
- Note style conventions: linter config, naming, import style
- Check Docker/container, CI config, deployment patterns
→ Clear understanding of structure, conventions, where contributions fit.
If err: arch unclear → focus on subsystem not whole project.
Step 4: Read Open Issues
Survey issues → understand needs + avoid duplicate work.
- List:
gh issue list --state open --limit 50 - Categorize: bugs, features, docs, security, good-first-issue
- Note
help wanted,good first issue,hacktoberfestlabels - Stale issues (>90 days, no recent comments) → may be abandoned
- Read linked PRs → understand attempted solutions
→ Categorized unclaimed issues w/ type labels.
If err: no open issues → Step 5, audit may uncover unlisted improvements.
Step 5: Parallel Audit
Run security + quality audits in parallel. Where novel findings emerge.
- Run
security-audit-codebaseagainst project root - Simultaneously run
review-codebasew/ scopequality - Critical: verify each finding vs project's threat model + arch
- "Hardcoded secret" in sandbox bootstrap = not vuln
- Missing input validation on internal-only fn = low severity
- Dep flagged vulnerable may already be mitigated by arch
- Rate verified: CRITICAL, HIGH, MEDIUM, LOW
- Doc false positives w/ reasoning → informs Pitfalls for future runs
→ Verified findings list w/ severity + false positive annotations.
If err: no findings → shift to test coverage gaps, docs, dev experience.
Step 6: Cross-Reference Findings
Map verified findings → open issues. Core judgment step.
- Per finding, search open issues for related discussions
- Categorize:
- Matches open issue — link finding to issue
- New finding — no existing issue
- Already fixed in PR — check open PRs for in-progress fixes
- Prioritize matching issues (highest merge prob)
- New findings → assess if maintainers welcome based on priorities
→ Prioritized list w/ finding-to-issue map + merge prob assessment.
If err: all findings already addressed → return Step 4, look for docs, tests, dev experience.
Step 7: Select Contributions
Pick 1-3 by impact, effort, expertise.
- Score each:
- Impact: Improvement? (security > bugs > tests > docs)
- Effort: Done well in focused session? (prefer small complete PRs)
- Expertise: Domain knowledge?
- Merge prob: Matches stated priorities?
- Pick top (default 1-3)
- Per: branch name, scope boundary, acceptance criteria, test plan
→ 1-3 selected contributions w/ clear scope + acceptance criteria.
If err: nothing scores well → file well-written issues instead of PRs.
Step 8: Implement
Branch per contribution + implement fix.
- Per contribution:
git checkout -b fix/<description> - Follow conventions exactly (linter, naming, imports)
- Add/update tests covering change
- Run test suite → verify all pass
- Run linter → verify no new warnings
- Keep PR focused — one logical change per branch
→ Clean impl w/ passing tests + no linter warnings.
If err: tests fail on pre-existing issues → doc them, ensure PR doesn't introduce new failures.
Step 9: Create PRs
Submit per CONTRIBUTING.md.
- Push:
git push origin fix/<description> - PR via
create-pull-requestskill - Ref related issue in body ("Fixes #123")
- Follow PR template if exists
- Responsive to reviewer feedback → iterate quickly
→ PRs created, linked to issues, following conventions.
If err: PR create fails → check branch protection + CLA.
Check
- All selected contributions impl + submitted as PRs
- Each PR refs related issue (if exists)
- All project tests pass on each PR branch
- No false positives submitted as real issues
- PR descriptions follow CONTRIBUTING.md template
Traps
- False positive overclaim: Claw uses sandbox arch — "vuln" inside sandbox may be by design. Verify vs threat model before reporting.
- Digest/signature chain disruption: Claw uses verification chains for model integrity. Changes must preserve or PR rejected.
- Convention mismatch: Claw enforces strict style. Run project's own linter, not generic. Match imports, docstrings, test patterns exactly.
- Scope creep: 3 focused PRs merge faster than 1 sprawling. Keep atomic.
- Stale fork: Always sync upstream before work (
git fetch upstream && git merge upstream/main).
→
- security-audit-codebase — used in Step 5 for security findings
- review-codebase — used in Step 5 for quality review
- create-pull-request — used in Step 9 for PR create
- create-github-issues — file issues from findings not addressed as PRs
- manage-git-branches — branch mgmt during impl
- commit-changes — commit workflow
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
polymarket
MetaThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
creating-opencode-plugins
MetaThis skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
