OXYGENOxygen/ Docs
Workspace

Workspace context

The typed company profile and typed assets every AI action resolves against, and the purposes that require each section.

Workspace context is the typed half of the Knowledge Graph: a structured company profile plus typed assets. Assets and wiki pages are the same rows in the same store — oxygen context assets upsert and oxygen knowledge page upsert are two names for one write, and /context redirects to /knowledge.

Profile sections

Sections are merged independently, so an update touching only icp leaves the rest alone.

SectionFields
companyname, domain, category, geography
offeringproducts, value propositions, use cases
icptarget accounts, personas, disqualifiers
marketcompetitors, alternatives, segments
gtm_stackCRM, outbound tools, channels
customtone, user preferences, constraints

Asset types

Type defaults to other on create.

Asset kindPurpose
playbookOperational guides for a GTM motion
strategyHigh-level GTM approach
campaignCampaign brief, target segment, offers, and copy direction
positioningMessaging, differentiators, objections, and proof points
brandBrand guidelines; the canonical one is injected into AI copy generation
voiceHow you sound; the canonical one is injected into AI copy generation
personaBuyer or user profile
competitorNotes on a market rival
message_playbookOutreach message patterns; the canonical one backs live outreach
research_noteAd-hoc research output (e.g. from onboarding)
otherFlexible supporting context

--default (and oxygen context assets set-default) pins an asset as the canonical instance of its type, and canonical brand, voice, and positioning are injected into AI copy generation. Pinning or editing the canonical instance of voice, brand, positioning, playbook, or message_playbook does not save — it files an approval proposal and fails with knowledge_approval_required. See the approval gate. Unpinned drafts of those types edit freely.

Resolving

oxygen context resolve --purpose general --require-ready --json

The resolver returns a task-specific, revision-pinned bundle. Each purpose requires different sections, and --require-ready turns a gap into a conflict error instead of a partial bundle:

--purposeRequired sections
generalcompany, offering, icp, market, gtm_stack
lead_sourcingcompany, offering, icp, market, gtm_stack
workflow_designcompany, offering, icp, gtm_stack
outbound_copycompany, offering, icp
qualificationoffering, icp, market

It also carries up to --max-assets assets (default 10, hard cap 50). If it returns context_missing or reports missing_required_context, fill the named sections before resuming the work that needed them.

Bootstrapping

Bootstrapping runs through your agent. Install the Oxygen skills once, then ask the agent to fill the workspace context — the oxygen-gtm skill carries the canonical context-bootstrap.md procedure (research the company, confirm findings with you, persist them section by section).

oxygen skills install --agents codex claude-code cursor --skill '*' --json
oxygen context resolve --purpose general --json   # see which sections are still empty

Review the generated profile before using it for lead sourcing, scoring, or outbound copy.

Working with context

oxygen context profile get --json
oxygen context profile update \
  --data-json '{"icp":{"segments":["B2B SaaS at $1M-$20M ARR"],"personas":["Founder","Revenue leader"]}}' \
  --summary "Refine ICP" \
  --json
oxygen context assets list --type playbook --json
oxygen context assets search --query "objection handling" --json
oxygen context assets upsert --type playbook --title "Outbound Q1" --body "..." --json
oxygen context assets archive <asset-id> --json

None of these spend credits or call a provider.

  • Knowledge Graph — the same store as wiki pages, with revisions, search, the link graph, and the proposal queue.
  • Blueprints — a blueprint declares the context keys it expects (required_context_keys), reported by blueprints preflight.

On this page