Skip to main content

Quick Start

Let's run through the basics and see Workloom in action.

Validating a Workspace Manifest

A workspace manifest declares which AI packages apply to a repository. Let's validate a simple one:

pnpm wl validate fixtures/workspaces/simple-workspace.json

Expected output:

Valid workspace manifest: fixtures/workspaces/simple-workspace.json
Workspace: Simple Workspace (wksp_simple_01)
Targets: root
Revision: 1

What this means:

  • Workspace IDwksp_simple_01 — The unique identifier for this workspace
  • Org IDorg_acme — Which organization owns this workspace
  • Targetsroot — This workspace has one target (a single repo, in this case)
  • Revision1 — Every change to the workspace increments the revision counter

The workspace is bound to a git repository and declares which packages (and versions) apply to that repo.

Validating a Package Manifest

Now let's validate a package:

pnpm wl validate fixtures/packages/workloom-baseline-v1.json

Expected output:

Valid package manifest: fixtures/packages/workloom-baseline-v1.json
Package: @workloom/baseline@1.0.0
Trust class: passive_text
Assets: 5

What this means:

  • Package ID@workloom/baseline@1.0.0 — Scope, name, and semantic version (like npm)
  • Trust classpassive_text — This package contains only instructions and prompts (safest trust level)
  • Assets5 — This package defines 5 AI assets (skills, instructions, etc.)
What Are Assets?

Assets are the building blocks of packages — instructions, skills, hooks, MCP server configs, prompts, etc. Each asset has a trust class that determines what gates must pass before it can be rendered to disk.

Trust Gates in Action

Now let's see what happens when a workspace declares packages with trust requirements that violate org policies:

pnpm wl validate fixtures/workspaces/policy-denied-hooks.json

Expected output:

Trust gate violations in workspace manifest: fixtures/workspaces/policy-denied-hooks.json
- Target "root" provider "claude" uses projection policy "generated_local"
which is too permissive for trust-sensitive package "@workloom/secure-hooks@1.0.0"

Recommendation: Change projection policy to "approval_required" or "manual_review"
Exit code: 5 (policy violation)

What this means:

  • This workspace references a package with executable hooks
  • The workspace's projection policy for Claude is generated_local — which means files are rendered automatically without approval
  • That's too permissive for hooks — they require explicit approval before they touch disk
  • The validation fails with exit code 5

This is Workloom's trust model at work: no silent overwrites, no surprise shell commands. If you want hooks to run, you must explicitly approve them.

Understanding Policies

Workloom enforces trust policies per provider per workspace:

PolicyBehavior
forbiddenThis asset type cannot be used with this provider
approval_requiredFile is rendered only after explicit approval
manual_reviewWorkloom renders with a "review me" flag; you approve in your editor
committed_projectionFile is committed to git (org policy, not developer override)
generated_localFile is generated locally, auto-synced (safest for passive text)
user_localFile is local-only (never synced)

Hooks and MCP servers typically require approval_required or manual_review. Instructions and prompts can safely use generated_local.

What's Next

Now that you understand validation and trust gates, let's build your first workspace manifest from scratch. Head to Your First Workspace.

tip

Exit codes matter for CI integration. Exit code 0 = valid. Exit code 5 = policy violation. Exit code 2 = schema error. This makes Workloom easy to integrate into your build pipeline.