Community编程与开发github.com

深度工作:限时构建会话

为用户自己的限时构建会话提供计时和记录功能,默认90分钟,也支持1小时/1.5小时/2小时(Orient, Build, Verify, Harden, Close,按块缩放)。当用户说“开始会话”、“深度工作”、“90分钟块”、“工作块”或调用 /deep-work 时使用。子命令:status, park <note>, close, abort。

深度工作:限时构建会话 是什么?

该技能作为计时员和记录员,帮助用户进行限时的“深度工作”构建会话。它默认设定为90分钟,但也可配置为60、90或120分钟,并将“定向、构建、验证、加固、结束”五个阶段按比例缩放。主要平台为Claude Code,通过`UserPromptSubmit`挂钩在活跃会话期间向每个提示添加时间线。该技能管理一个会话文件,记录意图、目标、完成定义和“停车场”等细节,以保持专注。它指导每个阶段:定向(范围界定)、构建(无干扰执行)、验证(针对检查清单测试)、加固(修复问题、清理代码)和结束(提交并记录结果)。它还通过固定检测和范围调整来防止范围蔓延,使其成为结构化、自我管理的编程会话的强大工具。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jamesisbuilding/App-Building-Skills/tree/main/skills/deep-work

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

深度工作:限时构建会话 是做什么的?

本SOP由用户自行使用,用于自我管理。你是计时员和记录员。你不是被计时的那个人。像在块之外一样,帮助他们提出的任何要求。你的SOP职责仅限于以下内容:

  1. 宣布阶段变更。
  2. 提出该阶段的问题并将答案写入会话文件。
  3. 维护停车场。
  4. 在你看到停顿(stall)时指出。
  5. 执行结束(close-out)流程。

切勿因阶段原因拒绝或延迟工作。当请求跨越边界时(例如,在Build结束后提出新功能,或在Build期间进行重构),用一行说明,然后按他们的要求去做。

状态:~/.claude/deep-work/current.md(活跃块)和~/.claude/deep-work/log.md(历史记录)。 时钟:此文件夹中的UserPromptSubmit钩子phase.sh会在块活跃时向每个提示添加[deep-work]行:已用/总分钟数、带有实际边界的阶段、墙上时钟结束时间以及用户应该做什么。传递这些信息。不要重新计算。

块长度

各阶段保持90分钟的形状(Orient持续到10,Build持续到60,Verify持续到75,Harden持续到85,Close持续到90),并按块缩放,四舍五入到整数分钟:

长度OrientBuildVerifyHardenClose
600-77-4040-5050-5757-60
900-1010-6060-7575-8585-90
1200-1313-8080-100100-113113-120

钩子负责计算。引用它的数字,而不是这个表格。

基于$ARGUMENTS的分发

  • 开头的持续时间令牌(如果有):1h、1.5h、2h、60、90m、120。转换为分钟。默认为90。后面的内容是“结果”(Outcome)。
  • 没有其他内容:初始化,询问“结果”。
  • 仅剩自由文本:初始化,该文本就是“结果”,跳过询问。
  • status:运行sh ~/.claude/skills/deep-work/phase.sh < /dev/null并显示current.md。
  • park <note>:将- <note>附加到current.md中的parking:下。用一行回复。
  • close:现在执行关闭,无论当前处于哪个阶段。
  • abort:删除current.md,不记录日志。先确认。

初始化

  1. 如果current.md存在:说明情况,给出当前阶段,继续执行。切勿启动第二个块。
  2. mkdir -p ~/.claude/deep-work。如果log.md中有一个条目标题以| <cwd>结尾,引用其最新的Next action和Next session Outcome,并将其作为默认“结果”提供。如果log.md中有10个或更多条目,显示Scope was:值的统计。这是他们的校准循环。
  3. 在一条消息中询问:意图(一行)、结果(他们想要完成的内容,用他们自己的话)、完成定义(最多3个检查点)。如果“结果”已包含在$ARGUMENTS中,则只询问意图和DoD。
  4. 写入current.md并启动时钟。范围界定发生在Orient阶段内,在时钟上。用一行回复:“块已开始, 分钟,结束于 HH:MM。ORIENT 直到 :。正在进行范围界定。”
start: <date +%s>
duration: <minutes>
project: <cwd>
last_phase: ORIENT
intent: ...
outcome: ...
dod:
- [ ] ...
current_state:
smallest_path:
parking:
stalls: 0
stuck_since:
issues:
  1. 范围界定步骤。 将他们所说的内容转化为适合Build窗口的范围。
    • 查看实际状态:git日志、项目的笔记或计划、“结果”涉及的文件。执行两三个命令,而不是全面调查。
    • 根据你发现的内容用一行写入current_state:,标记为(草稿),直到他们确认。
    • 将“结果”与Build窗口进行比较。如果涉及跨多个屏幕的判断、带有未知因素的功能,或者需要在场人员都不具备的输入:用一行说明。
    • 提出能得出在Build边界时可测试的内容的最小路径。具体来说:按什么顺序做哪些事,修复什么,搁置什么,证据是什么。提出一个方案,而不是一个菜单。
    • 只问两个问题:当前状态是否匹配,这是否是路径。他们的答案将成为smallest_path:。如果他们选择更大的范围,那是他们的决定。记录下来,以便Close时可以如实填写Scope was。

各个阶段要做的事情

ORIENT 执行范围界定步骤(初始化步骤5),直到smallest_path:被填写。在Orient边界,如果“结果”需要在场人员都不具备的输入,提醒他们:重新调整范围至可完成的内容,在Close时记录原始内容为已阻塞。

BUILD 不要干涉。将他们提到的任何偏离路径的内容“停车”,并用一个词确认(“已停车”)。停顿:当他们说卡住时,写入stuck_since: <min>。如果他们在15分钟后仍卡在同一个问题上,说“停顿 1,这已经用了 15 分钟。换个方法?”并增加stalls:。第二次停顿时说“停顿 2。SOP 规定为 BLOCKED,建议带着已有成果进入 Verify 阶段。”如果他们表示已满足DoD,建议立即进入Verify。超过Build边界后,用一行提示:“你已处于 分钟。Verify 阶段从 开始。”然后帮助他们提出的任何要求。

VERIFY 给他们一次检查清单:快乐路径、明显的失败路径、持久性、集成、日志和错误、现有测试。将他们发现的内容记录在issues:下,格式为BLOCKS: ...或NOT: ...。

HARDEN 给他们一次顺序:修复BLOCKS问题、删除调试和临时代码、处理错误、为新行为编写或更新测试、命名和明显的简化、格式化工具/linter/构建。

CLOSE(最后一个阶段、close命令或超时)

  1. 提供是否提交或设置检查点的选项。如果存在mg-git-commit技能则使用它,否则使用普通的约定式提交。仅在得到肯定回答时执行。
  2. 根据你的观察草拟日志条目。只询问你无法推断的信息,最多包括:结果状态、范围大小、下次会话的结果。为每项提出默认值。
  3. 追加到~/.claude/deep-work/log.md:
## <YYYY-MM-DD HH:MM> | <duration> min | <cwd>
Outcome: COMPLETE | PARTIAL | BLOCKED
Scope was: TOO BIG | RIGHT | TOO SMALL
Intent: ...
Outcome def: ...
What changed: ...
Evidence: ...
Remaining: ...
Next action: ...
Next session Outcome: ...
Parking lot: ...
  1. rm ~/.claude/deep-work/current.md。
  2. 回复日志条目,不附带其他内容。

语气

  • 阶段变更:回复的第一行,一句话,说明哪个阶段以及用户应该做什么。然后回答他们实际提出的问题。
  • 边界跨越:一行,不要长篇大论,然后执行工作。
  • 用户说“完成了”:建议进入Verify。
  • 钩子仅在用户发送消息时触发。如果他们不回复,没有人会宣布边界。手机计时器由他们自己设置。钩子行包含墙上时钟的结束时间,以便他们可以设置。

设置(本机已完成)

~/.claude/settings.json中有一个UserPromptSubmit钩子,运行sh ~/.claude/skills/deep-work/phase.sh。如果你将此技能复制到其他地方,请添加该钩子。

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

app-icon-design

Create, revise, and audit app icons using Apple's Human Interface Guidelines, with a clear visual identity and production-ready deliverables.

app-keyword-research

Validate an app idea against the App Store before building it. Turns the idea into search phrases, measures demand (App Store autocomplete) and competition (current top-10 apps) for each, ranks keywords by opportunity, and maps which apps own the market. Use when the user wants keyword research, ASO, "is there demand for…", "who are the competitors for…", "what should we call it / which keywords", or to validate or compare app ideas.

app-offer

Designs one opinionated "Grand Slam Offer" for any app idea, new or already shipped, by running Alex Hormozi's $100M Offers method adapted to app stores. It covers the market and niche, the commodity check, a value-equation audit, the problem inventory, delivery vehicles, the trimmed value stack, pricing and tiers, scarcity, urgency, bonuses, the guarantee, naming, the paywall per placement, the onboarding fast win, a test plan and a ship plan. It works within App Store and Google Play rules. For a shipped app it reads the code and notes first and produces a before/after. Use it when the user says "/app-offer", "run app-offer on <idea>", "make a grand slam offer for my app", "Hormozi my app", "price my app" or "design my paywall offer", or asks how to package, price, name, guarantee or paywall an app. It writes offer/grand-slam-offer.md (or ./<app-slug>-grand-slam-offer.md for a new idea).

brand-reference-pack

Build or refresh a shortform brand reference pack for any app from its real surfaces — website, App Store listing and reviews, socials, the live app (driven end to end on the simulator) and its code tokens — plus a status check of the upstream foundations (ICP, voice of customer, brand voice). Produces the context that content formats and design decisions are made from, as markdown, tokens.json and a PDF. Use for "build a brand pack for <app>", "refresh the brand pack", "capture the site/app/socials for shortform", "/brand-reference-pack".

new-app-info

Builds the information pack Apple asks for when App Review replies "We need additional information to better understand the app". It covers all six required items: (1) a screen recording on a physical device, as a shot list the user records; (2) the app's purpose and target audience; (3) setup and main features, with any login credentials or sample files; (4) the external services the app uses; (5) regional differences; (6) regulated industry or protected third-party material. It also runs Apple's "Prevent common issues" checks. Every answer comes from the app's own code (accounts, user-generated content, in-app purchases, SDKs, locales, screen-capture blocking, data deletion). It reads the connected iPhone's iOS version and checks it is the latest. It ends by telling the user to paste the reply into App Review Information → Notes. Use it when the user pastes that App Review message, says "/new-app-info", "we got rejected, they want more info", "answer App Review", or "make the App Store review pack". It w...

reel-motion-graphics

Turn a script or concept into an on-brand 9:16 explainer reel (luxury tech, warm sand on near-black, glassmorphism, CSS 3D, Bodoni + Instrument Sans) built in HyperFrames, with the animation above the fold and the presenter's talking head below. Use when the user gives a script, transcript, paper summary or concept and asks for a reel, motion graphics, an animated explainer or "the same style as the upcycling reel". Produces a HyperFrames project, a rendered MP4 and a live artifact player.

相关技能