{"id":"ebfc861b-c59b-4bfe-be11-e25c9ab02936","shortId":"dM3WUY","kind":"skill","title":"pilot-feedback-collector-setup","tagline":"Deploy a feedback collection pipeline with 3 agents that automate intake, sentiment analysis, and actionable routing.  Use this skill when: 1. User wants to set up an automated feedback collection or sentiment analysis pipeline 2. User is configuring an agent as part of a custome","description":"# Feedback Collector Setup\n\nDeploy 3 agents that automate feedback intake, sentiment analysis, and actionable routing.\n\n## Roles\n\n| Role | Hostname | Skills | Purpose |\n|------|----------|--------|---------|\n| intake | `<prefix>-intake` | pilot-stream-data, pilot-chat, pilot-archive | Collects feedback from surveys, NPS, app reviews, support tickets |\n| analyzer | `<prefix>-analyzer` | pilot-event-filter, pilot-metrics, pilot-task-router | Scores sentiment, extracts themes, identifies trends |\n| router | `<prefix>-router` | pilot-alert, pilot-slack-bridge, pilot-webhook-bridge | Routes actionable feedback to product, engineering, or support |\n\n## Setup Procedure\n\n**Step 1:** Ask the user which role this agent should play and what prefix to use.\n\n**Step 2:** Install the skills for the chosen role:\n```bash\n# For intake:\nclawhub install pilot-stream-data pilot-chat pilot-archive\n\n# For analyzer:\nclawhub install pilot-event-filter pilot-metrics pilot-task-router\n\n# For router:\nclawhub install pilot-alert pilot-slack-bridge pilot-webhook-bridge\n```\n\n**Step 3:** Set the hostname:\n```bash\npilotctl --json set-hostname <prefix>-<role>\n```\n\n**Step 4:** Write the setup manifest:\n```bash\nmkdir -p ~/.pilot/setups\ncat > ~/.pilot/setups/feedback-collector.json << 'MANIFEST'\n<role-specific manifest from templates below>\nMANIFEST\n```\n\n**Step 5:** Tell the user to initiate handshakes with direct communication peers.\n\n## Manifest Templates Per Role\n\n### intake\n```json\n{\"setup\":\"feedback-collector\",\"setup_name\":\"Feedback Collector\",\"role\":\"intake\",\"role_name\":\"Feedback Intake\",\"hostname\":\"<prefix>-intake\",\"description\":\"Collects feedback from surveys, NPS forms, app reviews, and support tickets. Normalizes into consistent format.\",\"skills\":{\"pilot-stream-data\":\"Stream incoming feedback from multiple sources in real time.\",\"pilot-chat\":\"Accept free-form feedback via conversational interface.\",\"pilot-archive\":\"Archive raw feedback submissions for audit and reprocessing.\"},\"peers\":[{\"role\":\"analyzer\",\"hostname\":\"<prefix>-analyzer\",\"description\":\"Receives normalized feedback for sentiment analysis\"}],\"data_flows\":[{\"direction\":\"send\",\"peer\":\"<prefix>-analyzer\",\"port\":1002,\"topic\":\"raw-feedback\",\"description\":\"Raw feedback normalized from all sources\"}],\"handshakes_needed\":[\"<prefix>-analyzer\"]}\n```\n\n### analyzer\n```json\n{\"setup\":\"feedback-collector\",\"setup_name\":\"Feedback Collector\",\"role\":\"analyzer\",\"role_name\":\"Sentiment Analyzer\",\"hostname\":\"<prefix>-analyzer\",\"description\":\"Scores sentiment, extracts themes, identifies trending complaints and praise.\",\"skills\":{\"pilot-event-filter\":\"Filter feedback by sentiment threshold and priority level.\",\"pilot-metrics\":\"Track sentiment trends, theme frequency, and NPS distribution.\",\"pilot-task-router\":\"Route feedback to specialized analysis by source type.\"},\"peers\":[{\"role\":\"intake\",\"hostname\":\"<prefix>-intake\",\"description\":\"Sends raw feedback for analysis\"},{\"role\":\"router\",\"hostname\":\"<prefix>-router\",\"description\":\"Receives scored feedback for team routing\"}],\"data_flows\":[{\"direction\":\"receive\",\"peer\":\"<prefix>-intake\",\"port\":1002,\"topic\":\"raw-feedback\",\"description\":\"Raw feedback normalized from all sources\"},{\"direction\":\"send\",\"peer\":\"<prefix>-router\",\"port\":1002,\"topic\":\"scored-feedback\",\"description\":\"Scored feedback with sentiment and themes\"}],\"handshakes_needed\":[\"<prefix>-intake\",\"<prefix>-router\"]}\n```\n\n### router\n```json\n{\"setup\":\"feedback-collector\",\"setup_name\":\"Feedback Collector\",\"role\":\"router\",\"role_name\":\"Feedback Router\",\"hostname\":\"<prefix>-router\",\"description\":\"Routes actionable feedback to product, engineering, or support teams via Slack and webhook.\",\"skills\":{\"pilot-alert\":\"Escalate critical feedback issues that require immediate attention.\",\"pilot-slack-bridge\":\"Post feedback summaries and alerts to team-specific Slack channels.\",\"pilot-webhook-bridge\":\"Push feedback events to external ticketing and analytics systems.\"},\"peers\":[{\"role\":\"analyzer\",\"hostname\":\"<prefix>-analyzer\",\"description\":\"Sends scored feedback for team routing\"}],\"data_flows\":[{\"direction\":\"receive\",\"peer\":\"<prefix>-analyzer\",\"port\":1002,\"topic\":\"scored-feedback\",\"description\":\"Scored feedback with sentiment and themes\"},{\"direction\":\"send\",\"peer\":\"external\",\"port\":443,\"topic\":\"feedback-alert\",\"description\":\"Feedback alerts to product, engineering, support\"}],\"handshakes_needed\":[\"<prefix>-analyzer\"]}\n```\n\n## Data Flows\n\n- `intake -> analyzer` : raw-feedback events (port 1002)\n- `analyzer -> router` : scored-feedback events (port 1002)\n- `router -> external` : feedback-alert via webhook (port 443)\n\n## Handshakes\n\n```bash\n# intake <-> analyzer:\npilotctl --json handshake <prefix>-analyzer \"setup: feedback-collector\"\npilotctl --json handshake <prefix>-intake \"setup: feedback-collector\"\n# analyzer <-> router:\npilotctl --json handshake <prefix>-router \"setup: feedback-collector\"\npilotctl --json handshake <prefix>-analyzer \"setup: feedback-collector\"\n```\n\n## Workflow Example\n\n```bash\n# On analyzer -- subscribe to raw feedback:\npilotctl --json subscribe <prefix>-intake raw-feedback\n# On router -- subscribe to scored feedback:\npilotctl --json subscribe <prefix>-analyzer scored-feedback\n# On intake -- publish raw feedback:\npilotctl --json publish <prefix>-analyzer raw-feedback '{\"source\":\"nps_survey\",\"score\":3,\"customer\":\"user-8291\",\"text\":\"Dashboard navigation is confusing.\"}'\n# On analyzer -- publish scored feedback:\npilotctl --json publish <prefix>-router scored-feedback '{\"sentiment\":-0.6,\"themes\":[\"ux\",\"navigation\"],\"priority\":\"high\",\"trending\":true}'\n```\n\n## Dependencies\n\nRequires `pilot-protocol` skill, `pilotctl` binary, `clawhub` binary, and a running daemon.","tags":["pilot","feedback","collector","setup","skills","teoslayer","agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network"],"capabilities":["skill","source-teoslayer","skill-pilot-feedback-collector-setup","topic-agent-skills","topic-ai-agents","topic-clawhub","topic-networking","topic-openclaw","topic-overlay-network","topic-p2p","topic-pilot-protocol"],"categories":["pilot-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/TeoSlayer/pilot-skills/pilot-feedback-collector-setup","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add TeoSlayer/pilot-skills","source_repo":"https://github.com/TeoSlayer/pilot-skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (5,687 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:55.692Z","embedding":null,"createdAt":"2026-05-18T13:22:40.345Z","updatedAt":"2026-05-18T19:14:55.692Z","lastSeenAt":"2026-05-18T19:14:55.692Z","tsv":"'-0.6':730 '-8291':711 '/.pilot/setups':224 '/.pilot/setups/feedback-collector.json':226 '1':26,135 '1002':334,442,459,566,607,615 '2':40,151 '3':12,55,205,708 '4':216 '443':583,624 '5':230 'accept':296 'action':20,64,125,495 'agent':13,45,56,142 'alert':115,195,510,527,587,590,620 'analysi':18,38,62,326,409,423 'analyt':545 'analyz':92,93,175,317,319,332,348,349,360,364,366,549,551,564,597,601,608,628,632,645,658,667,688,700,718 'app':88,270 'archiv':82,173,306,307 'ask':136 'attent':518 'audit':312 'autom':15,33,58 'bash':159,209,221,626,665 'binari':745,747 'bridg':119,123,199,203,522,537 'cat':225 'channel':533 'chat':79,170,295 'chosen':157 'clawhub':162,176,191,746 'collect':9,35,83,264 'collector':4,52,250,254,354,358,480,484,636,644,654,662 'communic':239 'complaint':374 'configur':43 'confus':716 'consist':277 'convers':302 'critic':512 'custom':50,709 'daemon':751 'dashboard':713 'data':76,167,283,327,435,559,598 'depend':738 'deploy':6,54 'descript':263,320,339,367,418,428,447,464,493,552,571,588 'direct':238,329,437,454,561,578 'distribut':400 'engin':129,499,593 'escal':511 'event':96,180,380,540,605,613 'exampl':664 'extern':542,581,617 'extract':107,370 'feedback':3,8,34,51,59,84,126,249,253,259,265,286,300,309,323,338,341,353,357,383,406,421,431,446,449,463,466,479,483,489,496,513,524,539,555,570,573,586,589,604,612,619,635,643,653,661,671,678,684,691,696,703,721,728 'feedback-alert':585,618 'feedback-collector':248,352,478,634,642,652,660 'filter':97,181,381,382 'flow':328,436,560,599 'form':269,299 'format':278 'free':298 'free-form':297 'frequenc':397 'handshak':236,346,471,595,625,631,639,649,657 'high':735 'hostnam':68,208,214,261,318,365,416,426,491,550 'identifi':109,372 'immedi':517 'incom':285 'initi':235 'instal':152,163,177,192 'intak':16,60,71,72,161,245,256,260,262,415,417,440,473,600,627,640,675,693 'interfac':303 'issu':514 'json':211,246,350,476,630,638,648,656,673,686,698,723 'level':389 'manifest':220,227,228,241 'metric':100,184,392 'mkdir':222 'multipl':288 'name':252,258,356,362,482,488 'navig':714,733 'need':347,472,596 'normal':275,322,342,450 'nps':87,268,399,705 'p':223 'part':47 'peer':240,315,331,413,439,456,547,563,580 'per':243 'pilot':2,74,78,81,95,99,102,114,117,121,165,169,172,179,183,186,194,197,201,281,294,305,379,391,402,509,520,535,741 'pilot-alert':113,193,508 'pilot-arch':80,171,304 'pilot-chat':77,168,293 'pilot-event-filt':94,178,378 'pilot-feedback-collector-setup':1 'pilot-metr':98,182,390 'pilot-protocol':740 'pilot-slack-bridg':116,196,519 'pilot-stream-data':73,164,280 'pilot-task-rout':101,185,401 'pilot-webhook-bridg':120,200,534 'pilotctl':210,629,637,647,655,672,685,697,722,744 'pipelin':10,39 'play':144 'port':333,441,458,565,582,606,614,623 'post':523 'prais':376 'prefix':147 'prioriti':388,734 'procedur':133 'product':128,498,592 'protocol':742 'publish':694,699,719,724 'purpos':70 'push':538 'raw':308,337,340,420,445,448,603,670,677,695,702 'raw-feedback':336,444,602,676,701 'real':291 'receiv':321,429,438,562 'reprocess':314 'requir':516,739 'review':89,271 'role':66,67,140,158,244,255,257,316,359,361,414,424,485,487,548 'rout':21,65,124,405,434,494,558 'router':104,111,112,188,190,404,425,427,457,474,475,486,490,492,609,616,646,650,680,725 'run':750 'score':105,368,430,462,465,554,569,572,611,683,690,707,720,727 'scored-feedback':461,568,610,689,726 'send':330,419,455,553,579 'sentiment':17,37,61,106,325,363,369,385,394,468,575,729 'set':30,206,213 'set-hostnam':212 'setup':5,53,132,219,247,251,351,355,477,481,633,641,651,659 'skill':24,69,154,279,377,507,743 'skill-pilot-feedback-collector-setup' 'slack':118,198,504,521,532 'sourc':289,345,411,453,704 'source-teoslayer' 'special':408 'specif':531 'step':134,150,204,215,229 'stream':75,166,282,284 'submiss':310 'subscrib':668,674,681,687 'summari':525 'support':90,131,273,501,594 'survey':86,267,706 'system':546 'task':103,187,403 'team':433,502,530,557 'team-specif':529 'tell':231 'templat':242 'text':712 'theme':108,371,396,470,577,731 'threshold':386 'ticket':91,274,543 'time':292 'topic':335,443,460,567,584 'topic-agent-skills' 'topic-ai-agents' 'topic-clawhub' 'topic-networking' 'topic-openclaw' 'topic-overlay-network' 'topic-p2p' 'topic-pilot-protocol' 'track':393 'trend':110,373,395,736 'true':737 'type':412 'use':22,149 'user':27,41,138,233,710 'ux':732 'via':301,503,621 'want':28 'webhook':122,202,506,536,622 'workflow':663 'write':217","prices":[{"id":"fc5da19a-8c64-4de6-b1eb-cd17b42bca7b","listingId":"ebfc861b-c59b-4bfe-be11-e25c9ab02936","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"TeoSlayer","category":"pilot-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:40.345Z"}],"sources":[{"listingId":"ebfc861b-c59b-4bfe-be11-e25c9ab02936","source":"github","sourceId":"TeoSlayer/pilot-skills/pilot-feedback-collector-setup","sourceUrl":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-feedback-collector-setup","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:40.345Z","lastSeenAt":"2026-05-18T19:14:55.692Z"}],"details":{"listingId":"ebfc861b-c59b-4bfe-be11-e25c9ab02936","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"TeoSlayer","slug":"pilot-feedback-collector-setup","github":{"repo":"TeoSlayer/pilot-skills","stars":6,"topics":["agent-skills","ai-agents","clawhub","networking","openclaw","overlay-network","p2p","pilot-protocol"],"license":"agpl-3.0","html_url":"https://github.com/TeoSlayer/pilot-skills","pushed_at":"2026-05-13T06:08:49Z","description":"80+ agent skills for Pilot Protocol — communication, file transfer, trust, task routing, swarm coordination, and more","skill_md_sha":"97bfe955cc5ec52cf71c9876fcbc5f89dfcfea92","skill_md_path":"skills/pilot-feedback-collector-setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/TeoSlayer/pilot-skills/tree/main/skills/pilot-feedback-collector-setup"},"layout":"multi","source":"github","category":"pilot-skills","frontmatter":{"name":"pilot-feedback-collector-setup","license":"AGPL-3.0","description":"Deploy a feedback collection pipeline with 3 agents that automate intake, sentiment analysis, and actionable routing.  Use this skill when: 1. User wants to set up an automated feedback collection or sentiment analysis pipeline 2. User is configuring an agent as part of a customer feedback workflow 3. User asks about routing NPS, survey, or support ticket feedback to teams  Do NOT use this skill when: - User wants a simple chat interface (use pilot-chat instead) - User wants a one-off alert notification (use pilot-alert instead)"},"skills_sh_url":"https://skills.sh/TeoSlayer/pilot-skills/pilot-feedback-collector-setup"},"updatedAt":"2026-05-18T19:14:55.692Z"}}