Skip to content

docs: builder-first IA reorganization of the English docs#4896

Open
ouiliame wants to merge 103 commits into
simstudioai:stagingfrom
ouiliame:feat/docs-reorg
Open

docs: builder-first IA reorganization of the English docs#4896
ouiliame wants to merge 103 commits into
simstudioai:stagingfrom
ouiliame:feat/docs-reorg

Conversation

@ouiliame

@ouiliame ouiliame commented Jun 6, 2026

Copy link
Copy Markdown

What this does

Rebuilds the English docs around the product's real ontology — everything is a block; some blocks are triggers; an integration is one block with Actions and optionally a Trigger — with a builder-first rewrite of the core reference, live spec-driven visuals, and a reworked docs generator that emits one page per integration.

1. IA / ontology

  • Sidebar reorganized into topic sections; Core Blocks (16) and Core Triggers (5 native: Start, Schedule, Webhook, RSS, Table) are folder accordions under Workflows, after Deployment.
  • The old /blocks and /triggers index pages are folded into the Workflows overview (kept to a real introduction — concepts, block taxonomy, trigger framing — after an editorial trim).
  • /tools/* + /triggers/<service> are unified into /integrations/<service>: one generated page per service with the curated intro, ## Actions, and a ## Triggers section when the service has one. No "Tools" terminology. ~205 pages. Old URLs 308-redirect: /tools/:slug and the old /triggers/<service> pages → /integrations/:slug, /blocks//triggers → the workflows overview anchors.

2. Hand-rewritten reference (builder voice)

  • All 16 core block pages rewritten against the real block schemas: accurate config/outputs tables, pageType frontmatter, FAQs kept, Best Practices kept, every distinct example rendered as a live WorkflowPreview (~36 hand-authored example workflows).
  • All 5 native trigger pages rewritten the same way (Wait's async suspend/resume mode, Webhook's auth/dedup behavior, the Table trigger off the auto-gen card, etc.).

3. Live visuals (no screenshots to maintain for block heroes)

  • BlockPreview — spec-driven hero rendering each block exactly as the canvas shows it.
  • WorkflowPreview — app-styled ReactFlow diagrams, now with container rendering (Loop/Parallel render as real subflow containers with a Start pill and nested blocks) and integration-icon fallback (Gmail/Slack/etc. glyphs in diagrams).

4. Generator (scripts/generate-docs.ts)

  • Emits per-service integrations/ pages (block pass writes Actions; trigger pass appends ## Triggers, or writes a standalone page for trigger-only services like IMAP/Circleback; jsm triggers merge into the Jira Service Management page).
  • Manual-content preservation hardened (three bug classes fixed): cleanup and writer now share one canonical filter so hand-curated intros are never deleted-then-regenerated away; hand-written pages are guarded from cleanup; manual sections with no insertion anchor append instead of being silently dropped. Double regeneration is churn-free (idempotent) with all MANUAL-CONTENT intact.
  • scripts/README.md rewritten to document the pipeline (canonical sources in apps/sim, the golden don't-hand-edit rule, the manual-content escape hatch).

5. Stale-content fixes

Skills page location, Credentials→Secrets, Integrations page, retired Vision block, Copilot→Mothership, dead Mod+Y shortcut, recovered staging's enriched Table doc (filter operators, limits, column types), restored 198 curated integration intros that the relocation would otherwise have dropped.

Verification

  • bun run build passes (note: docs build needs DATABASE_URL for the search route — pre-existing; CI provides it).
  • fumadocs-mdx clean; 116 image refs resolve; all BlockPreview/WorkflowPreview usages validated against specs/exports.
  • Generator run twice back-to-back → zero diff.

Scope / notes

  • English (en) only. Other locales unchanged (they keep the old structure; follow-up).
  • Branch is merged with current staging — block colors/configs and the new integrations (Sendblue, MillionVerifier, NeverBounce, ZeroBounce) are reflected.
  • Videos serve from the asset CDN (NEXT_PUBLIC_BLOB_BASE_URL); remote in local dev, fine in prod.

Known gaps / follow-ups (tracked, not blockers)

  • Fill the ~55 {/* VISUAL */} / TODO placeholder slots (diagrams/screenshots); refresh old-UI screenshots.
  • a2a / mysql / postgresql were recategorized to category: 'blocks' upstream and currently have no docs home — needs an IA decision.
  • FAQ/depth pass on how-it-runs, data-flow, triggers/start, triggers/table.
  • Port the IA to other locales; Logs API reference re-home (blocked on the OpenAPI pipeline).

🤖 Generated with Claude Code

Restructure the English docs from internal product categories into a
topic-based information architecture, and rewrite the conceptual pages
to install a mental model first rather than enumerate features.

Structure & navigation
- Reorder the sidebar to follow how someone builds: Get Started ->
  Workflows -> Tables -> Files -> Knowledge Bases -> Logs ->
  Building agents -> Mothership -> Workspaces -> Platform -> Reference.
- Demote the generated blocks/tools/triggers catalogs to a Reference
  section at the bottom.
- Break up the monolithic execution/ folder into deployment/ and
  logs-debugging/; collapse connections/* and variables/* into single
  pages under workflows/.
- Rename capabilities/ to building-agents/; relabel the integration
  catalog as "Integrations". Remove deprecated copilot and form
  deployment. Redirects added in next.config.ts for every moved URL.

Conceptual rewrites
- Workflows core (index, how-it-runs, data-flow, connections,
  variables): one mental model, one running example, terser prose.
- New building-agents overview distinguishes an agent (a workflow you
  build) from an Agent block (one reasoning step), plus a "choosing
  what to use" guide.
- Concept-trim passes on Knowledge Base, Tables, Blocks, Triggers
  overviews; new task pages for KB, Tables, and Files.
- New code-verified Alerts page.

Infrastructure
- pageType frontmatter (concept/guide/reference) + badge render.
- WorkflowPreview / OutputBundle components to embed real, app-styled
  workflow diagrams (adds framer-motion + reactflow to apps/docs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 6, 2026

Copy link
Copy Markdown

@ouiliame is attempting to deploy a commit to the Sim Team on Vercel.

A member of the Team first needs to authorize it.

@cursor

cursor Bot commented Jun 6, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Large docs surface area and URL redirects affect SEO and external docsLink references; runtime product behavior is unchanged but broken redirects or generator regressions would harm published docs.

Overview
Reorganizes English docs around blocks + integrations (one /integrations/<service> page per service, replacing split /tools and service /triggers pages) and updates agent skills, block docsLink values, and internal planning docs to match.

Docs generator & URLs: generate-docs.ts now writes integrations/<service>.mdx with merged Actions + Triggers, preserves {/* MANUAL-CONTENT */} safely, and points landing/docsLink at /integrations/.... 308 redirects in next.config.ts map /tools/*, old integration trigger URLs, /blocks//triggers indexes, and renamed /building-agents/agents.

Reading experience: Pages can declare pageType (tutorial/guide/reference/concept) via PageTypeBadge; default DocsDescription under titles is removed on MDX/API pages. New workflow-preview stack (BlockPreview, WorkflowPreview, BlockInspector, OutputBundle, .wp-scope theme tokens) gives canvas-accurate block heroes and React Flow diagrams for rewritten Agents guides and core block/trigger reference pages.

Authoring: Agent skills and integration validation skills now document /integrations paths and generator output; adds IA/visual recapture plans under apps/docs/.plans/.

Reviewed by Cursor Bugbot for commit 9871c64. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread apps/docs/components/workflow-preview/workflow-preview.tsx
@ouiliame ouiliame marked this pull request as draft June 6, 2026 01:24
@greptile-apps

greptile-apps Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR reorganizes the English docs from a product-category IA into a builder-first topic structure, rewrites key conceptual pages, and introduces two new infrastructure pieces: a pageType Diátaxis badge and a WorkflowPreview/OutputBundle component system that embeds live ReactFlow diagrams in MDX. All moved URLs have permanent redirects in next.config.ts.

  • Sidebar restructured: Get Started → Workflows → Tables → Files → Knowledge Bases → Logs → Building agents → Mothership → Workspaces → Platform → Reference. Generated catalogs (blocks/tools/triggers) demoted to a Reference section.
  • WorkflowPreview and OutputBundle React components added, backed by ReactFlow 11 + Framer Motion 12; four static example workflows defined in examples.ts with unique IDs, keyed on the ReactFlowProvider to force remount on highlight changes.
  • pageType frontmatter field added via a Zod schema extension in source.config.ts, rendered as a small Diátaxis-mode badge in page.tsx; DocsDescription intentionally removed from the page template in favour of first-paragraph prose in each MDX body.

Confidence Score: 5/5

Docs-only change with no runtime logic outside of two new React components and redirect rules; all redirects verified against deleted files, all sidebar page references verified to exist on disk.

The WorkflowPreview/OutputBundle components are client-only and isolated to the docs app. The ReactFlowProvider key correctly includes workflow.id plus the two highlight props, so state resets whenever the diagram content changes. The pageType schema extension is backward-compatible (field is optional). Redirect coverage is complete for every removed path. No application code outside apps/docs is touched.

No files require special attention. The two-hop redirect chains in next.config.ts (capabilities/agents and execution/form) were already flagged in a previous review thread.

Important Files Changed

Filename Overview
apps/docs/next.config.ts 32 permanent redirects added for moved/removed URLs; two redirect chains (capabilities/agents and execution/form) incur two round-trips but this was already flagged in a previous thread
apps/docs/components/workflow-preview/workflow-preview.tsx New ReactFlow-based read-only workflow diagram component; ReactFlowProvider keyed on workflow.id+highlight props to force remount on changes; nodes state correctly resets because of the key, but animate prop is not part of the key
apps/docs/components/page-type-badge.tsx New Diátaxis badge component; uses satisfies Record to enforce exhaustive CONFIG coverage at compile time; runtime null guard is harmless
apps/docs/app/[lang]/[[...slug]]/page.tsx Adds PageTypeBadge before DocsTitle; removes DocsDescription from visual rendering while keeping it in SEO metadata (StructuredData, generateMetadata); change is intentional for pages rewritten in this PR
apps/docs/source.config.ts Extends frontmatter schema with optional pageType enum via Zod; backward-compatible since field is optional
apps/docs/content/docs/en/meta.json Root sidebar restructured; all referenced files verified to exist on disk; individual knowledgebase/mothership pages listed flat rather than as folder groups, consistent with their respective meta.jsons
apps/docs/package.json Adds reactflow ^11.11.4 and framer-motion ^12.5.0 to docs app dependencies

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    subgraph WorkflowPreview["WorkflowPreview (client)"]
        WP["WorkflowPreview\n(wrapper, key = workflow.id + highlights)"]
        RFP["ReactFlowProvider\n(remounts on key change)"]
        PF["PreviewFlow\n(useState nodes/edges)"]
        PBS["PreviewBlockNode\n(framer-motion m.div)"]
        PE["PreviewEdge\n(m.path or path)"]
    end

    subgraph Data["Static data (examples.ts)"]
        CW["CLASSIFY_WORKFLOW"]
        CRW["CLASSIFY_REPLY_WORKFLOW"]
        SKW["SUPPORT_KB_WORKFLOW"]
        TEW["TABLE_ENRICH_WORKFLOW"]
    end

    subgraph Transform["workflow-data.ts"]
        TRF["toReactFlowElements()"]
    end

    subgraph Badge["pageType badge"]
        SC["source.config.ts\n(Zod schema extension)"]
        LS["lib/source.ts\n(DocsPageType type)"]
        PTB["PageTypeBadge component"]
    end

    MDX["MDX page\n(server component)"] -->|imports| WP
    MDX -->|frontmatter pageType| SC
    SC --> LS
    LS --> PTB
    PTB --> PageTsx["page.tsx"]

    Data --> WP
    WP --> RFP
    RFP --> PF
    PF -->|useMemo| TRF
    TRF -->|nodes| PBS
    TRF -->|edges| PE
Loading

Reviews (2): Last reviewed commit: "docs: reorganize into topic/ontology IA ..." | Re-trigger Greptile

Comment thread apps/docs/next.config.ts Outdated
Comment on lines +36 to +52
{ source: '/capabilities/agents', destination: '/building-agents/agents', permanent: true },
{
source: '/capabilities/choosing',
destination: '/building-agents/choosing',
permanent: true,
},
// execution/* was broken up; redirect old URLs to their new homes
{ source: '/execution', destination: '/workflows', permanent: true },
{ source: '/execution/index', destination: '/workflows', permanent: true },
{ source: '/execution/basics', destination: '/workflows/how-it-runs', permanent: true },
{ source: '/execution/files', destination: '/files/passing-files', permanent: true },
{ source: '/execution/logging', destination: '/logs-debugging/logging', permanent: true },
{ source: '/execution/costs', destination: '/costs', permanent: true },
{ source: '/execution/api', destination: '/api-reference/getting-started', permanent: true },
{ source: '/execution/api-deployment', destination: '/deployment/api', permanent: true },
{ source: '/execution/chat', destination: '/deployment/chat', permanent: true },
{ source: '/execution/form', destination: '/deployment/form', permanent: true },

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Two-hop redirect chains on deprecated URLs

Two redirect chains are introduced here. /capabilities/agents first hits the /building-agents/agents rule (line 23) before bouncing again to /building-agents, and /execution/form first hits /deployment/form (line 25) before going to /deployment. With permanent: true (308), browsers eventually cache both hops, but the first visit still pays two round trips and search-engine crawlers must follow two hops to update index URLs. Both chains can be collapsed to a single hop by pointing the old source directly at the final destination.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@waleedlatif1 waleedlatif1 marked this pull request as ready for review June 6, 2026 01:28
@vercel

vercel Bot commented Jun 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jun 10, 2026 5:49pm

Request Review

ouiliame and others added 2 commits June 8, 2026 15:04
Replace the static screenshot hero on each block reference page with a
<BlockPreview> that renders the block exactly as the builder canvas shows
it — header icon, sub-block rows, and branch/error handles — from a
hand-authored display spec. Static and non-interactive (no ReactFlow), so
it can't be panned or dragged, and self-updating to edit.

- block-display-specs.ts: one editable spec per block (rows, branches, handles)
- block-preview.tsx: static scaled card renderer with decorative handles
- block-icons.tsx: brand glyphs for the core block types; icons.tsx adds WaitIcon
- 14 block + 3 trigger pages swapped from <Image> to <BlockPreview>

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Audited the docs against the product changelog (GitHub releases / staging
git history) for content that misleads readers — features that moved, were
renamed, or removed — rather than cosmetic drift. Fixes:

- Skills: no longer a Settings tab. It was promoted to its own workspace
  page (simstudioai#4354), so "Settings → Skills under the Tools section" sent readers
  to a tab that no longer exists. (skills/index.mdx)
- Env vars: the workspace tab is "Secrets", not "Environment Variables"
  (credentials→secrets rename, simstudioai#4364). (quick-reference/index.mdx)
- Mothership FAQ pointed to "Settings → Credentials" for integration
  connections; integrations moved to their own page and there is no
  Credentials tab. (mothership/tasks.mdx)
- Vision block was retired (simstudioai#4684); a tip still named it. Reworded to
  "an Agent using a vision-capable model". (files/passing-files.mdx)
- Getting-started FAQ told new users to "use the Copilot feature" to build
  in natural language — that surface is Mothership. (getting-started)
- Removed the dead "Mod+Y → Go to templates" shortcut; the templates
  gallery was removed (simstudioai#4354). (keyboard-shortcuts)

Note: MCP "tools" (Settings → Tools, for consuming) and MCP "servers"
(Settings → System, for exposing) are distinct surfaces — both doc
references are correct and were intentionally left as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread apps/docs/components/workflow-preview/workflow-data.ts Outdated
ouiliame and others added 15 commits June 8, 2026 17:26
The enterprise overview linked to /docs/enterprise/* (access-control, sso,
whitelabeling, audit-logs, data-retention, data-drains), but the docs site
is served at root — those 6 links 404'd. Now root-relative /enterprise/*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The /workflows diagram blocks are hand-authored (separate from the
spec-driven BlockPreview heroes) and had drifted from the real UI:
- Agent color purple #6f3dfa -> green #33C482 (the var(--brand) rebrand)
- Model gpt-4o -> claude-sonnet-4-6 (current default)
- "Prompt" row -> "Messages" (the actual agent sub-block)
- Start color #34B5FF -> #2FB3FF (real starter bgColor)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The header (input/output) handles are positioned relative to the card and
used a -16px offset, so they floated 8px past the edge. Row/error handles
are -16px relative to a row that's already inset 8px by content padding, so
they sit correctly. Header handles are now -8px, so every handle sticks out
the same 8px and hugs the block edge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The page documented the old UI (System/User Prompt, no Files or Skills, Memory
taught as a separate block — contradicting its own FAQ). Rewritten to the real
sub-blocks (Messages, Model, Files, Tools, Skills, Memory, Response Format) in
the builder voice of the workflows exemplars: oriented opening, agent vs
Agent-block callout, outputs table, a live WorkflowPreview example, FAQ kept and
corrected (tool control "Force", not "Required"). pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tightened to the builder voice and the real config (URL, Method, Query Params,
Headers, Body + Advanced timeout/retries/backoff). Dropped the off-topic
"Dynamic URL Construction" / "Response Validation" sections (those are
Function-block techniques, not API config). Outputs table, FAQ kept. The example
is now a live WorkflowPreview (new API_FETCH_WORKFLOW in examples.ts, exported
via the barrel). pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tightened to the builder voice: oriented opening (branches on boolean
expressions, no model call, vs Router), the real branch model (if / else if /
else, checked top to bottom), connection-tag expression examples, an error-path
callout, outputs table, and a live branching WorkflowPreview example
(CONDITION_ROUTE_WORKFLOW). FAQ kept. pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…dition

Recalibration: reference pages keep genuine substance (Best Practices, every
distinct example), cutting only redundancy and verbose register. Restores the
Best Practices section and turns the three use cases into three rendered
WorkflowPreview examples (route by priority, moderate content, branch
onboarding). Adds CONDITION_MODERATE_WORKFLOW and CONDITION_ONBOARD_WORKFLOW.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixed the verbose register and dropped the duplicated outputs section + the
stale Python screenshot/TODO, while keeping the real substance: JS vs Python
(local vs E2B sandbox), the large-inputs sim.files/sim.values helpers, the
worked loyalty-score example, and Best Practices. The use cases are now two
rendered WorkflowPreview examples (reshape an API response, validate input).
Adds FUNCTION_RESHAPE_WORKFLOW and FUNCTION_VALIDATE_WORKFLOW. pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cleaned the register, generalized the drifting model list, and folded the
Router-vs-Condition guidance into a callout. Kept the substance (routes as
output ports, NO_MATCH error path, all seven outputs, Best Practices, FAQ). The
three same-shape use cases collapse to one rendered triage WorkflowPreview
(ROUTER_TRIAGE_WORKFLOW), which the prose notes stands for the pattern.
pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
I wrongly folded two distinct Router scenarios into a note. Restored all three
as their own rendered WorkflowPreview examples: triage a support ticket,
classify feedback (to child workflows), qualify a lead (sales vs self-serve).
Adds ROUTER_CLASSIFY_WORKFLOW and ROUTER_LEAD_WORKFLOW. (Also exports
RESPONSE_API_WORKFLOW for the next page.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cleaned the register and broadened "Variable References" to connection tags
(any output, not just workflow variables). Kept the substance: exit-point
semantics, Builder/Editor mode, status codes, headers, the parallel-branch
warning, Best Practices, FAQ. All three use cases are now rendered
WorkflowPreview examples (API endpoint, webhook ack, status-per-branch). Adds
RESPONSE_API/WEBHOOK/ERROR_WORKFLOW. pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cleaned the register, corrected the outputs (each assignment is also exposed as
<variables.name>, not "no outputs"), and kept the substance: assignments
reference earlier outputs and current values, global <variable.name> access,
Best Practices, FAQ. Two use cases now render as WorkflowPreview examples (count
retries, hold config). Adds VARIABLES_RETRY_WORKFLOW and VARIABLES_CONFIG_WORKFLOW.
pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Corrected a real staleness: the block now has an Async mode that suspends the
run for minutes/hours/days (not a hard 10-minute cap), plus a resumeAt output.
Documents Wait Amount / Unit / Async, the sync-vs-async distinction, all three
outputs, Best Practices, and updated FAQ. Two rendered WorkflowPreview examples
(space out API calls, delayed follow-up). Adds WAIT_RATELIMIT_WORKFLOW and
WAIT_FOLLOWUP_WORKFLOW. pageType: reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread apps/docs/components/workflow-preview/workflow-preview.tsx
…t tabs)

The page was already accurate to the block (Select/List operations, the outputs
tabs, the wiring steps). Light touch only: added description + pageType, made the
header consistent, and folded the two identical Gmail/Slack "how to wire" tabs
into one line. Examples stay as labeled flows + the List/ForEach screenshot,
since they use integration blocks and a Loop the WorkflowPreview can't render.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… one imprecision

Checked every claim in the new 'One syntax, named sources' section against
apps/sim/executor/variables: resolver chain order is Loop -> Parallel ->
WorkflowVariables -> Env -> Block (matches the table); 'variable'/'loop'/
'parallel' are literal prefixes (REFERENCE.PREFIX); block names normalize via
toLowerCase + strip spaces; an unmatched reference is genuinely left in place
(resolver returns undefined -> the replacer emits the raw match). One claim
tightened: {{KEY}} is a different syntax and can never collide with
angle-bracket references, so the precedence sentence now scopes collisions to
the angle-bracket sources with a concrete example (a block named 'variable').

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…kflow block

The choosing page defined workflow-as-tool as the Workflow block (path-decided),
contradicting its own name and the comparison table's premise. Verified against
the product: workflow_executor is an agent tool — you pick the workflow in the
Agent block's tool list, the model decides when to call it and supplies the
inputMapping (user-or-llm), inputs arrive at the child's Start trigger.

Rewritten agent-first: the section defines it as a workflow handed to an agent
as one callable tool, the lead scorer gains a Deep Enrich workflow tool chip on
the agent (diagram updated), and the deterministic Workflow block becomes the
explicit contrast in a callout — same child workflow, the difference is who
decides, mirroring the block/agent-tool contrast. Table row corrected to
"The agent"; the summary paragraph follows.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread scripts/generate-docs.ts
ouiliame and others added 3 commits June 9, 2026 17:26
Light-mode support for every preview component (WorkflowPreview canvas, nodes,
containers, edges, lightbox, BlockPreview, OutputBundle, BlockInspector): a
wp-scope token block in the docs global stylesheet whose values mirror the OG
repository's globals.css in both modes (surfaces, borders, --workflow-edge,
text tiers, the --badge-* type-badge palette). Every hardcoded hex swapped to a
--wp-* var; brand colors, selection blue, and error red stay literal.

tables/workflow-columns: separated the two group kinds per the contract's
workflowGroupType enum ('manual' | 'enrichment'). New "Two kinds of groups"
section opens with the + New column menu capture (Enrichments above the types,
Workflow below); Enrichments documented from the code-defined registry (company
domain, company info, email verification, phone number, work email) including
the provider-cascade behavior that produces Not found cells; the Company Info
panel capture is now correctly labeled as an enrichment config; workflow groups
keep the Configure workflow panel. Shared machinery generalized under "How
groups run"; the cascade section names which stage is which kind; the two
portrait screenshots render smaller.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…group's kind

Two corrections on workflow columns: the prose no longer lists the enrichment
catalog (growable, not procedurally tracked — it now describes the category and
points at the Enrichments panel; the provider-cascade/Not-found explanation
stays, it's behavior not catalog), and the page no longer asserts which kind
the example's Company Domain / Company Info groups are (Company Info may be a
user-built workflow, not the built-in). The input/output bindings capture moved
to "How groups run" as the kind-agnostic illustration; only Lead Score — whose
panel shows the workflow picker — is named as a workflow group.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…finally branch

WorkflowPreview's node only ever had one header source handle, so every
condition/router example fanned both edges out of a single point and never
showed the if/else rows the real canvas (and the BlockPreview hero specs)
render. PreviewBlock now supports `branches` (each rendered as a row with its
own right-edge source handle, id `branch-<id>`) and `showError` (red error
handle), mirroring the executor's per-branch condition-true/condition-false and
router-<route> handle model. A block with branches emits from them, not the
header.

Every affected example rewired (13 workflows): the three condition examples,
status-per-branch, credential routing, and the webhook-trigger check route
their edges through branch-if/branch-else with the expression on the If row and
an explicit else; the three router examples list their actual routes as branch
rows (Sales/Support/Billing, Product/Bug report, Enterprise/Self-serve); the
terminal gates (variables retry, evaluator gate, the three guardrails gates)
show dangling if/else branch rows like the canvas does.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread apps/docs/components/workflow-preview/examples.ts
ouiliame and others added 4 commits June 9, 2026 17:43
Moving condition expressions from rows into branches emptied the lightbox
inspector for condition/router blocks — it only mapped rows to fields. Branches
now map too: each branch renders as a field (If with its expression as code,
else as an empty control, router routes by name).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tation

Verified against the source after the branch-handles work: the canvas emits
condition-${cond.id} handles per condition row (workflow-block.tsx) and Router
V2 uses router-${routeId} port handles, and edges carry those ids as
sourceHandle — the docs' invented branch- prefix was a gratuitous divergence
that the planned fromWorkflowState() adapter would have had to translate. The
node now uses the authored branch id as the handle id directly, and every
example authors ids in the app's own scheme (condition-if/condition-else,
router-<route>), so example edges now match real workflow edges verbatim.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…w output

The add-integration/add-block/validate-integration skills — what Claude Code
follows when integrations land on staging — still taught the old layout:
docsLink templates pointing at docs.sim.ai/tools/{service} and 'generates
tools/{service}.mdx'. Updated so that once this PR merges, the instructions on
staging produce the new way by themselves: /integrations/ docsLinks, the
per-service page description, and the don't-hand-edit/manual-content pointer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ouiliame ouiliame force-pushed the feat/docs-reorg branch 2 times, most recently from 02b4527 to e356405 Compare June 10, 2026 01:13
The concurrency section drifted into 'run at the same time' framing across two
accuracy passes — but the semantics are non-blocking execution: a block starts
the moment its dependencies finish and waits on nothing else. Section retitled
'Blocks run as soon as they can', the rule stated in two plain sentences, the
duplicated pre-image example narration gone (the post-image caption carries it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…it-runs

Failure behavior was buried inside 'Watching a run' (the live-UI section). Now
a first-class 'When a block fails' section in the execution story: an error
fails the run (in-flight blocks finish, nothing new starts) unless the block's
error port is connected, in which case the run follows the error path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ouiliame and others added 2 commits June 9, 2026 18:40
Three targeted edits from the sim-internals analysis, each carrying an inline
{/* why */} provenance comment so future editorial passes know the data behind
it:

- workflows/how-it-runs gains "How long a run can take" — run timeouts are the
  only hard-error class provable at scale (2,415 five-minute timeouts in 14
  days); limits verified in lib/core/execution-limits/types.ts (5 min free /
  50 min paid sync, 90 min async, env-overridable).
- getting-started gains an "if the run doesn't go green" callout at the Test
  step — the largest funnel drop is created-workflow -> first-successful-run
  (92% -> 49%), and this is the stall point.
- function/api Best Practices: the existing error-path bullets get a guard
  comment (<1% of deployed workflows connect an error port — under-adopted,
  not under-needed) instead of duplicate bullets.
- visuals manifest: capture priority reordered by integration adoption
  (Sheets, Gmail, Telegram, WhatsApp, ...).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ouiliame and others added 2 commits June 10, 2026 10:25
# Conflicts:
#	apps/docs/content/docs/en/tools/servicenow.mdx
#	apps/docs/content/docs/en/triggers/intercom.mdx
…Gong tools)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The section's pages now live where the sidebar says they do:
building-agents/ -> agents/, and the stray top-level /mcp and /skills fold in
as /agents/mcp and /agents/skills (they were always part of the agents story —
the URLs predated the IA settling). Sidebar section header is now "Agents",
link labels updated, and every old URL 308s: /building-agents(/*) -> /agents(/*),
/mcp, /skills, plus the existing capabilities/ and tools/custom-tools redirect
destinations retargeted. Verified: all five new pages render and every old-URL
class redirects correctly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Comment thread scripts/generate-docs.ts
Comment thread scripts/generate-docs.ts
…put examples

The reorg dropped two things from the old tags page that belonged on the
connections reference: the connections.mp4 walkthrough (restored after the
intro) and the FAQ (rebuilt in the robust JSX form — resolver order, name
normalization, env-var syntax pointer, didn't-run behavior, array indexing,
Function-block formatting; answers aligned with the since-verified resolver
facts, including unmatched-references-left-in-place).

Editorial/accuracy pass on the output-shape tabs while in there: stale gpt-4o
and gpt-5 examples now claude-sonnet-4-6, the Agent tokens shape corrected to
the verified { input, output, total } (the page contradicted blocks/agent), and
the dubious cost: [] line dropped — the example now matches the real run
inspector.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 3 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9871c64. Configure here.

edges: [
{ id: 'start-condition', source: 'start', target: 'condition' },
{ id: 'condition-webhook', source: 'condition', target: 'webhook' },
],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Condition edge missing branch handle

Low Severity

In WEBHOOK_TRIGGER_WORKFLOW, the edge from condition to webhook omits sourceHandle, so React Flow defaults to source. Condition nodes only expose branch handles (condition-if, condition-else), so the diagram can show a missing or wrong connection despite copy saying the webhook runs when the condition passes.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9871c64. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant