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 --full

Visibility 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.