{"id":"4de3ae9f-ff28-45aa-8f4a-c3956983fb51","shortId":"wXX5bM","kind":"skill","title":"lovstudio:project-port","tagline":"基于项目名生成稳定唯一的端口号，并自动更新项目配置。当用户需要为项目设置端口、启动开发服务器、解决端口冲突或初始化新项目配置时使用此 skill。","description":"# Project Port Generator\n\n为项目生成稳定唯一的端口号（范围 3000-8999），同一项目名永远返回相同端口。\n\n## 端口生成算法\n\n```python\ndef generate_port(project_name: str) -> int:\n    hash_value = sum(ord(c) * (i + 1) for i, c in enumerate(project_name))\n    return 3000 + (hash_value % 6000)\n```\n\n## 使用场景\n\n### 1. 查询项目端口\n\n用户询问端口时，直接计算并告知：\n\n```\n项目 \"lovstudio\" 的端口号是：7965\n```\n\n### 2. 更新项目配置\n\n检测并更新项目中的端口配置文件：\n\n| 文件 | 配置方式 |\n|------|----------|\n| `.env` / `.env.local` | `PORT=<port>` |\n| `package.json` | scripts 中的 `--port <port>` |\n| `vite.config.ts` | `server.port: <port>` |\n| `next.config.js` | 通常使用 .env |\n\n更新时优先使用 `.env` 方式，最小侵入性。\n\n### 3. 启动开发服务器\n\n```bash\nPORT=$(scripts/hashport.sh) pnpm dev\n```\n\n## 脚本\n\n运行 `scripts/hashport.sh [project-name]` 生成端口：\n\n```bash\n# 使用当前目录名\n./scripts/hashport.sh\n# 输出: 7965\n\n# 指定项目名\n./scripts/hashport.sh my-project\n# 输出: 5123\n```\n\n## 端口冲突处理\n\n若端口被占用：\n1. 提示用户哪个进程占用了端口\n2. 建议使用 `lsof -i :<port>` 查看\n3. 可追加后缀生成备用端口：`generate_port(\"project-dev\")`","tags":["project","port","skills","lovstudio","agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx","markdown-to-pdf"],"capabilities":["skill","source-lovstudio","skill-project-port","topic-agent-skills","topic-ai-coding-assistant","topic-cjk","topic-claude-code","topic-cursor","topic-gemini-cli","topic-markdown-to-docx","topic-markdown-to-pdf"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/lovstudio/skills/project-port","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add lovstudio/skills","source_repo":"https://github.com/lovstudio/skills","install_from":"skills.sh"}},"qualityScore":"0.469","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 39 github stars · SKILL.md body (932 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-04-21T01:36:49.628Z","embedding":null,"createdAt":"2026-04-18T22:19:05.482Z","updatedAt":"2026-04-21T01:36:49.628Z","lastSeenAt":"2026-04-21T01:36:49.628Z","tsv":"'-8999':17 '/scripts/hashport.sh':93,97 '1':34,48,105 '2':56,107 '3':77,112 '3000':16,43 '5123':102 '6000':46 '7965':55,95 'bash':79,91 'c':32,37 'def':21 'dev':83,118 'enumer':39 'env':61,72,74 'env.local':62 'generat':13,22,114 'hash':28,44 'int':27 'lovstudio':1,53 'lsof':109 'my-project':98 'name':25,41,89 'next.config.js':70 'ord':31 'package.json':64 'pnpm':82 'port':4,12,23,63,67,80,115 'project':3,11,24,40,88,100,117 'project-dev':116 'project-nam':87 'project-port':2 'python':20 'return':42 'script':65 'scripts/hashport.sh':81,86 'server.port':69 'skill':10 'skill-project-port' 'source-lovstudio' 'str':26 'sum':30 'topic-agent-skills' 'topic-ai-coding-assistant' 'topic-cjk' 'topic-claude-code' 'topic-cursor' 'topic-gemini-cli' 'topic-markdown-to-docx' 'topic-markdown-to-pdf' 'valu':29,45 'vite.config.ts':68 '中的':66 '为项目生成稳定唯一的端口号':14 '使用场景':47 '使用当前目录名':92 '可追加后缀生成备用端口':113 '同一项目名永远返回相同端口':18 '启动开发服务器':8,78 '基于项目名生成稳定唯一的端口号':5 '并自动更新项目配置':6 '建议使用':108 '当用户需要为项目设置端口':7 '指定项目名':96 '提示用户哪个进程占用了端口':106 '文件':59 '方式':75 '更新时优先使用':73 '更新项目配置':57 '最小侵入性':76 '查看':111 '查询项目端口':49 '检测并更新项目中的端口配置文件':58 '生成端口':90 '用户询问端口时':50 '的端口号是':54 '直接计算并告知':51 '端口冲突处理':103 '端口生成算法':19 '脚本':84 '若端口被占用':104 '范围':15 '解决端口冲突或初始化新项目配置时使用此':9 '输出':94,101 '运行':85 '通常使用':71 '配置方式':60 '项目':52","prices":[{"id":"84c0fb05-46cd-4c71-ac89-ee773bf84bdf","listingId":"4de3ae9f-ff28-45aa-8f4a-c3956983fb51","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"lovstudio","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:19:05.482Z"}],"sources":[{"listingId":"4de3ae9f-ff28-45aa-8f4a-c3956983fb51","source":"github","sourceId":"lovstudio/skills/project-port","sourceUrl":"https://github.com/lovstudio/skills/tree/main/skills/project-port","isPrimary":false,"firstSeenAt":"2026-04-18T22:19:05.482Z","lastSeenAt":"2026-04-21T01:36:49.628Z"}],"details":{"listingId":"4de3ae9f-ff28-45aa-8f4a-c3956983fb51","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"lovstudio","slug":"project-port","github":{"repo":"lovstudio/skills","stars":39,"topics":["agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx","markdown-to-pdf"],"license":"mit","html_url":"https://github.com/lovstudio/skills","pushed_at":"2026-04-20T21:40:57Z","description":"Agent skills for AI coding assistants — Markdown to PDF/DOCX with 14 themes, CJK support","skill_md_sha":"9720e9efbc69520bd51c3c29e8b990fe4808a1af","skill_md_path":"skills/project-port/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/lovstudio/skills/tree/main/skills/project-port"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"lovstudio:project-port","description":"基于项目名生成稳定唯一的端口号，并自动更新项目配置。当用户需要为项目设置端口、启动开发服务器、解决端口冲突或初始化新项目配置时使用此 skill。"},"skills_sh_url":"https://skills.sh/lovstudio/skills/project-port"},"updatedAt":"2026-04-21T01:36:49.628Z"}}