复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
Start here: Use & develop your own Skill ecosystem
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
Start here: Use & develop your own Skill ecosystem
A practical tutorial for using
SKILL.md, auditing reusable skills, drafting skills with AI, extracting real workflows, and building a local Skill ecosystem.
npx skills add dongshuyan/compass-skills --skill '*' -a claude-code
COMPASS Skills gives AI agents eight local skills: four runtime collaboration skills, two run-history skill-engineering skills, one academic humanization skill, and one local hiring-support skill.
The project currently ships eight SKILL.md skills:
| Skill | Purpose |
|---|---|
task-clarifier | Aligns goals, scope, evidence, acceptance criteria, and risk boundaries before ambiguous, costly, or externally visible work. |
task-forest | Maintains a repo-local task forest / DAG with goals, subtasks, dependencies, progress, deviations, todos, decisions, and conversation history. |
session-handoff-prompt | Compresses the current AI conversation's goal, progress, constraints, and next steps into a paste-ready prompt for a new AI conversation. |
user-profile-keeper | Maintains a local, auditable, correctable collaboration profile for communication preferences, risk style, and recurring working context. |
run-history-skill-builder | Turns completed or repeatedly refined run history into a new reusable skill package or a reviewed skill-design plan. |
run-history-skill-upgrader | Automatically turns session evidence from real execution, encountered and resolved difficulties, validation results, and user feedback into an upgrade plan for an existing skill, forming the simplest controlled self-evolution loop; it applies changes only after explicit approval. |
academic-humanizer | Helps write or revise English and Chinese academic prose by removing formulaic AI-like patterns and restoring a natural scholarly voice while preserving claims, evidence strength, and logical relations. |
assess-interview-candidate | Turns an authorized resume and job description into an auditable evidence layer and a concise three-part offline interviewer report with resume checks and markable structured questions. |
For multi-skill repositories, install only the functions you actually need. The run-history pair supports skill engineering; academic-humanizer helps authors avoid AI-sounding language while drafting and remove it from existing academic prose.
List the available skills before installing:
npx skills add dongshuyan/compass-skills --list
Install all skills for Claude Code:
npx skills add dongshuyan/compass-skills --skill '*' -a claude-code
Install all skills for both Codex and Claude Code:
npx skills add dongshuyan/compass-skills --skill '*' -a codex -a claude-code
After installation, invoke the skills directly in an AI conversation:
$task-clarifier
$task-forest
$session-handoff-prompt
$user-profile-keeper
$run-history-skill-builder
$run-history-skill-upgrader
$academic-humanizer
$assess-interview-candidate
For manual installation, copy the eight folders under skills/ into the agent's local skills directory and keep their references/, scripts/, assets/, evals/, and agents/ subdirectories intact.
Long-running agent work needs four kinds of state:
COMPASS organizes that state into four local workflows:
task-clarifier is the entry point for ambiguous, high-cost, high-risk, evidence-sensitive, or externally visible work. It first identifies the user-owned decisions that must be made, asks 1-3 focused questions with recommended answers, confirms shared understanding, and only then searches or executes.
task-forest records long-running work structure: why a task exists, where it fits, how far it progressed, what changed, and what remains unresolved.
session-handoff-prompt turns the current AI conversation, explicit transcripts, workspace evidence, and optional task-forest exports into a concise prompt for the next AI conversation. It reads task-forest as structured context but never modifies it.
user-profile-keeper stores collaboration preferences locally. Future AI conversations use the profile to ask relevant questions and apply the right risk boundary. Current files, logs, and user-provided context remain the authority; secrets stay out of the profile.
run-history-skill-builder turns a completed or repeatedly refined workflow into a new skill package or a plan-only design. If the request is really about changing an existing skill, it hands the job off instead of editing that skill directly.
run-history-skill-upgrader takes the next step for existing skills: it automatically reads session evidence from real execution, encountered and resolved difficulties, validation results, and user feedback, then produces a concrete upgrade plan and stops. Only after explicit approval of that plan does it edit files. In practice, this is the simplest controlled self-evolution loop for skills: periodically run a target skill, accumulate real session evidence, then let the upgrader turn that evidence into a reviewed upgrade plan and, after approval, an applied change.
academic-humanizer helps authors avoid AI-sounding language while drafting and remove it from existing academic prose. It targets formulaic, vacuous, mechanically repetitive, and process-leaking patterns while protecting claims, evidence strength, quotations, formulas, citations, technical names, modality, logic, and scope. The result aims to read as natural, credible scholarly writing and to reduce the likelihood that readers perceive it as AI-generated; it does not promise a universal authorship judgment.
assess-interview-candidate prepares human recruiters for a structured interview. It keeps detailed evidence and validation data in a local audit layer while presenting only a candidate overview, job-relevant resume uncertainties, and 12-18 directly readable questions in the offline HTML. It never authorizes automatic hiring, rejection, or ranking.
user-profile-keeper -> who is the user and how should we collaborate?
task-forest -> where does this task fit and is it still aligned?
session-handoff-prompt -> what should the next AI conversation know to continue now?
task-clarifier -> what should the agent do now?
run-history-skill-builder -> how do we package this proven workflow as a new skill?
run-history-skill-upgrader -> how does a skill self-evolve safely from real session evidence?
academic-humanizer -> how do we remove AI-sounding prose without changing its claims?
assess-interview-candidate -> how do we prepare a focused, evidence-bounded human interview?
A vague request is turned into a checked requirement before the agent recommends anything.
Formatted from a live terminal run. Terminal status lines are omitted.
User
I want to buy a suitcase, can you tell me which one is the best?
$task-clarifier
Before recommending a product, the skill turns "best" into concrete decision criteria:
User answer
1A 2C 3A
Business travel, $300-600, maximum durability.
$task-clarifier
The first answers narrow the problem, but two choices still change the recommendation:
User answer
Checked bag, hard shell.
$task-clarifier
One last decision remains:
User answer
28 inches.
$task-clarifier
You need a checked suitcase for frequent business travel. The bag should be hard-shell for maximum durability and professional appearance, 28 inches for extended trips, and within a $300-600 budget. Durability is your top priority over lighter weight or organizational gimmicks.
Inferences to confirm
Task forest HTML export:

Live DAG view:

Task detail view:

User profile and alignment flow:

Ecosystem map:
COMPASS works across agent runtimes as a SKILL.md package with Markdown instructions, YAML frontmatter, optional references/, optional scripts/, and optional agent metadata.
| Agent / environment | Recommended setup |
|---|---|
| Claude Code | Use npx skills add dongshuyan/compass-skills --skill '*' -a claude-code, or copy the folders under skills/ into Claude Code's custom skills directory. |
| Codex | Use the skills CLI with -a codex when supported by your environment, or use the repo as a local skills source. |
| OpenCode / OpenClaw / other agents | Keep AGENTS.md and load the matching SKILL.md first, then use references/ and scripts/ as needed. |
The scripts use Python standard-library components and run locally. assess-interview-candidate requires Python 3.10 or later and uses capability-based instructions instead of fixed Agent tools or installation paths.
COMPASS keeps runtime data local:
task-forest stores task data under the current workspace, usually .agent-workbench/task-forest/.session-handoff-prompt is read-only by default. It can validate local handoffs with real workspace paths or redact them for shareable handoffs.user-profile-keeper stores local profile data under .compass-skills/user-profiles/v1 by default, or a user-selected COMPASS_USER_PROFILE_HOME.run-history-skill-builder reads only user-authorized workflow history and writes new skill files only to a user-approved local directory.run-history-skill-upgrader is plan-only by default. It can synthesize real session evidence into an upgrade plan automatically, but it enables a controlled self-evolution loop only after explicit approval of a concrete plan.academic-humanizer preserves source claims and locked spans, never invents facts or citations, and uses its Python script only for optional read-only diagnostics.assess-interview-candidate keeps authorized resumes and reports local, excludes contact details and precise addresses from the interviewer view, and prevents age, birthplace, hometown, marital status, or location from entering fit scores or hiring decisions.Important: user-profile-keeper uses local plaintext storage without encryption. Do not store passwords, tokens, private keys, verification codes, or highly sensitive personal data in the profile.
See SECURITY.md for the security boundary.
Clarify a task before execution:
Use $task-clarifier to align the task below.
Task: ...
Material: ...
Constraints: ask user-owned decisions first; infer discoverable facts from files, context, or reliable sources. Ask only questions that change scope, method, evidence, format, safety, or acceptance criteria.
Output: ask 1-3 key questions with recommended answers first; once the core need is clear, restate your understanding in 2-5 lines and ask me to confirm.
Maintain the task forest for a workspace:
Use $task-forest to analyze the current AI conversation and maintain the task forest for this workspace.
Goal: create a task-forest proposal from long-running goals, tasks, progress, deviations, risks, decisions, and follow-ups in this AI conversation.
Requirements:
1. Read the current task-forest list and todo first; initialize task-forest if missing.
2. Identify which long-term goal this AI conversation served. If no relation is clear, ask me or create a question/risk node.
3. Save a proposal and show me the planned changes before applying.
4. After approval, apply, validate, export, and report the HTML path.
Create a continuation prompt for a new AI conversation:
Use $session-handoff-prompt to create a balanced continuation prompt for a new AI conversation.
Goal: let the next AI conversation continue the current task without replaying the whole transcript.
Requirements:
1. Use the current conversation, explicit files I provide, current workspace evidence, and task-forest exports if present.
2. Keep task-forest read-only; do not save proposals or modify the task graph.
3. Use my language for the prompt. Default to Chinese if unknown.
4. Use privacy=local for this machine. If I ask for a public/shareable handoff, redact local paths and credential-like strings first.
5. Put the paste-ready prompt first, then briefly state mode, sources, and limitations.
Representative output shape:
你正在接手一个已经进行过多轮的 AI 对话。请按以下上下文恢复任务状态;如果当前文件或可验证证据与这里冲突,以当前证据为准。
【工作目录】
<workspace>
【用户目标】
把 session-handoff-prompt 作为 COMPASS 的正式 skill 接入,支持 macOS、Linux、Windows 和主流 agent。
【必须遵守的要求】
- [已验证] 内部说明用英文;交互和输出使用用户语言,默认中文。
- [已验证] 不读取 credential、cookie、浏览器 session 或无关私有日志。
【下一步】
1. 更新 README 和 manifest。
2. 运行 smoke test 和安全扫描。
3. 报告验证结果和剩余风险。
Initialize a local user profile:
Use $user-profile-keeper to initialize my local user profile.
Goal: build an auditable, correctable, retractable profile from a local questionnaire or the current context.
Boundaries:
1. Store locally only. Do not upload anything or read browser cookies, tokens, or credentials.
2. Do not save secrets, passwords, private keys, verification codes, or browser-session information.
3. Put inferred, private, sensitive, or conflicting claims into pending proposals for my review.
4. Report what was saved, proposed, skipped, or redacted.
Remove AI-sounding language from academic prose without changing its claims:
Use $academic-humanizer to remove AI-sounding language from the academic passage below.
Preserve every claim, number, citation, comparison, hedge, causal relation, and scope boundary. Keep quotations, formulas, code, references, statistical notation, proper nouns, and requested verbatim text unchanged. Remove only unsupported, vacuous, mechanically repetitive, or process-leaking wording. Return the clean revised passage without an editor preface.
Passage: ...
Prepare a structured candidate interview report:
Use $assess-interview-candidate with the authorized resume and job description I provide.
Requirements: read every page of the PDF through both text extraction and visual inspection; keep the detailed evidence and validation data in the local audit layer; make the interviewer HTML contain only a candidate overview, job-relevant resume uncertainties, and 12-18 directly readable questions. Display candidate-provided schools, employers, and cities without guessing missing facts. Keep age, birthplace, hometown, marital status, and location out of fit scores and hiring decisions. Write only below the local case root I approve.
The public install path has been validated with skills@1.5.11:
npx skills add dongshuyan/compass-skills --list finds the released skills.npx skills add dongshuyan/compass-skills --skill '*' -a claude-code --copy -y installs the released skills into a temporary project's .claude/skills/ directory.python3 skills/session-handoff-prompt/scripts/smoke_test_handoff.py --skill-dir skills/session-handoff-prompt validates compacted-event projection, task-forest read-only summaries, local validation, and shareable redaction.printf '%s\n' 'Samples were randomized.' | python3 skills/academic-humanizer/scripts/metrics.py - --json provides read-only descriptive diagnostics for language routing, process leaks, and contrast candidates without assigning an authorship or quality score.skills@1.5.23, the current local source is detected as eight skills, and assess-interview-candidate copies successfully into temporary Codex and Claude Code skill roots.Planned additions:
MIT. See LICENSE.
name: task-clarifier
description: >-
Deep need-clarification skill. Activates only on explicit invocation: direct
reference to $task-clarifier, or trigger phrases "帮我理清需求" / "需求澄清" /
"clarify" / "clarify my needs" / "help me clarify". Once activated, keeps
asking until all three goals are met: the user fully understands their own
needs, the AI fully understands the user's needs, and the user confirms the
AI's understanding is correct. Does not auto-activate; does not intervene in
task execution unless explicitly invoked.All output directed at the user — questions, options, recommendations, confirmations, summaries — must be written in the user's language. Detect the user's language from their message. Default to Chinese when unknown. If the user writes Chinese, every word of output must be Chinese. Do not use English in any user-facing output unless the user writes in English.
On activation, silently attempt the following best-effort reads. If any source is unavailable, unsupported, or fails, continue without it — do not block the clarification loop.
Use the current agent or harness's native skill mechanism first. This skill must work in Codex, Claude Code, OpenClaw, OpenCode, and other agents that can read a SKILL.md file. Do not assume a specific agent name, skill root, home directory layout, shell, or operating system.
User profile summary — If $user-profile-keeper is available, read its clarification_summary view (low-sensitivity, need-alignment-related preference data only). Prefer the agent's built-in skill invocation, MCP/tool bridge, or documented companion-skill API.
Task forest — If $task-forest is available, read the current workspace task list and open todos. Prefer the agent's built-in skill invocation, MCP/tool bridge, or documented companion-skill API.
If direct script execution is the only available integration path, first discover the companion skill directory through the current harness's skill registry or by resolving the repo-local skills/<skill-name>/ directory from this SKILL.md location. Construct file paths by joining path segments with the host language or runtime path utilities so the same logic works on macOS, Linux, and Windows. Use the operating system's available Python launcher (python3, python, or py -3) only after discovery succeeds. Never hard-code paths such as ~/.codex/..., ~/.agents/..., absolute POSIX paths, or Windows drive paths.
The profile summary enriches the phrasing of question options and recommendations to better match the user's communication style and domain background.
The task forest provides context for the global purpose and evolution of the current request, so recommendations align with the real overall goal.
The current user message overrides all profile information. Neither source replaces asking about any dimension.
Do not read the full profile, pending profile, private background, raw evidence, credentials, cookies, tokens, keys, or unrelated private information. Do not write to the profile or task forest.
Each round executes the same action:
From the current conversation and readable context, extract the part that most affects the current outcome. Break it into as few questions as possible — covering what is needed for complete and accurate understanding, as few as possible, at most 3 — and provide a recommended answer and options for each question.
Questions cover whichever of the following still affects the outcome:
When a fact can be obtained from local evidence, look it up before asking. User decisions must be confirmed by the user; never substitute a default value for a question.
When the user says "up to you / whatever / your call / 你看着办 / 随便 / 你来定", provide a recommended option and ask the user to confirm — do not proceed to execution automatically.
When all three goals are met, enter the confirmation stage. Otherwise keep asking.
High-risk actions — including delete, overwrite, migrate, publish, send, deploy, install, use credentials, elevate permissions, write to remote systems, or change global configuration — require listing the exact actions and waiting for explicit approval before execution, even after the confirmation summary is accepted.
Generate questions and recommended answers that are simple, clear, accurate, complete, and understandable to anyone. Output in the user's language (default Chinese).
Each question follows this layout — reason first, options second, recommendation last:
**Q1. [一句话:这个问题为什么影响结果]**
A) [选项] B) [选项] C) [选项] D) 告诉我你的想法
→ 我的建议:[推荐答案,简洁直接]
When asking multiple questions in one turn, separate each with a blank line and ---:
**Q1. [原因]**
A) … B) … C) … D) 告诉我你的想法
→ 我的建议:…
---
**Q2. [原因]**
A) … B) … C) … D) 告诉我你的想法
→ 我的建议:…
Draw on the communication preferences and domain familiarity in the profile summary (if read), and the global goal context in the task forest (if read), to make options and recommendations more relevant to this user and this task.
Once all three goals are met, output in the user's language (default Chinese):
我的理解如下:
[用自然语言陈述用户的完整需求,3-5 行,具体、准确、不遗漏关键约束]
我的推断(请逐条确认):
- 我推断 [X],因为 [具体原因] — 如有偏差请直接纠正
- 我推断 [Y],因为 [具体原因] — 如有偏差请直接纠正
确认后我会:[下一步动作]
有没有我遗漏的?
If the user corrects any inference → update the understanding, ask at most 1 follow-up question on the corrected point, and output the confirmation summary again.
If the user confirms everything is correct → this skill ends; execution can begin.
Once this skill is explicitly invoked, no bypass is used, and no safe defaults substitute for asking. Recommended answers help the user choose quickly; they are not automatically written into the requirements.
User: $task-clarifier 帮我写个爬虫,要快,把100万条历史数据全抓完
Round 1 (identify contradiction + highest-impact decision):
Q1. "快"和"100万条全部抓完"之间存在冲突:完整抓取百万级数据通常耗时较长,且可能触发速率限制或封禁。你更看重哪个?这决定了整体技术策略。
A) 完整性优先(接受耗时,分批完成) B) 速度优先(接受部分数据缺失) C) 有具体 deadline(请告诉我时间) D) 告诉我你的想法
→ 我的建议:完整性优先,用分批 + 限速策略保证全量,避免封禁。
User: 完整性优先,3天内跑完
Round 2 (acceptance criteria):
Q1. 你如何判断"抓完了"?这决定了数据完整性的验收方式和补抓策略。
A) 条数达到100万即可 B) 需要与某个基准数据对比验证 C) 告诉我你的想法
→ 我的建议:以实际抓取条数为主标准,同时记录失败条目以便补抓。
[All three goals met → enter confirmation stage]
Context: Profile summary shows the user prefers Chinese, structured expression, and evidence-first reasoning.
User: $task-clarifier 帮我研究这个工具值不值得用
Round 1 (evaluation criteria + output form):
Q1. "值不值得用"需要先确定判断标准;成本、稳定性、安全性、迁移成本会导向不同结论。这决定了评估的维度和深度。
A) 快速判断能不能用 B) 深度评估长期采用成本 C) 和替代方案对比 D) 告诉我你的想法
→ 我的建议:按"是否解决当前问题、迁移成本、可验证风险"三项评估,优先使用官方文档和本地证据,输出结构化对比。
Context: Task forest shows global task is "Python 2→3 full migration"; current subtask is "auth module migration".
User: $task-clarifier 帮我把 auth.py 的 print 语句改成 print 函数
Round 1 (scope + global goal context):
Q1. 这个修改属于 Python 2→3 迁移任务的一部分。auth.py 中还可能存在其他兼容性问题(unicode 字符串、整数除法、异常语法等)。这次范围如何定?这决定是否需要反复修改同一个文件。
A) 只改 print 语句 B) 一并处理 auth.py 所有 Python 2→3 差异 C) 告诉我你的想法
→ 我的建议:选 B,一并处理,加快整体迁移进度。
我的理解如下:
你需要用 Python 编写一个爬虫,抓取目标网站的100万条历史数据。
完整性优先,接受分批 + 限速策略,3天内完成。
验收标准:实际抓取条数达到100万条,记录失败条目以便补抓。
我的推断(请逐条确认):
- 我推断目标网站公开可访问(无需登录),因为你未提及账号或认证信息 — 如有偏差请直接纠正
- 我推断数据存储在本地数据库,因为百万级数据量通常不适合纯文件存储 — 如有偏差请直接纠正
- 我推断这是一次性历史全量抓取,不需要实时增量更新 — 如有偏差请直接纠正
确认后我会:生成爬虫代码框架(含分批 + 限速逻辑、失败条目记录)。
有没有我遗漏的?
评论 (0)
暂无评论,成为第一个评论者吧!