[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KVYMC0KRCBBQ01CHQB4973":3,"skill-same:01M6KVYMC0KRCBBQ01CHQB4973":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6KVYMC0KRCBBQ01CHQB4973","codex-review",null,"Use OpenAI Codex CLI to perform automated code review on pull requests with Nuvel OrgMemory context.","Folken2\u002Fnuvel","Folken2","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F175213316?v=4","01M6KVPA04RKNPCC04H2G96FAS","Albert Folch","01M6KVPA43VNTA4PXSEB1TCD81",2,"MIT","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex-plugin\u002Fskills\u002Fcodex-review\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"review","codex","codex review","nuvel","code review","requests","with","openai codex cli","openai codex","use","context","pull","openai","code","codex cli","pull requests","cli","2026-11-10 10:12:30",false,"---\nname: codex-review\ndescription: Use OpenAI Codex CLI to perform automated code review on pull requests with Nuvel OrgMemory context.\n---\n\n# Codex CLI PR Review\n\n## Trigger Conditions\n- A pull request is opened and needs review\n- Pre-merge quality gate checks\n- Need context-aware review using team knowledge from OrgMemory\n- Want automated first-pass review before human review\n\n## Prerequisites\n- Codex CLI installed and authenticated (`codex-setup` skill)\n- Nuvel OrgMemory MCP server configured\n- GitHub CLI (`gh`) installed and authenticated\n- The PR number to review\n\n## Steps\n\n### 1. Fetch PR Context\n\n```bash\n# Get the PR number (either from user or from current branch)\nPR_NUMBER=\"\u003Cnumber>\"\n\n# Fetch PR details\ngh pr view $PR_NUMBER --json number,title,body,baseRefName,headRefName\n\n# Checkout the PR branch locally\ngh pr checkout $PR_NUMBER\n```\n\n### 2. Gather OrgMemory Context\n\n```bash\ncodex exec \"Search nuvel-orgmemory for architecture decisions, \\\n  coding standards, and patterns relevant to the files changed in this PR. \\\n  List all relevant findings.\"\n```\n\n### 3. Run Automated Review\n\n```bash\ncodex exec --approval-policy never \\\n  \"Review PR #${PR_NUMBER}. \\\n   \\\n   CONTEXT FROM ORGMEMORY: \\\n   First check nuvel-orgmemory for any architecture decisions or \\\n   coding standards that apply to these changes. \\\n   \\\n   REVIEW CHECKLIST: \\\n   1. Security: Check for injection risks, exposed secrets, unsafe deserialization \\\n   2. Performance: Identify N+1 queries, unnecessary allocations, blocking operations \\\n   3. Correctness: Verify edge cases, null handling, error propagation \\\n   4. Architecture: Ensure changes follow established patterns from OrgMemory \\\n   5. Testing: Check test coverage for new code paths \\\n   6. Style: Verify consistency with project conventions \\\n   \\\n   OUTPUT: \\\n   - Summary of changes \\\n   - Critical issues (must-fix) \\\n   - Warnings (should-fix) \\\n   - Suggestions (nice-to-have) \\\n   - OrgMemory alignment check \\\n   \\\n   Post each finding as a review comment.\"\n```\n\n### 4. Post Review to GitHub\n\n```bash\n# If Codex outputs review comments, post them\ncodex exec \"Post the review findings as a GitHub PR review on #${PR_NUMBER}. \\\n  Use 'gh pr review' with --approve, --comment, or --request-changes \\\n  based on the severity of findings.\"\n```\n\nOr post manually based on Codex output:\n```bash\n# Approve if no issues\ngh pr review $PR_NUMBER --approve --body \"Automated review by Codex CLI with Nuvel OrgMemory context. No issues found.\"\n\n# Request changes if issues found\ngh pr review $PR_NUMBER --request-changes --body \"$(cat review-findings.md)\"\n```\n\n### 5. Follow Up\n\n```bash\n# If changes were requested, update OrgMemory with review patterns\ncodex exec \"Update nuvel-orgmemory with any new review patterns \\\n  or anti-patterns discovered during this review.\"\n```\n\n## Review Focus Areas (Per Language)\n\n### TypeScript\u002FJavaScript\n- Check for missing error boundaries in React components\n- Verify proper async\u002Fawait error handling\n- Ensure no `any` types without justification\n- Check bundle size impact\n\n### Python\n- Verify type hints on public APIs\n- Check for proper context manager usage\n- Ensure async functions are properly awaited\n- Validate Pydantic model usage\n\n### Go\n- Check error handling (no ignored errors)\n- Verify proper defer usage\n- Ensure context propagation\n- Check goroutine lifecycle management\n\n## Pitfalls\n- **False positives**: Codex may flag patterns it doesn't fully understand. Always verify critical issues manually.\n- **Stale OrgMemory**: If team conventions changed but OrgMemory wasn't updated, the review may apply outdated standards. Periodically audit OrgMemory freshness.\n- **Large PRs**: For PRs with 500+ line diffs, break the review into focused chunks by file or component.\n- **API rate limits**: Large reviews with many MCP calls may hit rate limits. Use `--approval-policy never` to avoid interactive delays.\n\n## Verification\n1. Review comments are posted on the PR: `gh pr view $PR_NUMBER --comments`\n2. OrgMemory was consulted for context (verify in Codex logs)\n3. All critical issues have corresponding GitHub review comments\n4. Review aligns with documented team standards","# Codex CLI PR Review\n\n## Trigger Conditions\n- A pull request is opened and needs review\n- Pre-merge quality gate checks\n- Need context-aware review using team knowledge from OrgMemory\n- Want automated first-pass review before human review\n\n## Prerequisites\n- Codex CLI installed and authenticated (`codex-setup` skill)\n- Nuvel OrgMemory MCP server configured\n- GitHub CLI (`gh`) installed and authenticated\n- The PR number to review\n\n## Steps\n\n### 1. Fetch PR Context\n\n```bash\n# Get the PR number (either from user or from current branch)\nPR_NUMBER=\"\u003Cnumber>\"\n\n# Fetch PR details\ngh pr view $PR_NUMBER --json number,title,body,baseRefName,headRefName\n\n# Checkout the PR branch locally\ngh pr checkout $PR_NUMBER\n```\n\n### 2. Gather OrgMemory Context\n\n```bash\ncodex exec \"Search nuvel-orgmemory for architecture decisions, \\\n  coding standards, and patterns relevant to the files changed in this PR. \\\n  List all relevant findings.\"\n```\n\n### 3. Run Automated Review\n\n```bash\ncodex exec --approval-policy never \\\n  \"Review PR #${PR_NUMBER}. \\\n   \\\n   CONTEXT FROM ORGMEMORY: \\\n   First check nuvel-orgmemory for any architecture decisions or \\\n   coding standards that apply to these changes. \\\n   \\\n   REVIEW CHECKLIST: \\\n   1. Security: Check for injection risks, exposed secrets, unsafe deserialization \\\n   2. Performance: Identify N+1 queries, unnecessary allocations, blocking operations \\\n   3. Correctness: Verify edge cases, null handling, error propagation \\\n   4. Architecture: Ensure changes follow established patterns from OrgMemory \\\n   5. Testing: Check test coverage for new code paths \\\n   6. Style: Verify consistency with project conventions \\\n   \\\n   OUTPUT: \\\n   - Summary of changes \\\n   - Critical issues (must-fix) \\\n   - Warnings (should-fix) \\\n   - Suggestions (nice-to-have) \\\n   - OrgMemory alignment check \\\n   \\\n   Post each finding as a review comment.\"\n```\n\n### 4. Post Review to GitHub\n\n```bash\n# If Codex outputs review comments, post them\ncodex exec \"Post the review findings as a GitHub PR review on #${PR_NUMBER}. \\\n  Use 'gh pr review' with --approve, --comment, or --request-changes \\\n  based on the severity of findings.\"\n```\n\nOr post manually based on Codex output:\n```bash\n# Approve if no issues\ngh pr review $PR_NUMBER --approve --body \"Automated review by Codex CLI with Nuvel OrgMemory context. No issues found.\"\n\n# Request changes if issues found\ngh pr review $PR_NUMBER --request-changes --body \"$(cat review-findings.md)\"\n```\n\n### 5. Follow Up\n\n```bash\n# If changes were requested, update OrgMemory with review patterns\ncodex exec \"Update nuvel-orgmemory with any new review patterns \\\n  or anti-patterns discovered during this review.\"\n```\n\n## Review Focus Areas (Per Language)\n\n### TypeScript\u002FJavaScript\n- Check for missing error boundaries in React components\n- Verify proper async\u002Fawait error handling\n- Ensure no `any` types without justification\n- Check bundle size impact\n\n### Python\n- Verify type hints on public APIs\n- Check for proper context manager usage\n- Ensure async functions are properly awaited\n- Validate Pydantic model usage\n\n### Go\n- Check error handling (no ignored errors)\n- Verify proper defer usage\n- Ensure context propagation\n- Check goroutine lifecycle management\n\n## Pitfalls\n- **False positives**: Codex may flag patterns it doesn't fully understand. Always verify critical issues manually.\n- **Stale OrgMemory**: If team conventions changed but OrgMemory wasn't updated, the review may apply outdated standards. Periodically audit OrgMemory freshness.\n- **Large PRs**: For PRs with 500+ line diffs, break the review into focused chunks by file or component.\n- **API rate limits**: Large reviews with many MCP calls may hit rate limits. Use `--approval-policy never` to avoid interactive delays.\n\n## Verification\n1. Review comments are posted on the PR: `gh pr view $PR_NUMBER --comments`\n2. OrgMemory was consulted for context (verify in Codex logs)\n3. All critical issues have corresponding GitHub review comments\n4. Review aligns with documented team standards",{"name":5,"description":7},"main","41d246dd855999c6bc4be528bc8d0d1b10ac8c47","plugins\u002Fcodex-plugin\u002Fskills\u002Fcodex-review",1,"https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel","https:\u002F\u002Ffolken2.github.io\u002Fnuvel\u002F","https:\u002F\u002Fgithub.com\u002FFolken2","folch.ai","2026-11-05 22:40:38",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add Folken2\u002Fnuvel --skill codex-review",{"tool":61,"command":62},"bunx","bunx skills add Folken2\u002Fnuvel --skill codex-review",{"tool":64,"command":65},"pnpm","pnpm dlx skills add Folken2\u002Fnuvel --skill codex-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fcodex-plugin\u002Fskills\u002Fcodex-review\u002FSKILL.md",true,[],[70,79,94,122,138,154],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":41},"01M6KVZNJQ7AVMVBS205404CS7","greet","Greet a user warmly by name.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Ftests\u002Ftest_agent_plugins\u002Ffixtures\u002Fvalid-full\u002Fskills\u002Fgreet\u002FSKILL.md",[],[72,77,78],"user","name",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"publishedAt":41},"01M6KVZHYK2C9S5GRM3PZAFDXG","hello","A simple hello skill that survives a broken mcp.json.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Ftests\u002Ftest_agent_plugins\u002Ffixtures\u002Fbad-mcp\u002Fskills\u002Fhello\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[81,89,90,91,92,93],"MCP","hello skill","json","broken","simple",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":109,"publishedAt":41},"01M6KVZC94REQZ852EJ99ZXATK","grok-workflows","Prompt templates and workflows for using xAI GrokBot with Nuvel — code, design, research, and automated pipelines.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fgrokbot-plugin\u002Fskills\u002Fgrok-workflows\u002FSKILL.md",[100,103,104],{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[110,111,112,113,114,115,116,37,117,118,119,120,30,121,27],"workflows","grok","grok workflows","design","research","prompt","prompt templates","templates","xai","grokbot","pipelines","for",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":41},"01M6KVZ7BA5MJ1N614MTP2JXCQ","grok-setup","Configure xAI GrokBot with Nuvel API integration and project context for Nuvel-aligned development.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fgrokbot-plugin\u002Fskills\u002Fgrok-setup\u002FSKILL.md",[],[111,129,130,121,30,131,27,132,133,134,119,135,136,137,118,34],"grok setup","setup","project","project context","api integration","configure","development","integration","api",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":41},"01M6KVZ3WYQ6V6XVCRE77WT2WY","cursor-setup","Configure Cursor IDE with Nuvel rules, MCP server integration, and project settings for OrgMemory-aware development.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fcursor-plugin\u002Fskills\u002Fcursor-setup\u002FSKILL.md",[144],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[146,147,130,136,89,148,135,149,150,134,151,152,131,30,121,153,27],"cursor","cursor setup","mcp server","server","ide","Rules","settings","project settings",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":41},"01M6KVZ0GGSJM4AC8PK7G53H85","cursor-review","Use Cursor IDE with Nuvel OrgMemory to review changes — diff analysis, standards checking, and pre-commit review.","https:\u002F\u002Fgithub.com\u002FFolken2\u002Fnuvel\u002Fblob\u002Fmain\u002Fplugins\u002Fcursor-plugin\u002Fskills\u002Fcursor-review\u002FSKILL.md",[],[161,146,24,162,163,164,165,150,33,166,167,30,168,169,27],"cursor review","commit","review changes","pre-commit","analysis","diff","standards","changes","diff analysis"]