Skip to content

The Org Charter

The Charter is governance for the Papercup org. It defines how departments talk to each other, not what they work on.

The canonical charter lives at ~/.restart-org/charter.md and is editable from the Papercup Organization page (charter button). Each department harness reads it via symlink at ~/org-{slug}/.harness/charter.md, so any edit is live for the next director run.

These cannot be changed without a code change:

  1. Five fixed departments. Business, R&D, Technology, Management, Marketing. Adding or retiring requires editing ~/.restart-org/departments.json.
  2. No veto authority. No director can override another. Coordination happens through messages.
  3. All actions live in the context of a project. Every Message carries a projectId. Reserved projects platform and org-ops exist for cross-cutting work that doesn’t belong to a specific initiative.
  4. Cyclic by design. Marketing’s MarketSignal feeds back into Business and R&D. There is no terminal stage.
  5. Every cross-department interaction is a typed message. No ad-hoc channels, no shared mutable state outside the message log.
SlugMandateInbox kindsOutbox kinds
businessDecide which proposals to pursue. Allocate budget. Own P&L.Directive, Proposal, MarketSignal, ProgressUpdate, PlatformUpdateDecision, Priority, BudgetAllocation
rdGenerate and refine ideas into proposals.MarketSignal, Decision, FeasibilityResponse, PlatformUpdateProposal, FeasibilityQuery
technologyBuild shared platform + libs. Answer feasibility. Promote spinouts.BuildRequest, FeasibilityQuery, ProjectSpinoutCapability, CapabilityDeprecation, FeasibilityResponse, PlatformUpdate, BuildRequestResponse
managementExecute approved projects. Coordinate Tech. Declare launch-ready.Decision, Priority, Capability, MarketSignal, BuildRequestResponseBuildRequest, ProgressUpdate, LaunchReady, ProjectSpinout, ProjectKickoff
marketingAcquire customers within budget. Surface market signals.LaunchReady, Capability, Priority, BudgetAllocationMarketSignal, Campaign

Every cross-department interaction is one of these typed kinds:

KindFrom → ToPurpose
Directiveuser → businessTop-level user direction; CEO mode routes from here
Proposalrd → businessIdea submission
Decisionbusiness → rd, managementApprove / reject / defer with rationale
Prioritybusiness → management, marketingActive initiatives, ranked
BudgetAllocationbusiness → anySpend authority
ProgressUpdatemanagement → businessProject status; can carry metadata.statusUpdate to advance project state
BuildRequestmanagement → technologyProject needs a platform capability
BuildRequestResponsetechnology → managementAccept / reject with rationale
Capabilitytechnology → allNew platform capability ready
CapabilityDeprecationtechnology → allMark a capability deprecated; refId points at the original Capability
PlatformUpdatetechnology → allBreaking changes, deprecations, shared lib news
FeasibilityQueryrd → technology”Is this buildable? Constraints?”
FeasibilityResponsetechnology → rdAnswer with constraints
LaunchReadymanagement → marketingProject ready for acquisition push
MarketSignalmarketing → rd, business, managementCustomer voice
Campaignmarketing → broadcastActive acquisition record
ProjectKickoffmanagement → allNew project started
ProjectSpinoutmanagement → technologyPropose in-project work for platform promotion

Every POST /api/org/messages is server-validated:

  • from must be one of the 5 dept slugs (or 'user' for the special Directive case)
  • kind must be in the sender’s outboxKinds
  • Each to slug must be valid
  • projectId must reference an existing project (defaulted to reserved platform or org-ops if absent, depending on kind)

Charter violations return HTTP 400. The autonomous loop’s executeAction runs the same validation, so a worker that emits an illegal message fails the loop iteration rather than corrupting state.

Open the charter editor from the Organization page hero. The editor is a full-screen textarea backed by PUT /api/org/charter (rejects content under 100 chars). Every edit is recorded in the audit log (~/.restart-org/audit.jsonl).

Department directors read the charter live via the symlink — no restart needed.