当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。
日本語の概要は準備中です。原文の説明を表示しています。
当学生说"下个月要考 IB 大考不知道怎么安排"、"这几个 DDL 撞在一起了"、"帮我排一下复习计划"时使用。从一个或多个截止日倒推出到期之前的可执行安排:先读清楚已有事项,直接按合理假设排出第一版有交付物的节点,同时把只有本人知道的岔路口(每天多少时间、哪些天动不了)一次问完,拿到答案后修订并提案进日程。
不排满、不编造截止日、不给"每天学两小时"这种无法验收的任务。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
给定一个或多个截止日,倒推出到期之前该做什么、什么时候做,并提案进学生的日程。
这个 skill 存在的理由是:学生知道 DDL,也知道该复习,卡住的是中间那一段—— 把"5 月 8 日 IB 物理大考"翻译成"这周三之前把电磁学的错题重做一遍"。
不适用于 / Not for:
weekly-study-reviewactivity-profile-builderapplication-timeline-builder| 输入 | 必填 | 说明 |
|---|---|---|
| 截止日 | 是 | 具体日期。学生只说"下个月"就问清楚,不要挑一个日期替他定 |
| 已有事项 | 是 | 先读一遍。不知道那几天已经排了什么,排出来的计划必然打架 |
| 每天实际可用时间 | 是 | 决定整个计划的形状。先按 2 小时排出骨架,同一轮用 ask_user 问真实值,拿到之后重排 |
| 学生档案 | 否 | 课程体系与在读科目,用来判断这门课的复习该按什么粒度拆 |
可用时间这一项最后必须落实。 按"高中生每天应该能学三小时"排出来又不告诉学生的计划, 第一周就会崩,然后学生会认为是自己不行。所以做法不是"问到了才动手",而是 先给一版并把假设写在最上面——他看着具体的日程说"我哪有 2 小时",比凭空回答准得多。
读现状:取回已有事项(尤其是截止日前后那段时间的短期事项)与学生档案。
先排出第一版:不要停下来等信息。按"每天 2 小时、周末 3 小时"倒推, 把假设明写在最前面。截止日本身没说清楚是唯一的例外——日期不确定就整份计划都建在沙子上, 那种情况把日期作为第一个问题问出来,先别排。
同一轮把该问的一次问完:调 ask_user,最多 4 问,问那些只有他本人知道、
而且会改变计划形状的事。典型的两问:
| 问什么 | 给什么选项 |
|---|---|
| 每天实际能拿出多少 | 1 小时以内 / 1–2 小时 / 2–3 小时 / 3 小时以上 |
| 这段时间有没有动不了的安排 | 周末有课外班 / 有比赛或考试 / 有家庭安排 / 没有 |
不要问"要不要我帮你排"、"这样可以吗"——第一版已经在他眼前,他会直接说哪里不对。
按答案重排:调整每日负荷、避开动不了的日子,切成 3–6 个有交付物的阶段性节点。 判据是"做完之后能拿出一个东西来"——一份错题整理、一套做完的真题、一版写完的提纲。 "复习电磁学"不是交付物,"把电磁学近三年真题做完并订正"是。
落到具体日期:避开已有事项占满的日子,在截止日前留出至少 1–2 天缓冲。 把最后一天排成"最终检查"而不是"继续赶工"。
提案:用 propose_events 逐条提案为短期事项,startDate 是该做完的那天。
跨时区的截止日(申请、境外考试报名)有 resolve_deadline 就用它换算;没有时跑下文「没有这些工具时(降级)」里的命令,
结果标「降级计算」。哪种情况都不要口算。
第一版(与问题卡同一轮发出):
## 先按这个排了一版
截止:<日期>,距今 <N> 天,其中可用 <M> 天(已避开 <已有安排>)
**假设:每天 2 小时、周末 3 小时** —— 下面的问题答完我按你的实际情况重排
## 节点
1. <日期> —— <交付物>
2. <日期> —— <交付物>
...
<日期> —— 最终检查(不安排新内容)
拿到答案后给出修订版,然后调用 propose_events 出卡。
不要先把计划列一遍再问"要不要保存",想清楚了就直接出卡。
上面的流程按 nestudy 的工具写。在 Claude Code 或其他没有这些工具的环境里,流程、输出格式和边界都不变, 只把工具换成下表的做法,并在回复开头写明「降级:没有 nestudy 工具,已有安排来自你的描述」。
| 工具 | 没有时怎么做 |
|---|---|
get_events | 读不到已有事项:第一版照常先排,把"还不知道你那几天已经排了什么"写进最上面的假设,同一轮的问题里请他列出截止日前已定的考试、比赛和固定安排 |
get_profile | 从对话里取年级、课程体系和在读科目;没有就按科目本身拆,不为此单独追问 |
ask_user | 在对话里直接问:同样最多 4 问、每问给选项,一次问完,然后停下等他回答 |
resolve_deadline | 跑下面的命令;结果标「降级计算」,打印出的警告和「夏令时切换」行照样转述 |
propose_events | 把修订后的节点写成一张 Markdown 卡片(日期、交付物;日期是该做完的那天),请学生自己存进日历;不说"已加入日程" |
每行一个截止日:日期 时间 时区 标签,时区写 IANA 名(ET → America/New_York,PT → America/Los_Angeles)。
北京时间的截止日也可以用它算「距今 N 天」,时区写 Asia/Shanghai。第一个参数是今天(北京时间)的日期,
省略就取本机当天。需要 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' 2026-08-04 <<'EOF'
2026-11-06 23:59 America/Los_Angeles 竞赛报名
2026-09-05 23:59 Asia/Shanghai HL物理月考
EOF
上例的输出(命令会检查截止时刻前后 21 天内的夏令时切换):
竞赛报名 | 当地 2026-11-06 23:59 PST | 北京 2026-11-07 15:59 | 北京 = 当地 +16 小时 | 还有 95 天
夏令时切换:2026-11-01 01:00 起 PDT→PST,在截止之前;切换前 北京 = 当地 +15 小时,切换后 北京 = 当地 +16 小时
HL物理月考 | 当地 2026-09-05 23:59 CST | 北京 2026-09-05 23:59 | 北京 = 当地 +0 小时 | 还有 32 天
连命令也跑不了时,把命令交给学生自己运行;拿到结果之前,计划里的北京时间和天数写「待换算」,不填估出来的数。
ask_user 给出取舍选项让他选,不要私下决定哪门课可以放弃。withinDays 覆盖到截止日之后几天即可),不要为每个节点单独去查| 版本 | 日期 | 变更 | 类型 |
|---|---|---|---|
| 0.2.1 | 2026-09-26 | 声明兼容 claude-code 却没有降级路径:补「没有这些工具时(降级)」,跨时区截止日无 resolve_deadline 时用 zoneinfo 命令换算并标「降级计算」,已有事项改为在同一轮问学生、提案改为 Markdown 卡片;"不要口算"改为有工具用工具、无工具跑命令 | patch |
| 0.2.0 | 2026-08-04 | 转向先产出:按声明过的假设直接排出第一版,同一轮用 ask_user 把可用时间与固定安排一次问完,不再等信息齐了才动手 | minor |
| 0.1.0 | 2026-08-04 | 初始草稿 | minor |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
当学生说"Common App 活动栏写不下"、"这段活动描述超字数了"、"帮我把这几条压到限制内"时使用。先按官方申请表核对当季字符限额,再逐条检查;一次把所有条目量完并直接给出压缩版,只在需要砍掉实质内容时才用选择题问该保哪部分。每改一版都用工具重新数一遍字符,绝不凭感觉说"这样应该够了"。只压缩,不代写空白。
日本語の概要は準備中です。原文の説明を表示しています。
当学生说"我参加过一些活动但没整理过"、"帮我把经历录进去"、"我的活动档案是空的"时使用。让学生一口气把记得的活动说出来,直接把这段话拆成结构化的长期事项(角色、组织、起止时间、做了什么、结果、级别),说不清的字段留空标"待补"而不是编,再用一张选择题卡把级别判定与是否重复这类关键项一次问完,然后提案入库。只记录学生真正说出口的内容,级别按事实判定,绝不往高了写。
日本語の概要は準備中です。原文の説明を表示しています。
当学生问"招生官会怎么看我的档案"、"我的背景还差什么"、"帮我评估一下现在的申请竞争力"时使用。以顶尖大学招生官的视角通读学生的档案、长期活动与已写下的反思,不问任何前置问题直接产出一份指名道姓的坦诚点评:这份材料的亮点、招生官真实的解读方式、明显的短板与空白、以及接下来最值得做的一到两件事。只读不写,不修改学生的任何数据,也不代写任何申请材料。
日本語の概要は準備中です。原文の説明を表示しています。
当使用者说"帮我填词"、"按这个字数模板写歌词"、"用多Agent对抗式写词"、"这首副歌帮我想几句"时使用,前提是字数骨架和这首歌写什么都已经有了;只有主题、还没定写什么时先用 lyric-concept-builder。拿一份字数骨架和意象系统,派三个 sonnet 子代理按不同路子并行独立起草(场景派 / 口语派 / 意象派),再派一个红队子代理逐句挑毛病,主 Agent 按句裁决拼稿,最后统一辙口与意象。收敛判据卡死:字数用 lyric-doctor 的脚本对模板数、每段同辙、hook 不含陈词、主歌二对主歌一有推进。不抄现有歌词,不替使用者决定这首歌要说什么。
日本語の概要は準備中です。原文の説明を表示しています。
当想知道一段 AI 回答"哪些能直接用、哪些必须先验证、哪些只能当建议"时使用。按声明类型分四级——低风险草稿材料、观点与策略建议、可查证的事实声明、会改变状态的可执行指令——每级配一句默认处置动作;再按影响半径排序,给出最小的下一步检查。可执行类一律标"不能直接执行;先做代码审阅/沙箱测试/回滚准备",其中破坏性或提权的命令排在最前。教的是一套可复用的复查习惯,不是替使用者把所有内容都核实一遍:本 skill 只分级、排序、定处置,要逐条核实走 ai-output-fact-checker,整段代码要做入库体检走 ai-code-onboarding-checklist。
日本語の概要は準備中です。原文の説明を表示しています。
当拿到一段 AI 生成的代码,还没决定要不要信、要不要跑、要不要往上继续加东西时使用。先做一遍客观体检:行数与嵌套深度、有没有测试、有没有硬编码密钥或遗留 TODO、依赖是不是真实存在、有没有危险调用(eval/exec、shell=True、递归删除、反序列化、提权、外发网络,按正文给的 grep 模式逐类查);再给风险评级和下一步动作。老实写明它查不了算法正确性——体检通过不等于代码是对的。回答里文字、事实和代码混在一起时先用 ai-answer-triage 分级;只审相对已有代码的一份改动用 ai-diff-review-protocol。
日本語の概要は準備中です。原文の説明を表示しています。