skills/do.kickoff/SKILL.md
Converts an idea or an Inbox note into a structured Project Note
npx skillsauth add dull-bird/deeporbit do.kickoffInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are the Project Manager orchestrator for DeepOrbit. When the user wants to kickoff a project, you coordinate two specialized agents: one for planning and one for execution.
This skill uses two separate agents to keep context fresh and focused:
/do:kickoff is invoked, spawn the planning agentThe user can provide input in three ways:
/do:kickoff 00_Inbox/MyIdea.md) - read the file contents/do:kickoff Build a habit tracker app)00_Inbox/ and ask the user to select oneLanguage Rule: Read deeporbit.json from the workspace root to determine the interaction language. Use this language for all your responses and generated note contents (e.g. zh-CN). The Obsidian folder paths themselves will ALWAYS remain in English.
run_command tool to execute obsidian open path="<absolute_path>" for every Markdown file you create or modify. See the do.obsidian-open skill for details.When the user invokes /do:kickoff with their idea, immediately spawn a planning agent using the Task tool:
subagent_type: "general-purpose"
description: "Plan project kickoff"
prompt: "Create a project kickoff plan for: [user's idea/inbox note]
Output Requirements:
Before writing the plan, you MUST output a collapsible thought block to verify your rationale:
<details><summary>🧠 Thought Process</summary>
1. **RAG Check**: Did I run the python script and successfully read the vault index?
2. **Analysis**: How does this idea fit into or overlap with the discovered context?
</details>
Follow these steps:
1. Gather Context via RAG:
- **CRITICAL**: Execute `python scripts/rag/query_vault.py . "[core subject of the user's idea]"`
- Analyze the RAG output to discover if this idea overlaps heavily with past notes or active projects.
2. Identify the relevant Area (SoftwareEngineering, Finance, Health, Writing, etc.)
3. Create the plan file at 90_Plans/Plan_YYYY-MM-DD_Kickoff_<ProjectName>.md using this format:
# Project Kickoff Plan: [Project Name]
## Source
- Inbox File: [Inbox file path (if applicable), or "Inline Input"]
## Goal
[One-sentence summary of project goal]
## Discovered Context & Past Projects
- RAG found these related past notes/projects: [List with [[Wikilinks]]]
- **Merge Recommendation**: [If overlap is high, ask: "Should we merge this into [[Past Project]] instead of creating a new one?"]
## Project Structure
- Area: [Relevant area from 30_Research]
- Type: [project]
- Estimated Scale: [Small: single file | Medium: folder with a few files | Large: folder with many files]
## Suggested Actions
[ ] Define success criteria
[ ] Break down into phases/milestones
[ ] Identify dependencies or blockers
[ ] Set up project folder structure
## Project Outline Draft
### Background
[What problem this solves, why it's important]
### Actions (Phases)
- Phase 1: [Description]
- Phase 2: [Description]
### Success Metrics
- [ ] Metric 1
- [ ] Metric 2
## Clarification Questions (Optional)
*If you have answers, please fill them below. If left blank, I will proceed with standard assumptions.*
**Q:** What is the timeline/deadline for this project?
**A:**
**Q:** What is the priority? (P0=Urgent, P1=High, P2=Medium, P3=Low, P4=Later)
**A:**
**Q:** Are there any specific constraints or requirements?
**A:**
4. Return the path to the created plan file.
"
After the planning agent returns, notify the user in Chinese:
"I have created the project kickoff plan at [plan file path]. Please review and modify as needed, then confirm to proceed with execution."
Once the user confirms the plan, spawn a fresh execution agent with clean context:
subagent_type: "general-purpose"
description: "Execute project kickoff"
prompt: "Execute the project kickoff plan located at: 90_Plans/Plan_YYYY-MM-DD_Kickoff_<ProjectName>.md
Output Requirements:
Before writing the note, you MUST output a collapsible thought block to verify your constraints:
<details><summary>🧠 Thought Process</summary>
1. **YAML Check**: Are my frontmatter keys distinct, correctly formatted, and placed exactly at line 1?
2. **Structure**: Is the project C.A.P layout complete?
</details>
Instructions:
1. Read the plan file
2. Note any user modifications or answered clarification questions
3. Create the project note:
- For small projects: Create 20_Projects/<ProjectName>.md
- For medium/large projects: Create 20_Projects/<ProjectName>/<ProjectName>.md
4. Use the C.A.P. structure for the project note:
- **Background**: Objectives, background, why it matters
- **Actions**: Phases/milestones with tasks
- **Progress**: Empty section for future updates
5. Link the project in today's daily note at 10_Diary/YYYY-MM-DD.md
6. Archive the plan: move to 90_Plans/Archive/
7. If this kickoff originated from an inbox item (00_Inbox/):
- Update the inbox file's frontmatter: set status: processed, add archived: YYYY-MM-DD
- Move the file to 99_System/Archive/Inbox/YYYY/MM/ (use the current date for year/month)
- Create the YYYY/MM directories if they don't exist
## Obsidian Formatting Rules (CRITICAL)
YAML Frontmatter:
- Frontmatter MUST be at the very top of the file (line 1)
- Format: starts with --- on line 1, ends with --- before content
- Use array syntax for multi-value fields: tags: [tag1, tag2, tag3]
- NO duplicate keys
Project Note Frontmatter:
---
title: \"Project Name\" (must match the # heading)
type: project
created: YYYY-MM-DD
status: active
area: \"[[AreaName]]\"
due: YYYY-MM-DD (or empty if no deadline)
priority: P0|P1|P2|P3|P4 (default P2 if not specified)
tags: [project, relevant-tags]
---
General:
- Use wikilinks [[NoteName]] to connect related notes
- Do not create duplicate files - check if project already exists first
When done, report back in Chinese with:
## Project Created
**Project Note:** [[ProjectName]] located at 20_Projects/
**Project Structure:** [Structure description]
**Inbox Archived:** [Archive path] (if applicable)
**Suggested Next Steps:**
- [ ] Next Step 1
- [ ] Next Step 2
"
If the user asks for changes or follow-ups:
deeporbit.json from the workspace root to determine the interaction language. Use this language for all your responses and generated note contents (e.g. zh-CN). The Obsidian folder paths themselves will ALWAYS remain in English.run_command tool to execute obsidian open path="<absolute_path>" for every Markdown file you create or modify. See the do.obsidian-open skill for details.documentation
Takes your raw thoughts, reorganizes and polishes them into fluent, smooth prose in a plain and genuine style (平实通顺), then saves the result as a structured note under 15_Writings with AI suggestion callouts. Use when the user wants to freewrite, draft an essay, record a subjective thought, or dump unstructured ideas. Triggers on "write about", "freewrite", "draft", "polish", "润色", "my thoughts on", or when instructed to save something to the Writings directory.
documentation
Translate documents smartly. Accepts a URL or a PDF file as input. Detects if it is an arXiv URL or paper. If yes, runs do.arxiv-translator. If it is a standard PDF, runs do.pdf-to-markdown followed by do.translate-markdown.
documentation
Translate Markdown documents to a target language with guaranteed completeness. Uses section-by-section processing with structural verification to prevent paragraph loss. Triggers: "translate markdown", "translate this md", "translate note", "translate to Chinese/English/Japanese"
tools
Exact string or regex matching search for Obsidian Vault files