ConceptsPhiCo (composer)

PhiCo

PhiCo is the authoring composer agent. PhiCo proposes a Receipt — a signed, line-numbered recipe of how a Surface should compose — and you accept, modify, or reject it. Nothing publishes without a human-accepted Receipt. This is the contract that makes every PhiWebs Surface reproducible.

PhiCo is one half of the PhiCo / PhiSo agent pair. Its counterpart is PhiSo, the visitor surface operator that answers questions on the published Surface.

What PhiCo does

ModeWhat PhiCo proposes
ComposeA new Surface from your prompt — picks blocks, structures the tree, fills in defaults.
MutateTargeted edits to an existing Surface — add a section, change a heading, restructure a grid.
SpawnA fresh Surface inside the current World, optionally based on a starter.
StyleTheme tokens, appearance atoms, visual decisions.
BindWire blocks to data via the platform/persistence capability.

Each mode runs as a separate agent thread with its own conversation history. You can have multiple threads open in the Studio at once.

The Receipt

Every PhiCo response includes a Receipt — a typed diff describing exactly what would change.

Receipt sf_abc123 · revision 7 → 8
─────────────────────────────────
+ block heading                       L12  level=1 align="center" content="…"
+ block text                          L13  align="center" color="muted"
~ container (props.padding)           L05  lg → xl
- block image (id="img_old")          L21  removed

Receipts are line-numbered, hash-signed, and immutable once accepted. The runtime materialises the Surface deterministically from the Receipt’s contents — same Receipt → same render, every time.

Accepting, modifying, rejecting

When PhiCo returns a Receipt, you have three choices:

  • Accept — Apply the Receipt as-is. The Surface moves to a new revision; the diff is preserved in the Surface’s revision history.
  • Modify — Inline-edit the proposed blocks before accepting. PhiCo preserves your context for the next turn.
  • Reject — Discard the proposal. No Φ is charged for rejected Receipts; only accepted Receipts consume your AI grant.

What PhiCo can and can’t see

PhiCo composes from the live block catalog plus the manifest knowledge schema every block ships with. It does not see private World data, your email, or anything outside the current authoring session unless you explicitly bind a data source.

Each block’s manifest.json exposes a 4-field knowledge brief (intent, whenToUse, whenNotToUse, commonMistakes) that PhiCo reads verbatim. Each World may override the brief on its installed atoms — useful when your phrasing differs from the first-party defaults.

Φ accounting

ActionΦ cost
Open a PhiCo threadFree
Receive a Receipt proposalFree
Reject a ReceiptFree
Accept a ReceiptCounted against your monthly grant
Style / spawn / bind modesSame — accept = charge

When your Φ grant runs out mid-month, top up from World settings → Billing. New cycles refill at the start of the next billing period.

API

PhiCo is available through:

  • Studio UI — Cmd+K to open the composer pane.
  • MCP server — Local Claude Code integration via the PWFabric Studio plugin.
  • RESTPOST /api/ai/composer/stream (SSE, ADR-100).

See also