[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSY8EJC16PAKSM7XA9J5PQ":3,"skill-same:01M6CSY8EJC16PAKSM7XA9J5PQ":94},{"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":18,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":14,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":41,"ownerDescription":6,"updatedAt":42,"install":43,"resources":55},"01M6CSY8EJC16PAKSM7XA9J5PQ","pr-poll",null,"Manages PR review polling daemon for automatic notifications and auto-respond.","goffity\u002Fdev-km","goffity","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F778547?v=4","01M6CSW9QQ32YQYTRKQWVKYCAY","Goffity","01M6CSW9VQFVZ3QS6RB4VYJGE6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28],"pr","pr poll","review","status","pr review","notifications","start","check","auto","stop","2026-11-10 10:12:30",false,"---\nname: pr-poll\ndescription: Manages PR review polling daemon for automatic notifications and auto-respond.\nargument-hint: \"[start|stop|auto|check|status]\"\nuser-invocable: true\n---\n\n# PR Poll - Automatic PR Review Notifications\n\nจัดการ polling daemon ที่ตรวจสอบ PR reviews และส่ง notification อัตโนมัติ\n\n## Usage\n\n```\n\u002Fpr-poll              # Show status\n\u002Fpr-poll start        # Start daemon (notification only)\n\u002Fpr-poll auto         # Start daemon with auto-respond (Claude handles reviews)\n\u002Fpr-poll stop         # Stop daemon\n\u002Fpr-poll check        # Check once (no daemon)\n```\n\n## Instructions\n\n### Step 1: Parse Command\n\n**ถ้าไม่มี argument หรือ `status`:**\n→ แสดงสถานะ daemon\n\n**ถ้า `start`:**\n→ Start daemon (notification only)\n\n**ถ้า `auto`:**\n→ Start daemon with auto-respond (Claude handles reviews automatically)\n\n**ถ้า `stop`:**\n→ Stop daemon\n\n**ถ้า `check`:**\n→ Run once and exit\n\n### Step 2: Execute Action\n\n#### Status (default)\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-status.sh\n```\n\n**Output:**\n- Daemon status (running\u002Fstopped)\n- Tracked PRs\n- Last log entries\n\n#### Start Daemon (Notification Only)\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 300\n```\n\n**Options:**\n- `--interval N` - Polling interval in seconds (default: 300 = 5 minutes)\n- `--repo OWNER\u002FREPO` - Specific repo to monitor\n\n**Output:**\n```\nDaemon started (PID: 12345)\n\nLog file: ~\u002F.pr-review-poll.log\nTo view logs: tail -f ~\u002F.pr-review-poll.log\nTo stop: .\u002Fpr-review-poll-stop.sh\n```\n\n#### Start Daemon with Auto-Respond\n\n```bash\n# Get current working directory\nWORKING_DIR=$(pwd)\n\n# Start with auto-respond enabled\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 300 --auto-respond --working-dir \"$WORKING_DIR\"\n```\n\n**Options:**\n- `--auto-respond` - Enable automatic Claude CLI spawning\n- `--working-dir DIR` - Working directory for Claude (required with --auto-respond)\n\n**Output:**\n```\nDaemon started (PID: 12345)\nAuto-respond: ENABLED\nWorking dir: \u002Fpath\u002Fto\u002Frepo\n\nLog file: ~\u002F.pr-review-poll.log\nTo view logs: tail -f ~\u002F.pr-review-poll.log\nTo stop: .\u002Fpr-review-poll-stop.sh\n```\n\n**How Auto-Respond Works:**\n1. Daemon detects new PR review\n2. Spawns Claude CLI with `\u002Fpr-review` prompt\n3. Claude analyzes and responds to review feedback\n4. Log file created: `~\u002F.pr-review-claude-{pr}-{timestamp}.log`\n\n**Important Notes:**\n- Requires `claude` CLI to be installed and in PATH\n- Uses `--dangerously-skip-permissions` for non-interactive execution\n- Each Claude session runs in background with separate log file\n\n#### Stop Daemon\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-stop.sh\n```\n\n**Output:**\n```\nDaemon stopped\n```\n\n#### Check Once\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll.sh --once\n```\n\n**Output:**\n- Lists checked PRs\n- Sends notifications for new reviews\n\n### Step 3: Display Summary\n\n```markdown\n## PR Poll Status\n\n| Metric | Value |\n|--------|-------|\n| Status | Running \u002F Stopped |\n| PID | [pid] |\n| Interval | [seconds]s |\n| Tracked PRs | [count] |\n\n### Recent Activity\n[last 5 log lines]\n\n### Commands\n- Start: `\u002Fpr-poll start`\n- Stop: `\u002Fpr-poll stop`\n- Check now: `\u002Fpr-poll check`\n```\n\n## How It Works\n\n1. **Polling**: Daemon checks GitHub every N seconds for user's open PRs\n2. **Detection**: Compares current reviews with stored state\n3. **Notification**: Sends macOS notification for new reviews\n4. **Action**: Notification suggests running `\u002Fpr-review`\n\n## Notification Types\n\n| Review State | Sound | Message |\n|--------------|-------|---------|\n| APPROVED | Glass | \"Approved by @reviewer\" |\n| CHANGES_REQUESTED | Basso | \"Changes requested by @reviewer\" |\n| COMMENTED | Ping | \"@reviewer left a comment\" |\n\n## Files\n\n| File | Purpose |\n|------|---------|\n| `~\u002F.pr-review-poll.pid` | Daemon PID file |\n| `~\u002F.pr-review-poll.log` | Daemon log file |\n| `~\u002F.pr-review-state.json` | PR review state |\n\n## Examples\n\n```bash\n# Start daemon with 5-minute interval (default, notification only)\n\u002Fpr-poll start\n\n# Start with auto-respond - Claude handles reviews automatically\n\u002Fpr-poll auto\n\n# Start with 1-minute interval for active development\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 60\n\n# Auto-respond with 1-minute interval\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 60 --auto-respond --working-dir \"$(pwd)\"\n\n# Monitor specific repo with auto-respond\n.\u002Fscripts\u002Fpr-review-poll-start.sh --repo owner\u002Frepo --auto-respond --working-dir \u002Fpath\u002Fto\u002Frepo\n\n# Quick check without starting daemon\n\u002Fpr-poll check\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Daemon not starting | Check `gh auth status` |\n| No notifications | Check macOS notification settings |\n| Too many notifications | Increase poll interval |\n| Stale state | Delete `~\u002F.pr-review-state.json` |\n\n## Related Commands\n\n| Command | Purpose |\n|---------|---------|\n| `\u002Fpr-review` | Handle PR review feedback |\n| `\u002Fpr` | Create PR |\n| `\u002Ffocus` | Set current task |\n","# PR Poll - Automatic PR Review Notifications\n\nจัดการ polling daemon ที่ตรวจสอบ PR reviews และส่ง notification อัตโนมัติ\n\n## Usage\n\n```\n\u002Fpr-poll              # Show status\n\u002Fpr-poll start        # Start daemon (notification only)\n\u002Fpr-poll auto         # Start daemon with auto-respond (Claude handles reviews)\n\u002Fpr-poll stop         # Stop daemon\n\u002Fpr-poll check        # Check once (no daemon)\n```\n\n## Instructions\n\n### Step 1: Parse Command\n\n**ถ้าไม่มี argument หรือ `status`:**\n→ แสดงสถานะ daemon\n\n**ถ้า `start`:**\n→ Start daemon (notification only)\n\n**ถ้า `auto`:**\n→ Start daemon with auto-respond (Claude handles reviews automatically)\n\n**ถ้า `stop`:**\n→ Stop daemon\n\n**ถ้า `check`:**\n→ Run once and exit\n\n### Step 2: Execute Action\n\n#### Status (default)\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-status.sh\n```\n\n**Output:**\n- Daemon status (running\u002Fstopped)\n- Tracked PRs\n- Last log entries\n\n#### Start Daemon (Notification Only)\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 300\n```\n\n**Options:**\n- `--interval N` - Polling interval in seconds (default: 300 = 5 minutes)\n- `--repo OWNER\u002FREPO` - Specific repo to monitor\n\n**Output:**\n```\nDaemon started (PID: 12345)\n\nLog file: ~\u002F.pr-review-poll.log\nTo view logs: tail -f ~\u002F.pr-review-poll.log\nTo stop: .\u002Fpr-review-poll-stop.sh\n```\n\n#### Start Daemon with Auto-Respond\n\n```bash\n# Get current working directory\nWORKING_DIR=$(pwd)\n\n# Start with auto-respond enabled\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 300 --auto-respond --working-dir \"$WORKING_DIR\"\n```\n\n**Options:**\n- `--auto-respond` - Enable automatic Claude CLI spawning\n- `--working-dir DIR` - Working directory for Claude (required with --auto-respond)\n\n**Output:**\n```\nDaemon started (PID: 12345)\nAuto-respond: ENABLED\nWorking dir: \u002Fpath\u002Fto\u002Frepo\n\nLog file: ~\u002F.pr-review-poll.log\nTo view logs: tail -f ~\u002F.pr-review-poll.log\nTo stop: .\u002Fpr-review-poll-stop.sh\n```\n\n**How Auto-Respond Works:**\n1. Daemon detects new PR review\n2. Spawns Claude CLI with `\u002Fpr-review` prompt\n3. Claude analyzes and responds to review feedback\n4. Log file created: `~\u002F.pr-review-claude-{pr}-{timestamp}.log`\n\n**Important Notes:**\n- Requires `claude` CLI to be installed and in PATH\n- Uses `--dangerously-skip-permissions` for non-interactive execution\n- Each Claude session runs in background with separate log file\n\n#### Stop Daemon\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll-stop.sh\n```\n\n**Output:**\n```\nDaemon stopped\n```\n\n#### Check Once\n\n```bash\n.\u002Fscripts\u002Fpr-review-poll.sh --once\n```\n\n**Output:**\n- Lists checked PRs\n- Sends notifications for new reviews\n\n### Step 3: Display Summary\n\n```markdown\n## PR Poll Status\n\n| Metric | Value |\n|--------|-------|\n| Status | Running \u002F Stopped |\n| PID | [pid] |\n| Interval | [seconds]s |\n| Tracked PRs | [count] |\n\n### Recent Activity\n[last 5 log lines]\n\n### Commands\n- Start: `\u002Fpr-poll start`\n- Stop: `\u002Fpr-poll stop`\n- Check now: `\u002Fpr-poll check`\n```\n\n## How It Works\n\n1. **Polling**: Daemon checks GitHub every N seconds for user's open PRs\n2. **Detection**: Compares current reviews with stored state\n3. **Notification**: Sends macOS notification for new reviews\n4. **Action**: Notification suggests running `\u002Fpr-review`\n\n## Notification Types\n\n| Review State | Sound | Message |\n|--------------|-------|---------|\n| APPROVED | Glass | \"Approved by @reviewer\" |\n| CHANGES_REQUESTED | Basso | \"Changes requested by @reviewer\" |\n| COMMENTED | Ping | \"@reviewer left a comment\" |\n\n## Files\n\n| File | Purpose |\n|------|---------|\n| `~\u002F.pr-review-poll.pid` | Daemon PID file |\n| `~\u002F.pr-review-poll.log` | Daemon log file |\n| `~\u002F.pr-review-state.json` | PR review state |\n\n## Examples\n\n```bash\n# Start daemon with 5-minute interval (default, notification only)\n\u002Fpr-poll start\n\n# Start with auto-respond - Claude handles reviews automatically\n\u002Fpr-poll auto\n\n# Start with 1-minute interval for active development\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 60\n\n# Auto-respond with 1-minute interval\n.\u002Fscripts\u002Fpr-review-poll-start.sh --interval 60 --auto-respond --working-dir \"$(pwd)\"\n\n# Monitor specific repo with auto-respond\n.\u002Fscripts\u002Fpr-review-poll-start.sh --repo owner\u002Frepo --auto-respond --working-dir \u002Fpath\u002Fto\u002Frepo\n\n# Quick check without starting daemon\n\u002Fpr-poll check\n```\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Daemon not starting | Check `gh auth status` |\n| No notifications | Check macOS notification settings |\n| Too many notifications | Increase poll interval |\n| Stale state | Delete `~\u002F.pr-review-state.json` |\n\n## Related Commands\n\n| Command | Purpose |\n|---------|---------|\n| `\u002Fpr-review` | Handle PR review feedback |\n| `\u002Fpr` | Create PR |\n| `\u002Ffocus` | Set current task |\n",{"name":5,"description":7,"argument-hint":34,"user-invocable":35},"[start|stop|auto|check|status]",true,"main","835c1f754a3eab31c2e7eb408d21431a98c633ee","skills\u002Fpr-poll","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km","https:\u002F\u002Fgithub.com\u002Fgoffity","www.narongwate.com","2026-11-10 01:34:18",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":35},[45,48,51],{"tool":46,"command":47},"npx","npx skills add goffity\u002Fdev-km --skill pr-poll",{"tool":49,"command":50},"bunx","bunx skills add goffity\u002Fdev-km --skill pr-poll",{"tool":52,"command":53},"pnpm","pnpm dlx skills add goffity\u002Fdev-km --skill pr-poll","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002FSKILL.md",[56,62,68,72,76,82,86,90],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"assets\u002Ftemplate.html","ASSET","资产文件",14542,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fopen-design-simple-deck\u002Fassets\u002Ftemplate.html",{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"example.html","REFERENCE","参考文档",7489,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fopen-design-simple-deck\u002Fexample.html",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fchecklist.md",3393,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fopen-design-simple-deck\u002Freferences\u002Fchecklist.md",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Flayouts.md",7663,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fopen-design-simple-deck\u002Freferences\u002Flayouts.md",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"scripts\u002Fpr-review-poll-start.sh","SCRIPT","脚本",2668,"https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002Fscripts\u002Fpr-review-poll-start.sh",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fpr-review-poll-status.sh",2364,"https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002Fscripts\u002Fpr-review-poll-status.sh",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fpr-review-poll-stop.sh",1035,"https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002Fscripts\u002Fpr-review-poll-stop.sh",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002Fpr-review-poll.sh",19455,"https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fpr-poll\u002Fscripts\u002Fpr-review-poll.sh",[95,105,139,151,159,174],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":29},"01M6CSZ9DKT0CG5Y2HE8F5D9KX","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[102,103,28,104],"wait what","land","message",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":119,"publishedAt":29},"01M6CSZ6B0GH2N75WNPPESCDHX","tdd","Test-driven development loop (red-green-refactor) with commit-based phase state and Jira traceability. Use when the user wants to build a feature or fix a bug test-first, mentions \"tdd\", \"red-green-refactor\", or \"test-first\". Replaces the tdg plugin — combines its commit\u002Fphase discipline with seam-based test quality rules from kb Testing Standards.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[111,116],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":117,"categoryName":118,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000008","测试与质量",[107,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],"discipline","development","state","first","loop","quality","Rules","fix","kb","use","test","standards","red-green-refactor","build","green","jira","testing","commit","plugin",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":29},"01M6CSZ3PNYFR2K5GB197TA7GP","td","Creates post-task retrospectives with Before\u002FAfter context and session documentation.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftd\u002FSKILL.md",[],[141,146,147,148,149,150],"documentation","context","session","task","done",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":29},"01M6CSZ1TZKVNHS07B4EBQEKFQ","summary","Generates weekly or monthly session summaries from retrospectives and activity logs.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsummary\u002FSKILL.md",[],[153,158,148],"logs",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":168,"publishedAt":29},"01M6CSYZQHMHJT9ZV8FYY06XZN","share","Shares knowledge across projects by copying to shared-knowledge directory with cross-project metadata.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fshare\u002FSKILL.md",[165],{"categoryNo":166,"categoryName":167,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000021","资料检索与研究",[161,169,170,171,172,173],"directory","metadata","file","knowledge","projects",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":29},"01M6CSYXFZ7D7EKEFXCQE8QW7S","session-analyzer","Analyzes git changes and creates retrospective drafts with Before\u002FAfter context.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsession-analyzer\u002FSKILL.md",[],[148,181,182,147,183],"session analyzer","git","retrospective"]