23 TASKFLOW INBOX TRIAGE
Skill subhansh-dev/agent-maxxing/workflows/23-TASKFLOW-INBOX-TRIAGE
95+ agent skills, 19 UI components, 7 system prompts from Claude Fable 5, GPT-5.5, Gemini CLI & more. Self-fine-tune your agent: paste one prompt and it reads every skill, internalizes patterns, and becomes elite. Works with Claude Code, Codex, Cursor, OpenCode + 60 more agents.
npx -y skills add subhansh-dev/agent-maxxing --skill 23-TASKFLOW-INBOX-TRIAGEAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Example TaskFlow pattern for inbox triage, intent routing, waiting on replies, and later summaries.
SKILL.md
2.5 KB, 620 tokens by cl100k_base, as published. Nobody here has run it
TaskFlow inbox triage
This is a concrete example of how to think about TaskFlow without turning the core runtime into a DSL.
Goal
Triage inbox items with one owner flow:
- business -> post to Slack and wait for reply
- personal -> notify the owner now
- everything else -> keep for end-of-day summary
Pattern
- Create one flow for the inbox batch.
- Run one detached task to classify new items.
- Persist the routing state in
stateJson. - Move to
waitingonly when an outside reply is required. - Resume the flow when classification or human input completes.
- Finish when the batch has been routed.
Suggested stateJson shape
{
"businessThreads": [],
"personalItems": [],
"eodSummary": []
}
Suggested waitJson when blocked on Slack:
{
"kind": "reply",
"channel": "slack",
"threadKey": "slack:thread-1"
}
Minimal runtime calls
const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);
const created = taskFlow.createManaged({
controllerId: "my-plugin/inbox-triage",
goal: "triage inbox",
currentStep: "classify",
stateJson: {
businessThreads: [],
personalItems: [],
eodSummary: [],
},
});
const child = taskFlow.runTask({
flowId: created.flowId,
runtime: "acp",
childSessionKey: "agent:main:subagent:classifier",
task: "Classify inbox messages",
status: "running",
startedAt: Date.now(),
lastEventAt: Date.now(),
});
if (!child.created) {
throw new Error(child.reason);
}
const waiting = taskFlow.setWaiting({
flowId: created.flowId,
expectedRevision: created.revision,
currentStep: "await_business_reply",
stateJson: {
businessThreads: ["slack:thread-1"],
personalItems: [],
eodSummary: [],
},
waitJson: {
kind: "reply",
channel: "slack",
threadKey: "slack:thread-1",
},
});
if (!waiting.applied) {
throw new Error(waiting.code);
}
const resumed = taskFlow.resume({
flowId: waiting.flow.flowId,
expectedRevision: waiting.flow.revision,
status: "running",
currentStep: "route_items",
stateJson: waiting.flow.stateJson,
});
if (!resumed.applied) {
throw new Error(resumed.code);
}
taskFlow.finish({
flowId: resumed.flow.flowId,
expectedRevision: resumed.flow.revision,
stateJson: resumed.flow.stateJson,
});
Related example
- See
workflows/22-TASKFLOW/SKILL.mdfor the base Taskflow skill
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.