本文へ移動
cccskills
無料GitHub で公開

project-brainstorm

当学生说"我想做个项目但不知道做什么"、"这个想法可行吗"、"帮我想想能做点什么"、"我有个点子想聊聊"、"这个课题值不值得做"时使用。项目动手之前的全方位判断:先读他的档案、已有经历和写过的东西,把重复的信息合并掉再数还剩几件事,然后直接给出三个具体到能明天开工的方案,每个都摆明代价、需要什么、可能死在哪。

定方案之后落成长期事项加前三个里程碑,并存一份构思稿。不吹可行性,不替他选,不为了申请而编项目。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md13.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

项目头脑风暴 / Project Brainstorm

在动手之前,把一个项目想法从"听起来不错"推到"明天上午可以做第一件事"。

这个 skill 存在的理由是:学生卡住的不是没有想法,是没法判断哪个想法真做得动。 "做个环保相关的项目"这句话里,缺可行性、缺代价、缺"做完之后手里有什么"。 把这些摆出来,他自己就能选。

何时使用 / When to use

  • 学生想做点什么但方向模糊("想做个项目""想搞个社团")
  • 他有一个具体想法,想知道值不值得投入
  • 已有的个人项目或课题做不下去了,要判断是转向还是收尾
  • 要选研究课题、竞赛选题、EE/IA 题目(要评分的选题只给方向和可行性,见「边界」)

不适用于 / Not for:

  • 已经定了要办读书会、分享、讲座、社群活动这类事(不论办没办过),要判断办多小、 下一步往哪走、停不停 —— 那是 program-maturity-navigator。个人项目、研究课题, 或者还要在几个方向里挑,才归本 skill
  • 项目已经定了,要排时间 —— 那是 deadline-to-study-plan
  • 整理已经做完的经历 —— 那是 activity-profile-builder
  • 问"招生官会怎么看我现有的背景" —— 那是 admissions-reader
  • 深挖某段经历对他的意义 —— 那是 reflection-interviewer

流程 / Process

1. 读三样,一次读齐

读什么用来判断
get_profile年级与课程体系——决定还剩多少时间。12 年级上学期启动一个两年期项目,这件事本身就该说出来
get_events(kind: long 与近期短期都要)他已经做过什么(别推荐重复的)、手上压着多少(时间还有没有)
search_artifacts他自己写过的东西里有没有这个方向的影子。真正的好项目多半藏在他已经在意的事里,不在"什么背景提升项目热门"里

2. 去重,再数还剩几件事

把上一步搜到的资料条目一起丢给 dedupe_findings。

这一步不能省。 学生的反思、复盘、活动记录里同一件事会出现好几遍—— 一段机器人社的经历可能有一条长期事项、两篇反思、一次周复盘提到。 不去重就会得出"他在这个方向上已经积累很厚"的错误结论,然后劝他别做。

去重分两半,工具只做前一半:

谁做例子
字面重复dedupe_findings同一个链接的不同写法、复制粘贴过的两条记录、转载
说的是同一件事你自己「区域赛拿了第四」与「名次是第四名」——字面几乎不重合,工具合不了

dedupe_findings 返回的字段:

字段是什么怎么用
received交进去几条就是要报的"原始 M 条"
distinct字面去重后剩几条不是最终答案,语义那一半还没做
kept字面去重后留下的条目在它上面自己再并一遍
mergedGroups被合掉的每一组:留下哪条(keep)、合掉哪些(merged)、为什么(reasons,如"同一个链接""字面重合 72%")向学生转述合并依据,不只给数字
similar"差一点就算重复"的成对条目,附重合度(overlap)只是字面接近,不是语义相关,也没有合并;逐对自己判
skipped没有标题也没有正文、或超出 100 条上限而没处理的条数(有这种条目时才出现)如实说出来

所以拿到 kept 之后再自己过一遍标题和片段,把讲同一件事的并掉,然后才报数字。

如实说出两个数:「原始 8 条,去掉重复后是 3 件事」。不要把重复计数当成积累厚度—— 这是这个流程最容易犯的错,代价是劝退一个其实还很空的方向。

3. 直接给三个方案

不要先问"你想做哪个领域"。 拿着第 1 步读到的东西,直接给三个具体方案。 EE、IA、竞赛这类要评分的选题是例外:三个方案写成候选方向和可行性判断, 不替他写出研究问题,见「边界」。 每个方案必须写满这五项,缺一项就是没想清楚:

### 方案 <N>:<一句话说清楚做什么>
- **第一件事**:明天/这周能动手的那一件,具体到动作
- **要什么**:时间(每周几小时 × 几个月)、钱、人、设备、许可
- **做完手里有什么**:一份报告 / 一个能跑的东西 / 一场办成的活动 / 一组数据
- **可能死在哪**:最可能让它半途而废的那一个原因,写具体
- **和你已有的关系**:接着 <某段经历> 往下走 / 是个全新方向(两者都行,说清楚就好)

三个方案要在代价上拉开差距——一个轻的(几周)、一个中的(一学期)、一个重的(一年以上)。 三个都是"一学期的中等项目"等于只给了一个。

「可能死在哪」是这五项里最有用的一项。 学生放弃项目的原因通常在开始时就看得见: 需要学校批但没人牵头、需要采访但不认识人、需要连续三个月每周投入但下学期就是大考季。 说出来,比列十个优点有用。

4. 只问真正的岔路口

三个方案摆完,用 ask_user 一次问完剩下的选择(最多 4 问)。值得占一问的:

问什么选项举例
选哪个方向方案 1 / 2 / 3 / 都不是,我想说说别的
每周能投入多少2 小时以内 / 2–5 小时 / 5–10 小时 / 更多
有没有硬约束需要家长出钱就不行 / 不能占用周末 / 必须能写进申请 / 没有

不要问"你对什么感兴趣"。 这问题他答不好,而且第 1 步读到的东西比他临时想出来的答案准。

5. 定下来就落地

  • propose_events 提案一条 kind: long 的长期事项(这个项目本身), 加前三个里程碑的短期事项。只提前三个——再往后排的都是猜的。 每个里程碑都要有交付物,"推进项目"不是交付物。
  • propose_artifact 存一份 kind: plan 的构思稿,把三个方案、选了哪个、 为什么选、当时判断的风险都写进去。没选的那两个也要留着—— 半年后项目卡住时,这份记录是最有用的东西。

赶某个比赛或申报截止日的,有 resolve_deadline 就用它换算;没有时跑「没有这些工具时(降级)」 里的 python3 命令,结果标"降级计算"。两种情况都不许口算,也不许凭感觉估。

输出格式 / Output

## 你现在的位置
<年级 / 体系 / 手上压着什么 / 还剩多少可支配时间>

## 相关的积累
去重后 <N> 件(原始 <M> 条,合并了 <M-N> 条重复):
- <一件事> —— 来自 <哪几条记录>;合并依据:<工具给的 reasons,或你判断是同一件事的理由>

## 三个方案
<按上面那个模板,三段>

## 我的看法
<一段。可以有倾向,但要说清楚倾向的依据,并且明确这是他的决定>

没有这些工具时(降级)

上面点名的工具只有 nestudy 运行时有。在 Claude Code 或别的宿主里逐个这样替代, 并在输出里如实标"降级":

工具没有时怎么做
get_profile在对话里一次问齐年级、课程体系、目标方向;使用者贴了档案就直接读
get_events请使用者列出正在做和做过的长期项目、近期压着的事,不替他补
search_artifacts请使用者贴出或指给你相关的反思、复盘、活动记录;能读文件就读他指定的那几份
dedupe_findings只合并两种确定的字面重复:链接去掉追踪参数(utm_ 之类)、www 和末尾斜杠后完全相同,或标题完全相同。其余都归到语义那一半,逐对自己判并写出依据;不报目测的重合度。「相关的积累」标"降级:字面去重只核了链接和标题"
ask_user在对话里直接问,同样一次问完、最多 4 问、每问附选项
propose_events输出一张 Markdown 卡片:长期事项(名称、开始日)加前三个里程碑(名称、到期日 YYYY-MM-DD、交付物),标"降级:未写入日程,请自己录入"
propose_artifact把构思稿整份输出成 Markdown(含没选的两个方案),标"降级:未存档,请自己保存"
resolve_deadline跑下面的命令,结果标"降级计算";不许口算,也不许凭感觉估

每行一个截止日:日期 时间 时区 标签,时区写 IANA 名(美东 America/New_York、美西 America/Los_Angeles、英国 Europe/London);通知没写具体时间的按 23:59 算并注明。命令按北京时间换算,与 application-timeline-builder、deadline-to-study-plan 用的是同一段程序,打印出的警告和「夏令时切换」行照样转述。需要 Python 3.9 以上。

python3 -c 'import sys
from datetime import datetime, timedelta, timezone
from zoneinfo import ZoneInfo
bj, utc = ZoneInfo("Asia/Shanghai"), timezone.utc
today = datetime.fromisoformat(sys.argv[1]).date() if len(sys.argv) > 1 else datetime.now(bj).date()
gap = lambda x: f"北京 = 当地 {(x.astimezone(bj).utcoffset() - x.utcoffset()) / timedelta(hours=1):+g} 小时"
for line in sys.stdin.read().splitlines():
    if not line.strip(): continue
    d, t, z, *label = line.split()
    tz = ZoneInfo(z)
    raw = datetime.fromisoformat(f"{d} {t}").replace(tzinfo=tz)
    loc = raw.astimezone(utc).astimezone(tz)
    b = loc.astimezone(bj)
    n = (b.date() - today).days
    print(" ".join(label) or d, f"| 当地 {loc:%Y-%m-%d %H:%M %Z} | 北京 {b:%Y-%m-%d %H:%M} | {gap(loc)} |", f"还有 {n} 天" if n >= 0 else f"已过 {-n} 天")
    if raw.replace(fold=1).utcoffset() != raw.utcoffset(): print("  警告:这个当地时间落在夏令时切换的那一小时里(不存在或出现两次),先向学校确认")
    u = loc.astimezone(utc).replace(minute=0, second=0, microsecond=0)
    prev = (u - timedelta(hours=505)).astimezone(tz)
    for h in range(-504, 505):
        x = (u + timedelta(hours=h)).astimezone(tz)
        if x.utcoffset() != prev.utcoffset(): print(f"  夏令时切换:{x:%Y-%m-%d %H:%M} 起 {prev.tzname()}→{x.tzname()},在截止之" + ("前" if h <= 0 else "后") + f";切换前 {gap(prev)},切换后 {gap(x)}")
        prev = x' <<'EOF'
2026-11-01 23:59 America/New_York 比赛截止
EOF

第 2 步的分工不变:语义上算不算一回事,本来就是你的活。

边界 / Boundaries

  • 不吹可行性:三个方案里如果有一个你觉得多半做不成,就写在「可能死在哪」里, 不要为了凑三个而端上来一个漂亮的空壳。
  • 不替他选:可以有倾向、要给依据,但选择是他的。他的时间、他的兴趣、他要承担后果。
  • 要评分的选题只给方向和可行性:EE、IA、竞赛这类选题,三个方案只作候选方向和可行性判断, 研究问题由学生自己定,并交导师确认。采用了 AI 建议的,按 IB 或学校的规定注明。
  • 不为了申请而编项目:不说"这个方向招生官会喜欢"。没人知道,说了就是编。 一个他自己不在乎的项目做不完,做完了也写不出真东西。
  • 不编数据支撑可行性:不引用"这类项目通常需要 X 小时"、"同类竞赛录取率"这种 你没有来源的数字。要么说清楚是估算及估算依据,要么不说。
  • 去重结果如实说:合并了几条就说几条。把重复计数当成积累厚度是这个流程最容易犯的错。
  • 不推荐需要造假才能完成的项目:需要伪造数据、冒用身份、绕过学校规定的,直接说不做。
  • 不承诺结果:项目做不做得成取决于他,不是取决于这份规划。

Token 控制 / Token discipline

  • 三样一次读齐,不要为每个方案单独回去查
  • search_artifacts 用 2–3 个关键词一次搜完;去重也是一次调完,不要一条条比
  • 三个方案控制在一屏内读得完。每项一两句,写不下说明还没想清楚
  • 没被选中的方案不要在后续轮次里反复重贴,构思稿里存过就够了

变更记录 / Changelog

版本日期变更类型
0.1.12026-09-26第 2 步写明 dedupe_findings 返回的各字段(原先只提 kept、similar,用例却要转述 mergedGroups、不把 distinct 当答案);补要评分选题(EE/IA、竞赛)的诚信边界;新增「没有这些工具时(降级)」,截止日换算改为有工具用工具、没有就跑 zoneinfo 命令并标降级计算;与 program-maturity-navigator 按对象分流patch
0.1.02026-08-05初始草稿。含 dedupe_findings 去重环节;网页检索的部分等 S11 的 web_search 落地后接入,去重本身不需要改动minor

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当学生说"我参加过一些活动但没整理过"、"帮我把经历录进去"、"我的活动档案是空的"时使用。让学生一口气把记得的活动说出来,直接把这段话拆成结构化的长期事项(角色、组织、起止时间、做了什么、结果、级别),说不清的字段留空标"待补"而不是编,再用一张选择题卡把级别判定与是否重复这类关键项一次问完,然后提案入库。只记录学生真正说出口的内容,级别按事实判定,绝不往高了写。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当学生问"招生官会怎么看我的档案"、"我的背景还差什么"、"帮我评估一下现在的申请竞争力"时使用。以顶尖大学招生官的视角通读学生的档案、长期活动与已写下的反思,不问任何前置问题直接产出一份指名道姓的坦诚点评:这份材料的亮点、招生官真实的解读方式、明显的短板与空白、以及接下来最值得做的一到两件事。只读不写,不修改学生的任何数据,也不代写任何申请材料。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当使用者说"帮我填词"、"按这个字数模板写歌词"、"用多Agent对抗式写词"、"这首副歌帮我想几句"时使用,前提是字数骨架和这首歌写什么都已经有了;只有主题、还没定写什么时先用 lyric-concept-builder。拿一份字数骨架和意象系统,派三个 sonnet 子代理按不同路子并行独立起草(场景派 / 口语派 / 意象派),再派一个红队子代理逐句挑毛病,主 Agent 按句裁决拼稿,最后统一辙口与意象。收敛判据卡死:字数用 lyric-doctor 的脚本对模板数、每段同辙、hook 不含陈词、主歌二对主歌一有推进。不抄现有歌词,不替使用者决定这首歌要说什么。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当想知道一段 AI 回答"哪些能直接用、哪些必须先验证、哪些只能当建议"时使用。按声明类型分四级——低风险草稿材料、观点与策略建议、可查证的事实声明、会改变状态的可执行指令——每级配一句默认处置动作;再按影响半径排序,给出最小的下一步检查。可执行类一律标"不能直接执行;先做代码审阅/沙箱测试/回滚准备",其中破坏性或提权的命令排在最前。教的是一套可复用的复查习惯,不是替使用者把所有内容都核实一遍:本 skill 只分级、排序、定处置,要逐条核实走 ai-output-fact-checker,整段代码要做入库体检走 ai-code-onboarding-checklist。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

当拿到一段 AI 生成的代码,还没决定要不要信、要不要跑、要不要往上继续加东西时使用。先做一遍客观体检:行数与嵌套深度、有没有测试、有没有硬编码密钥或遗留 TODO、依赖是不是真实存在、有没有危险调用(eval/exec、shell=True、递归删除、反序列化、提权、外发网络,按正文给的 grep 模式逐类查);再给风险评级和下一步动作。老实写明它查不了算法正确性——体检通过不等于代码是对的。回答里文字、事实和代码混在一起时先用 ai-answer-triage 分级;只审相对已有代码的一份改动用 ai-diff-review-protocol。

日本語の概要は準備中です。原文の説明を表示しています。

ChromiteCr/Skills42026年10月16日 更新

ChromiteCr のスキルをすべて見る

このスキルの問題を報告する