Skip to content

Human working preferences ​

Company OS can retain reviewed preferences for a human member of one company. This is collaboration context for an agent, not company policy or a second memory store.

This profile is separate from hitl_preferences, which controls approval modes and autonomy thresholds. A working preference cannot relax a human approval requirement.

Identity and task relevance ​

  • The subject is a durable company_human_memberships.id, scoped by company_id.
  • A task created with a verified human membership token binds to that membership. A child task inherits its parent's binding. Tasks created without either binding receive no human preference context.
  • An existing task can be bound with POST /api/company/companies/{company_id}/tasks/{task_id}/human-preference-subject and { "membership_id": "<uuid>" }. The subject or a human owner/admin must authorize it; an existing binding cannot be replaced.
  • The task llm-context includes only approved or corrected preferences for its bound human while that membership and identity are active. Each emitted item names its source event ID in the rendered human_preferences section; the context manifest records the section's digest.

Review workflow ​

GET and POST /api/company/companies/{company_id}/human-preferences/{membership_id}/events expose the bounded history and append events. Requests use the Company OS transport bearer; reads and human decisions also require a verified human principal token. The member can review their own profile; an active owner or admin member can review another member's profile. A scoped agent can propose but cannot approve, correct, reject, or retract.

History reads return up to 500 newest events and next_before_event_seq. Pass that value as ?before_event_seq=<number> to read the next page. Continue until the cursor is null.

Event actions:

ActionPredecessorEffect on context
proposenonePending; excluded
approveproposalCopies its value and evidence into the reviewed profile
rejectproposalExcluded
correctcurrent approved/corrected eventReplaces the reviewed value, preserving history
retractcurrent approved/corrected eventRemoves the key from context, preserving history

propose and correct require a bounded value and evidence_ref. Valid references are task:<uuid>, run:<uuid> in the same company, or human_assertion by the subject themself. The optional evidence_excerpt is bounded and redacted before storage. Preference categories are communication, goal, frustration, and preference; keys use lowercase letters, digits, and underscores. For example:

json
{
  "category": "preference",
  "preference_key": "response_length",
  "action": "propose",
  "value": "Prefer concise answers with links to the changed files",
  "evidence_ref": "task:00000000-0000-0000-0000-000000000001"
}

The reviewer approves by posting action: "approve" with the same category and key plus the proposal's predecessor_id. The append-only event and its governance receipt commit together. A proposal is never silently promoted from an inference worker.

Company OS documentation — built with VitePress