aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows/INDEX.org
blob: 157a4e70e6b3542dec6d45bd59e61b20fe0edb24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#+TITLE: Workflow Index
#+AUTHOR: Craig Jennings & Claude
#+DATE: 2026-04-25

* Purpose

Single-source catalog of every workflow in this directory, with the trigger phrases that should invoke it. Read this file before =ls=-ing the workflows directory — it tells you which file handles which phrase, so you don't have to read each workflow's "When to Use" section to route correctly.

* Drift Check

This index must list every =.org= file in =.ai/workflows/= except this one and except *source plugins*. A source plugin is any file matching =<indexed-workflow>.*.org= (a second dot-segment after an indexed engine name, e.g. =triage-intake.personal-gmail.org=) — it belongs to its engine, is not independently triggerable, and gets no entry of its own. Startup verifies the index matches the directory and flags drift (missing entries or stale entries pointing at deleted files), treating plugins as owned by their engine rather than as orphans.

* Catalog

** Session lifecycle

- =startup.org= — runs automatically at session start. No manual trigger.
- =first-session.org= — initialize =.ai/= for a brand-new project.
  - Triggers: "this is a new project", "let's set this project up". Auto-runs if =.ai/sessions/= is empty.
- =wrap-it-up.org= — end-of-session: write summary, archive, commit, push.
  - Triggers: "wrap it up", "that's a wrap", "let's call it a wrap"
- =retrospective.org= — post-mortem after a tough session.
  - Triggers: "let's do a retrospective", "retrospective time"

** Tasks and planning

- =open-tasks.org= — list all open tasks (list mode) or pick the next task (next mode).
  - Triggers: "what's next", "what should I work on", "list open tasks", "show me all tasks", "what's on my plate", "show me my tasks", "I need a recommendation"
- =task-review.org= — daily list-hygiene habit: walk the oldest-unreviewed top-level tasks, re-grade / kill / keep / mark DOING, and stamp =:LAST_REVIEWED:=. Distinct from =open-tasks.org=, which only displays.
  - Triggers: "task review", "review tasks", "let's do a task review", "groom my tasks", "task-review"
- =task-audit.org= — content reconciliation: take the open tasks and check their recorded facts against reality (sessions, email, chat, ticketing, calendar, meeting recordings), update the stale facts, consolidate duplicates, and flag the judgment calls only the user can answer. Deeper than =task-review.org= (relevance/keep-kill/priority); this one keeps the surviving tasks factually honest.
  - Triggers: "task audit", "audit my tasks", "audit the open tasks", "are my tasks still accurate", "reconcile my tasks", "update the stale tasks"
- =daily-prep.org= — prep brief for the next workday. Two modes: full-prep (default) or standup-only.
  - Full-prep triggers: "let's prep for tomorrow", "daily prep"
  - Standup-only triggers: "what's my standup report", "let's do the daily standup report", "give me the standup brief"
- =triage-intake.org= — on-demand triage *engine*: a source-agnostic sweep that loads source plugins, classifies what's new since last check (Action / FYI / Noise-keep / Noise-trash), produces one synthesized summary, and offers to run the routine actions. Carries no sources of its own — every source comes from a =triage-intake.<source>.org= plugin globbed from both =.ai/workflows/= (general) and =.ai/project-workflows/= (project-specific). Lighter scope than =daily-prep.org='s triage section.
  - Triggers: "do a triage intake", "triage intake", "what's new?", "what's new since I last checked", "do a sweep", "check email, calendar, and PRs"
  - Source adapters: =triage-intake.*.org= (=personal-gmail=, =personal-calendar=, =cmail=, =github-prs= ship general; projects add their own). Not independently triggerable — the engine loads them; "run the triage-intake workflow" always routes to the engine, never a plugin.
- =journal-entry.org= — capture a daily journal entry.
  - Triggers: "let's do a journal entry", "create a journal entry"
- =clean-todo.org= — tidy =todo.org=: hygiene pass + =--archive-done=, then summarize. Wrap-up does this automatically; this is the manual entry point.
  - Triggers: "clean up todo.org", "clean-todo", "tidy the todo file", "archive the done items in todo.org", "run the todo cleanup"
- =process-inbox.org= — evaluate each inbox item against a three-question value gate (advances an existing TODO / improves the project / serves the mission), then implement, fold, file, defer, or reject per source (Craig / project handoff / script). Auto-invoked by startup when inbox is non-empty. Source-aware rejection flow: handoff rejections write a response back via =inbox-send= naming the failed gate question and any reconsideration condition.
  - Triggers: "process inbox", "process the inbox", "handle the inbox", "what's in inbox", "what's in the inbox", "let's clear the inbox", "let's process the inbox items"
- =monitor-inbox.org= — the cadence + act-vs-file + reply layer over process-inbox: check =inbox-status= at every task boundary, decide act-now (just do it) vs file (ask, file = option 1), and confirm back to handoff senders. Includes the opt-in background-monitor =/loop= recipe.
  - Triggers: "monitor the inbox", "watch the inbox", "respond to the handoffs", "handle the handoffs"

** Calendar

- =add-calendar-event.org= — create a calendar event.
  - Triggers: "create an event", "add appointment", "schedule a meeting", "add to my calendar", "calendar event for..."
- =read-calendar-events.org= — read / summarize calendar.
  - Triggers: "what's on my calendar", "show me appointments", "summarize my schedule", "what do I have today", "calendar for this week", "any meetings tomorrow"
- =edit-calendar-event.org= — modify an existing event.
  - Triggers: "edit the meeting", "change my appointment", "reschedule", "update the event", "move my appointment"
- =delete-calendar-event.org= — cancel / remove an event.
  - Triggers: "delete the meeting", "cancel my appointment", "remove the event", "clear my calendar for..."

** Email

- =sync-email.org= — pull and index new mail.
  - Triggers: "sync email", "sync mail", "pull new mail", "check for new email"
- =find-email.org= — search local maildir for emails.
  - Triggers: "find email about [topic]", "search for emails from [person]", "do I have an email about [subject]?", "look for [shipping/receipt/confirmation] email"
- =summarize-emails.org= — filter noise, summarize what matters.
  - Triggers: "summarize my emails", "what emails do I have", "anything important in my inbox", "email summary", "any unread emails", "any starred emails", "emails from [person]", "emails also sent to [person]"
- =extract-email.org= — extract content / attachments from an inbox EML.
  - Triggers: "extract the email", "get the attachment from [email]", "pull the info from [email]", "process the email in inbox"
- =send-email.org= — compose and send an email.
  - Triggers: "send an email", "email workflow", "email [person] about [topic]", "send [file] to [person]"
- =email-assembly.org= — gather documents into an email package.
  - Triggers: "assemble an email", "email assembly workflow", "gather documents for an email", "I need to send [person] some documents"

** Specs and design

- =spec-review.org= — review a design/feature spec for implementation-readiness: run the readiness gate, read the code first, evaluate across dimensions, assign a rubric (Ready / Ready-with-caveats / Not-ready / Needs-research), and write a =<spec>-review.org= file when not ready. The *reviewer* side; its output feeds =spec-response.org=.
  - Triggers: "review the spec", "is this spec implementation-ready?", "spec-review workflow", "review the design"
- =spec-response.org= — fold an external spec review back in: decide accept / modify / reject for every recommendation, weave accepts into the spec body, document modifies and rejects in a "Review dispositions" section, reconcile cross-spec tensions, iterate to implementation-ready. The *author* side; consumes the =<spec>-review.org= file =spec-review.org= produces.
  - Triggers: "respond to the review", "process the spec reviews", "spec-response workflow", "fold in the review"

** Tools and meta

- =process-meeting-transcript.org= — record → transcript → labeled archive.
  - Triggers: "process the transcript", "process the recording". Auto: new files in =~/sync/recordings/=.
- =page-signal.org= — send Craig a Signal message via =page-signal= when desktop notifications won't reach him. Defaults to note-to-self. Outbound to other contacts requires explicit =--to <+number>= every call. Auto: long-running task completion, cross-device deliverables, operator-attention events. NOT for routine completions or periodic status pings.
  - Triggers: "page me on signal", "signal me when X is done", "send a signal note about X"
- =cross-project-broadcast.org= — fan out a single message to every AI project's inbox via the discovery helper =cross-project-broadcast.py= + the existing =inbox-send.py=. Use sparingly for capability announcements and shared rule changes; not for project-specific handoffs.
  - Triggers: "broadcast this to every project", "notify every project about X", "fan out this announcement", "let every project know X is available"
- =flashcard-review.org= — review an org-drill flashcard file, restructure cards to question-form headings (no answer hints), audit content accuracy against project source-of-truth via subagent, rewrite source preserving SRS state, regenerate the Anki =.apkg= to =~/sync/phone/anki/=. Person cards use "Who is X? Tell me about their Y."; talking-points cards stay as-is. Script behavior: =flashcard-to-anki.py= strips =:PROPERTIES:= drawers + =SCHEDULED:= / =DEADLINE:= planning lines from Anki output.
  - Triggers: "review the flashcards", "update the flashcards", "review the drill deck", "update the drill deck", "refresh the Anki cards", "let's run the flashcard-review workflow"
- =page-me.org= — set a timed notification.
  - Triggers: anything containing the word "page" used as a verb ("page me", "page me in 10 minutes", "page me at 3pm")
- =status-check.org= — proactive long-running-job updates.
  - Triggers: "keep me posted on this", "provide status checks on this job", "let me know when it's done", "monitor this for me". Auto: any job estimated 10+ min.
- =create-workflow.org= — define a new workflow.
  - Triggers: "let's create/define/design a workflow for [activity]", or unmatched workflow request after this index returns no hit.
- =rename-artifact.org= — rename an =.ai/= workflow or script across the canonical + mirror trees, rewriting every reference on a token boundary and leaving =sessions/= history alone. Backed by =scripts/rename-ai-artifact.sh=, which runs =workflow-integrity= + =sync-check= after the move.
  - Triggers: "rename this workflow", "rename the [X] workflow/script", "let's run the rename-artifact workflow".
- =no-approvals.org= — drop the interaction-level approval gates for a pre-agreed batch while keeping engineering-discipline gates (=/review-code=, =/voice personal=, tests, session-log updates, subagent reviews, destructive-action consent). Mode stays on until Craig turns it off, a real question arises, the queue empties, or the conversation switches topics.
  - Triggers: "no-approvals mode", "no approvals", "no-approval", "no need for approval gates", "stop asking, just keep going", "I'll check back in when you're done or stuck", "do all =<selector>= with no-approval"
- =cross-agent-comms.org= — protocol for cross-project agent coordination via =inbox/from-agents/= (file-based IPC, GPG-signed, supports cross-machine over Tailscale). Auto: when =cross-agent-watch= detects a new inbound message, or when an agent decides to initiate a cross-project conversation. Operational scripts (=cross-agent-send=, =-recv=, =-watch=, =-status=, =-discover=, =-halt=, =-resume=) and their READMEs live at =.ai/scripts/cross-agent-comms/=.

* Living Document

Add a row when a new workflow lands in =.ai/workflows/=. Remove the row when a workflow is deleted. Update triggers when a workflow's "When to Use" section changes. The startup drift check is the safety net — it catches forgotten updates but doesn't substitute for keeping this file current.