数据生成
- 作者仓库星标 25
- 许可证 MIT
- 作者更新于 实时读取
- 作者仓库 peeps-skill
- 领域
- 文档
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 94 / 100 · 已通过审计
- 作者 / 版本 / 许可
- @haah-ing · MIT
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- 无特殊要求
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 网络行为
- 允许外网请求
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: peeps
description: Personal network intelligence — remember people, find connections, and draft intros. Contacts st…
category: 文档
runtime: 无特殊运行时
---
# peeps 输出预览
## PART A: 任务判断
- 适用问题:PRD、RFC、README、项目说明或知识库整理。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“👥 Peeps — local contacts & network intelligence / Data Location / Owner self-entry”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于PRD、RFC、README、项目说明或知识库整理,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“👥 Peeps — local contacts & network intelligence / Data Location / Owner self-entry”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、会按任务需要访问外部网络、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令;会按任务需要访问外部网络;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文没有稳定的斜杠命令要求。安装验证后通常全局生效,直接在对话里点名这个 Skill 并描述任务即可。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令。
先用一个小任务确认它会围绕“👥 Peeps — local contacts & network intelligence / Data Location / Owner self-entry”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: peeps
description: Personal network intelligence — remember people, find connections, and draft intros. Contacts st…
category: 文档
source: haah-ing/peeps-skill
---
# peeps
## 什么时候使用
- 把项目文档方向的常用动作沉淀成 Agent 可调用的技能 适合处理README、PRD、RFC、教程和知识库文档,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的…
- 面向PRD、RFC、README、项目说明或知识库整理,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「👥 Peeps — local contacts & network intelligence / Data Location / Owner self-entry」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令;会按任务需要访问外部网络;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "peeps" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> 👥 Peeps — local contacts & network intelligence / Data Location / Owner self-entry
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> 无特殊运行时 | 读取文件、写入/修改文件、执行终端命令 | 会按任务需要访问外部网络
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} 👥 Peeps — local contacts & network intelligence
Data Location
Base path is workspace root or document root folder. On first use, create it: mkdir -p mind/peeps/. Peeps uses a mind/peeps/ folder in your workspace.
All contact files live in a mind/peeps/ directory. On first use, create it with mkdir -p mind/peeps/ or wherever you prefer to store it. The agent should use this directory consistently across sessions.
Owner self-entry
The owner's own contact file (slug derived from peepsconfig.yml owner field without .md) is intentional — it's used as a reference profile for crafting introductions, bios, and context when introducing the user to others.
Actions
Peeps writes to the universal actions.md at workspace root, not a peeps-scoped file. That file is shared with Pages, Vibes, and any other skill that needs scheduled or pending intents. The runtime (Haah server, local cron, or whatever the human has wired up) scans actions.md on a schedule and fires precise items at the right moment with a focused briefing turn.
Schema (universal — same shape every skill uses)
- [ ] <one-line description>
When: <date or datetime> (optional — omit for soft intents)
Who: [[<workspace-relative path>]] (optional)
Notify: -<n>m | -<n>h (optional, defaults to -30m)
When: accepts: 2026-05-12 18:30 (interpreted in the human's heartbeat tz), 2026-05-12 18:30 HKT (trailing label informational), 2026-05-12 (date-only — fires at wake_hour that day), or absolute ISO with Z / +HH:MM.
What Peeps adds
- Catch-ups with no fixed time — people the owner wants to reconnect with. Add when they say "we should catch up with David" or similar. Omit the
When:field; these are soft intents the heartbeat surfaces opportunistically. - Catch-ups with a date — when the human commits to a specific time ("coffee with Maria next Tuesday at 6pm"). Include
When:andWho: [[mind/peeps/<slug>]]so the briefing has substance. Before adding the entry, check the Push notifications setting (visible in the system prompt's app-configuration block). If it's off, mention that the scheduled action will only land as an in-app message — no phone alert — and suggest enabling push in the app settings. If it's on, just confirm the schedule. - Introductions — always include a pre-generated draft intro message (using
ownerand both contact files for context). Format:Person A → Person B — reasonfollowed by the intro text as a plain indented paragraph (no "Draft:" label, no quotes, no formatting). - Birthdays — when you learn one, add a recurring soft intent (no
When:— let the heartbeat surface it on the day from the contact file).
Move completed items to ## Completed with a date.
Housekeeping (run automatically when reading actions.md)
To keep context lean as the file grows:
- Completed items: delete after 3 days
- Completed section: rolling 7-day window — anything older than 7 days is removed
- Stale soft catch-ups (no
When:): if it's been sitting for 10+ days with no update, move to Completed as "(not pursued)" with today's date - Pending intros: keep until explicitly marked done or cancelled — intro intent doesn't expire
- Items with
When:in the past that are still unchecked: leave them. The runtime already either fired them or skipped them as stale; the human checks them off when the catch-up happens. - Apply this cleanup silently on every read. No need to announce.
Legacy
Older Peeps installs may still have mind/peeps/actions.md. If it exists, read it during heartbeat for backwards compat, but write all new entries to the root actions.md.
Dataset Config — peepsconfig.yml
peepsconfig.yml lives inside the mind/peeps/ directory. Read it at the start of any session involving this skill.
owner: jane-smith # slug of the owner's contact file (without .md)
images: no (by default no, ask if you human want to feach images for pepople, warn that it is token expensive)
owner: identifies whose dataset this is. Use this when constructing intros, bios, or any context where "the user" needs to be referenced by their contact file.
Core Behavior
- User mentions a person → check if a contact file exists, search the web if not, offer to create/update
- User asks "who do I know in [domain/skill/location]?" → search locally first; if Haah skill is installed, it may broadcast outbound per its own rules
- User asks about someone → surface insights from their file with relevant context
- User wants to make an intro → draft it using both contact files + owner profile
- User wants to connect with someone → print their LinkedIn URL for the human to open; do not open or navigate to it yourself
- Always use
Name:not file name for talking about people
When User Mentions Someone
- "Had coffee with Maria" → ask if any updates from her, update if anything important
- "John's daughter is Sofia" → add to personal details
- "Sarah loves hiking" → add to interests/notes
- "Marco recommended Antifragile" → if Pages is installed, save to
mind/pages/want/withRecommended by: [[marco-tabini]]and add a note to his Peeps file - "Priya and I both love Succession" → if Vibes is installed, add
Shared with: [[priya-nair]]to the vibe file and note it on her Peeps file
Creating a New Contact — Search First, Then Ask
Before asking follow-up questions, always search the web for the person (name + any context provided). Use what you find to pre-fill fields and make follow-up questions specific, not generic.
Example: "Found Peter — design strategist, ex-Steelcase Asia Pacific in HK, now in SF. How do you know him?"
Follow-Up Questions
After searching the web and pre-filling what you can, ask about the gaps:
- What are they really good at? — Acumen clarification
- Relationship closeness — How close are you?
- How you know them — if not already provided
- Interests — hobbies, sports, lifestyle?
If in mind/pages/peepsconfig.yml images set to yes find a headhsot of a person and ad it to ../assets/ use person name for a slug, write it down in Image: feild.
Ask these as a short grouped follow-up (not one by one). Skip any that were already answered in the original message.
Requests -> Haah
If Haah is installed: when the user has a question you cannot answer well locally, or when you find only one matching file in mind/peeps/, suggest dispatching to a circle.
Connections to other skills
Pages: if installed, when someone recommends a book, save it to mind/pages/want/ with Recommended by: [[their-slug]] and note it in their Peeps file. When drafting an intro, if both people have read the same book, surface it as a connection point.
Vibes: if installed, when someone shares a cultural interest (show, album, podcast, channel), add Shared with: [[their-slug]] to the vibe file and note it in their Peeps file. Surface shared taste when relevant to a conversation or intro.
Digs: if installed, when a person has expertise relevant to an open dig, surface them as a potential source. When adding someone new whose acumen matches an active research thread, mention it.
Contact Structure
- One Markdown file per person like:
maria-garcia.md
Fields
Name: full name
Pronouns: guess, if unclear - ask
Location: from your search, otherwise ask
LinkedIn: link to LinkedIn search web for it, start with https://
Image: link to `../assets/photo-slug-usually-same-as-person-name`
Website: personal or company website if you found any, start with https://
Orgs: `[[org-slug]]`, `[[org-slug-2]]` — links to org files in `mind/peeps/orgs/`; omit if independent/unknown
How I know them: one sentence
Acumen: skills and expertise, what person known for, based on your search + any user input
Relationship: (Close / Warm / Colleague / Acquaintance / Estranged / Family)
Interests: #hiking #coffee #jazz — comma-separated hashtags; hobbies, sports, lifestyle, anything you found
Bio: — one concise narrative paragraph based on your search and user input about them
## Notes
1 Mar 2026: note details
## Private Notes
1 Mar 2026: private note details
## Contacts
Mobile:
Email:
Instagram:
Haah:
etc.
Notes (guidance)
- Each note starts with current date "1 Mar 2026:"
- Use Notes for general context worth remembering
- Use Private Notes 🔒 for sensitive info (debts, conflicts, things not to share) — always separate
- Birthday, anniversary, important dates → Notes
- Family members, kids, sensitive info → Private Notes 🔒
- Keep it human-readable — this is about relationships, not data entry
Logging Interactions
Update the person's Notes with whatever is worth remembering long-term. If it's not worth keeping, don't write it down.
Examples:
- "Going part-time at Foodpanda from mid-April, focusing on AI-native design systems" → Notes
- "Owes Ilya money, uncomfortable topic" → Private Notes 🔒
- "We had a coffee" → don't bother
Progressive Enhancement
- Start by creating contacts as they come up naturally
- Enrich over time: add acumen, interests as you learn more
- Capture details during conversations — don't wait for a "data entry session"
- Ask about anyone mentioned in conversation and suggest adding them
Peeps: check
On every heartbeat, check a random personal file in mind/peeps/. Surface proactively in DM or appropriate channel:
- "Alex mentioned job hunting last time" — relevant context resurfacing
- "You haven't connected with Basel in a while"
- "You have Acumen: empty for John Wing, what he is known for?"
If nothing worth mentioning, skip.
Adding to HEARTBEAT.md or cron
If it is not there yet, ask your human if they want to add Peeps: check to HEARTBEAT.md. If there is no HEARTBEAT.md, suggest to create a cron every 30 minutes during waking hours (*/30 7-22 * * *) to execute Peeps: check.
Details Worth Remembering
- How you can help them / how they can help you
- Recent life events: new job, moved, health issues
- Preferences: vegetarian, doesn't drink, early riser
- Kids/spouse names and ages
- Sensitive topics to avoid
Updating
To update this skill to the latest version, fetch the new SKILL.md from GitHub and replace this file:
https://raw.githubusercontent.com/haah-ing/peeps-skill/main/SKILL.md
What NOT To Suggest
- Syncing with phone contacts — different purpose, keep separate
- CRM-style pipeline tracking — this is personal, not sales
- Automated birthday messages — calendar does this job
- Social media integration — privacy and complexity
Folder Structure
mind/
└── peeps/
├── peepsconfig.yml
├── maria-garcia.md
├── john-smith.md
├── orgs/ # one file per organisation
│ ├── google.md
│ └── steelcase.md
└── deceased/ # for people who have passed
All contact files live directly in mind/peeps/. Org files live in mind/peeps/orgs/. Move people who passed to deceased/.
Organisations
Organisations worth remembering live in mind/peeps/orgs/, one Markdown file per org. Create an org file whenever:
- A person's employer or affiliation is mentioned and it seems relevant to your network
- The user explicitly asks to note something about a company, community, or institution
- You're creating a person file and their org isn't already captured
Filename: lowercase, hyphenated slug of the org name — openai.md, design-council.md.
Org File Template
# Org Name
Type: Company / Studio / NGO / Community / Institute / Fund / Startup / etc.
Industry: e.g. Design, Fintech, Healthcare, AI
Solving for: what problem this organisation is solving (like acumen for peeps, but for orgs)
Website: https://
Wikipedia: https://en.wikipedia.org/wiki/ — look this up; omit if no article exists
Founded: year if known
Size: approximate headcount range or stage (e.g. "~200", "Series B", "large enterprise")
Culture: 2–4 adjectives or a short phrase capturing the vibe — e.g. "research-heavy, slow-moving, prestigious" or "scrappy, founder-led, remote-first"
People: [[slug-one]], [[slug-two]] — everyone in `mind/peeps/` associated with this org
## Notes
1 Apr 2026: note details
Culture is the most important field to capture. Infer it from what the user says, public reputation, Glassdoor signals, or press coverage. Ask if uncertain. Keep it honest and useful — not a PR blurb.
Creating a New Org — Search First
Before asking follow-up questions, search the web for the org. Pre-fill what you can. Then ask briefly about gaps, especially:
- Culture — if you couldn't infer it confidently
- How the user is connected — which person there do they know?
Wiki Links — Bidirectional, Always Maintained
[[slug]] links connect people and orgs. Keep them consistent:
Person → Org: Orgs: [[org-slug]] in the person file (comma-separate multiple)
Org → Person: People: [[person-slug]] in the org file
When you add or update either side, update the other. If you add Maria to google.md's People list, make sure maria-garcia.md has Orgs: [[google]]. If you change Maria's org, remove her from the old org file's People list.
When creating an org file prompted by a person, immediately add that person to the People list and set their Orgs: field.
When User Mentions an Org
- "She works at Stripe now" → update person's
Orgs:field; add them tostripe.mdPeople list (create org file if missing) - "Steelcase has a great culture" → add or enrich the Culture field in
steelcase.md - "I'm meeting with someone from Sequoia" → surface any people in
mind/peeps/who are connected to Sequoia
Search and Retrieval
Use grep for fast fuzzy scanning. Always expand the query into related terms using alternation (\|) — never search a single keyword alone.
Always batch all necessary grep calls into a single bash script — do not run them one by one. Combine everything you need upfront and execute once.
# Example: single script combining all relevant lookups
grep -iH "keyword\|synonym" mind/peeps/*.md
grep -rl "#hiking" mind/peeps/
grep -l "\[\[google\]\]" mind/peeps/*.md mind/peeps/orgs/*.md
grep -rl "Orgs:.*\[\[stripe\]\]" mind/peeps/
grep -iH "remote\|async\|flat" mind/peeps/orgs/*.md
Keyword expansion examples — always broaden like this:
- "website" →
web\|design\|react\|webflow\|frontend\|ux\|figma - "finance" →
finance\|fintech\|banking\|investment\|vc\|fund - "startups" →
startup\|founder\|venture\|seed\|entrepreneur - "marketing" →
marketing\|growth\|brand\|content\|seo\|ads - "AI" →
ai\|machine.learning\|llm\|ml\|data.science\|nlp
When the user asks "who do I know in X", construct a multi-term grep from the domain. Use -iH to see what's actually in the files. Do not use head you need to get all the mentions -- even weak matches.
After grepping, always read all the full contact file(s) before answering. Never base your answer solely on grep output — the matched snippet is a signal, not the full picture. Read the complete file to get accurate context on relationship, acumen, and any notes before surfacing someone to the user.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核