Overview
This skill automates the creation of weekly/biweekly reports. It does this by finding all relevant documents within a specified date range, reading their contents, and synthesizing information according to a template or hierarchical structure. It places particular emphasis on project continuity (tracking task status from the previous report) and depth of content (tracing sources through links).
When to Use
When the user asks to:
- "Write my weekly report" or "draft this week's summary."
- Summarize progress between two dates.
- Create a new report based on the previous report and a set of new documents.
This skill is especially effective in document knowledge bases, such as an Obsidian vault.
Workflow
Follow this workflow to generate the report.
Step 1: Gather User Input
Before starting, confirm the following information with the user:
- Start date: the start of the report period.
- End date: the end of the report period.
- Whether vault filenames include a date prefix: confirm the file naming convention (e.g.,
YYYY-MM-DD-描述.md)。 - Previous report path: the file path of the previous weekly report. This is essential for tracking ongoing tasks.
- Vault directory: the root directory of the document repository (for example, their Obsidian vault path).
- (Optional) Report template path: if the user has a specific template, provide its path.
- (Optional) Project context path: the document path summarizing all projects of the larger organization (if any).
Step 2: Find Documents
Find logs: use the user-provided 笔记库目录 and date range to find all Markdown files matching the date range.
Step 3: Confirm the File List with the User
Show the user the list of files found (logs + detected templates). Ask the user to confirm the list and provide feedback on any files that should be focused on or skipped . In general, excerpted documents, raw speech-to-text logs, etc. should be skipped; daily work summaries, meeting minutes, project updates, etc. should be focused on. Personal ideas or side projects should be recorded in the final section of the first part.
Step 4: Read, Trace in Depth, and Synthesize
After confirmation, read the contents of all files. During this process, pay attention to:
Several notes:
- Link tracing: when reading daily summaries/logs, if you encounter a "key item" pointing to another document and containing
[[文档链接]], you should use tools to read that linked document. The reason is that daily summaries are usually just one sentence ("completed..."), while a high-quality weekly report needs the specific outputs, methods, and data from the source documents. - Information synthesis: during the process, when synthesizing information, pay attention to:
- Track the projects in the "previous report" and highlight their progress.
- Identify to-dos (
🟥), completed (🟩), in progress (🟨), and new ideas (💡), and flag each item. - To-do inheritance: Any
🟥(to-do) or🟨(in progress) item from the previous report,must be carried into the "To-do/Backlog" section of the new report, unless it is already included in the new report and explicitly marked as🟩(completed).
Step 5: Draft the report (layered output)
Draft the report. If a specific template was found in step 2, follow it strictly. Otherwise, usestandard layered structure:
Part 1: Personal status sync
- This is a personal log.
- Audience: self / knowledge base.
- Content: detailed technical background, links to in-depth documents, personal thoughts (
💡) and specific status updates. Keep the[[Wiki Link]]format.
Part 2: Team external sync
- This is the "part you are responsible for" in the team report.
- Audience: manager / team.
- Content: high-level summary.
- Key progress: What was delivered? (focus on value).
- Risks/blockers: What support is needed?
- Next steps: What are the near-term plans?
- Mention: Use the
@用户format to flag the owner.
Report file name: Use the document library's file name definition, and keep it consistent with the style of previous report file names.
Step 6: Gap Analysis
After the draft is generated, run a round of "gap analysis" for high-value outputs. Remind the user to "check the draft, and if there are omissions, please add them." Then edit and update the draft based on user feedback.