archived/skills/briefing-bundle/SKILL.md
Generate morning briefing bundle with decision coversheets, email drafts, and annotation targets from the daily note. Run /daily first.
npx skillsauth add nicsuzor/academicops briefing-bundleInstall 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.
Generate a morning briefing document from the daily note. The bundle presents decisions with coversheets and recommendations, pre-drafts emails, includes calendar context, and provides annotation targets for Nic to mark up. It is consumed in a single sitting and processed back into the system.
This skill produces a separate document from the daily note. The daily note is a living progress tracker; the bundle is a morning-only decision brief. See [[specs/daily-briefing-bundle.md]] for the full specification and rationale.
/bundle # Generate today's briefing bundle
Prerequisite: Run /daily first. The bundle reads the daily note — it does not re-query data sources the daily note already covers.
This skill generates a document. It does NOT execute decisions.
/process-bundle)From the daily note (read, do not re-query):
Read $ACA_DATA/daily/YYYYMMDD-daily.md
Extract:
From synthesis.json (if available):
Read $ACA_DATA/dashboard/synthesis.json
From yesterday's bundle (if exists):
Read $ACA_DATA/daily/YYYYMMDD-bundle.md # yesterday's date
Check for unprocessed annotations → carry forward un-annotated items.
New queries (only what the daily note doesn't provide):
For each item that will become a decision coversheet:
# Full task context for coversheet
task = mcp__pkb__get_task(id=task_id)
# Related emails for draft threading
email = mcp__outlook__messages_get(entry_id=entry_id)
For calendar:
# Today + tomorrow
today = mcp__outlook__calendar_list_today()
upcoming = mcp__outlook__calendar_list_upcoming(days=2)
From all gathered items, classify each into exactly one bundle section:
| Section | Criteria | | ------------- | ------------------------------------------------------------ | | Decisions | Status=waiting/review, assigned to nic, needs human judgment | | Calendar | Meetings today + tomorrow, with prep context | | Emails | Items needing a reply (not just FYI) | | FYI | Informational items from daily note FYI section | | Carryover | Items from previous days still open |
Filter rules:
For each Decision item, generate a coversheet using the template in [[references/coversheet-template]].
The editorial work happens here. This is the step that makes the bundle different from the daily note. For each item:
get_task)Coversheet quality rules:
<details>)<details> sectionsentry_id in email drafts for threadingCalendar: For each meeting today/tomorrow, include: time, title, attendee names with brief context (role/relationship), prep notes if applicable, and any documents to pre-read. Flag free blocks: "2hr free block 10am-12pm — suitable for deep work."
Emails: For items needing replies that aren't tied to a decision coversheet, use the email draft template in [[references/email-template]]. Full drafts, not talking points.
FYI: Compress each to 2-3 sentences. Group by project (OSB, QUT, academic). Each gets <!-- @nic: noted -->. Items that might generate a task include a suggested title: <!-- @nic: task: [suggested title] -->.
Carryover: Items from previous days, ordered by age (oldest first). Each gets a checkbox. Items carried 3+ consecutive days get: "⚠️ Carried N days — decide: act, defer, or cancel?"
Written LAST (after all sections are assembled). Max 10 lines containing:
approved | send | decline | defer to DATE | noted | task: [title]Before writing the file, verify:
get_task)Log issues in frontmatter qa_issues. If critical issues found (broken task IDs, missing recommendations), fix and re-check (max 2 iterations).
Write bundle to: $ACA_DATA/daily/YYYYMMDD-bundle.md
Use the bundle template from [[references/bundle-template]] for the overall structure.
Output to terminal:
Bundle generated: daily/YYYYMMDD-bundle.md
N decisions, N emails, N FYIs, N carryover items
Most urgent: [item description]
Open in Obsidian to review and annotate, then run /process-bundle.
Energy-intensive first, passive last:
| Failure | Behaviour | | ------------------------ | ----------------------------------------------------------------------------------------------- | | Daily note doesn't exist | HALT with: "Run /daily first — the bundle reads the daily note" | | Outlook unavailable | Generate without email drafts/calendar. Note: "Email/calendar unavailable" in Executive Summary | | PKB unavailable | Generate from daily note text only — no task enrichment | | No decision items found | Generate bundle with calendar + FYI only. Note in summary: "No decisions today" | | Task ID doesn't resolve | Exclude item, log in qa_issues |
See [[references/coversheet-template]] for the decision coversheet format. See [[references/email-template]] for the email draft format. See [[references/bundle-template]] for the overall bundle structure.
tools
Program / portfolio supervision — the autonomous top loop above /supervisor. "Ready the release" → discover and decompose the constituent epics → run /supervisor on each → surface only escalations + merge-ready PRs. Stateless tick driven by /loop; all cross-tick state lives in the program task body.
development
Mirror PKB tasks onto the Cowork native task list at claim time and sync completion back to PKB. Cowork-only; ships only in the cowork build of aops-core.
testing
Instruction quality gate — reviews agent instructions (task bodies, workflow steps, skill procedures, self-test protocols) for shallow-execution vulnerabilities before deployment. Two modes: author (pre-hoc review) and audit (trace a failure back to the instruction gap). The bar is excellence, not compliance.
content-media
Design-stage fitness rubric — persona immersion, scenario design, dimensions that define what excellence looks like for the people a feature serves. Two modes — author (produce a rubric for a new spec) and critique (red-team an existing spec). Output lives on the spec, not in the verification brief. Owned by pauli.