Procedure Packs: Versioned, Offline-Capable Guidance
How UPAS bundles SOPs, checklists, and reference materials for offline distribution.
What is a Procedure Pack?
A procedure pack is a versioned, self-contained bundle of:
- Standard Operating Procedures (SOPs)
- Checklists and job aids
- Reference materials
- Search embeddings for local retrieval
Once cached on a device, a procedure pack enables complete offline functionality.
Pack Structure
interface ProcedurePack {
id: string; // "emergency-response"
version: string; // "3.2.1"
publisher: string; // "Example Organisation"
publishedAt: Date;
domain: string; // "emergency-response"
locale: string; // "en"
integrity: string; // SHA-256 hash
documents: Document[];
embeddings: Float32Array;
}Versioning
Procedure packs follow semantic versioning:
- Major (3.x.x): Breaking changes, significant updates
- Minor (x.2.x): New documents or sections
- Patch (x.x.1): Corrections, clarifications
Devices compare versions to determine when to sync.
Curation Workflow
Creating a procedure pack:
- Collect: Gather source documents
- Structure: Organise by type and topic
- Annotate: Add metadata (dates, keywords, roles)
- Process: Chunk content and generate embeddings
- Review: Validate content and metadata
- Publish: Create versioned release with hashes
Integrity
Every pack and document includes SHA-256 hashes:
// Verify before caching
const hash = await sha256(packContents);
if (hash !== pack.integrity) {
throw new Error('Integrity check failed');
}This ensures:
- Content wasn't corrupted in transit
- Tampering is detectable
- Cache matches source
Distribution
Packs are distributed via:
- Initial download: Full pack on first sync
- Incremental updates: Only changed content
- Rollback preservation: Previous versions retained
Offline Search
Each pack includes embeddings for semantic search:
// Local vector similarity search
const results = await searchEmbeddings(
pack.embeddings,
queryEmbedding,
{ limit: 5 }
);This enables natural language queries without network connectivity.
Domain Organisation
Packs are organised by domain:
emergency-responsewash(Water, Sanitation, Hygiene)healthlogisticsprotection
Responders can cache relevant domains for their role.
Locale Support
Packs support multiple locales:
- Content in local languages
- Locale-specific formatting
- Fallback to default locale
Learn More
Wrap-up
Operational guidance shouldn't require constant connectivity. UPAS aims to work seamlessly — whether you're in a well-connected office or a remote field location.
If that sounds like the kind of tooling you want to explore — register your pilot interest or join the discussion on GitHub.