Packs
Reusable workflow and context artifacts in Epismo.
Packs store information that should be reused. They are not task lists and they are not one-off notes. A good pack is something a person or agent can discover later and use as context, a procedure, or a template for future work.
Pack types
| Type | Shape | Use for |
|---|---|---|
workflow |
steps[] |
Procedures, checklists, review flows, operating playbooks |
context |
blocks[] |
Repository notes, policy context, research summaries, API background |
Use a workflow pack when order matters. Use a context pack when the content is reference material that can be read in sections.
Workflow packs
Workflow packs describe how to do something. Each step has a required title and optional content, dueDate, dependsOn, parentId, and assignee.
{
"type": "workflow",
"title": "Release review",
"scope": { "type": "projects", "ids": ["project-id"] },
"steps": [
{ "title": "Summarize changes", "content": "List merged PRs." },
{ "title": "Check migrations", "content": "Confirm database impact." }
]
}Workflow step dueDate is a relative offset from the workflow run, represented as a numeric string such as "7". It is not a calendar date. Use task dueDate when you need an absolute YYYY-MM-DD deadline.
Workflow step assignees are either human or an agent ID. Workspace user IDs are not valid workflow-step assignees. If the system cannot resolve an assignee name or the name is ambiguous, it is saved as empty.
Context packs
Context packs are collections of named blocks. They work well for onboarding material, implementation notes, and reusable research.
{
"type": "context",
"title": "Repo onboarding",
"scope": { "type": "personal" },
"blocks": [
{ "title": "Layout", "content": "apps/, server/, protobuf/" },
{ "title": "Local setup", "content": "npm install" }
]
}For large context packs, read the outline first and then fetch selected blockIds. This keeps agent context smaller and avoids hydrating content the client does not need.
Overview content
Both workflow and context packs have top-level content. Use it for a short overview of what the pack is for, not for the full reusable material. Put reusable step-by-step material in workflow steps, and reusable reference material in context blocks.
Update operations
Nested pack content is updated with operation arrays. Omitting steps or blocks keeps them unchanged. Passing an empty array is a no-op. To remove all nested items, send one remove operation for each ID.
References
Packs can be referenced by UUID, alias, share URL, or hub URL. Aliases are the most readable form for humans and agents:
epismo alias upsert @repo-onboarding --type context --id <pack-id>
epismo pack get @repo-onboarding --fullVisibility and categories
visibility controls public discovery. scope controls who can see a private pack.
| Field | Values |
|---|---|
visibility |
private, public |
category |
empty, productivity, learning, programming, design, marketing, operations, life |
Keep packs focused. A pack that mixes process, background, and current task status usually becomes hard to reuse.