[{"data":1,"prerenderedAt":519},["ShallowReactive",2],{"$fc0Al58-vQIlAJYOE4_EWL6iKwXLefsX06Tq7ARz1M0k":3},{"newThing":4,"project":5,"cycle":9,"sections":24,"threads":412,"otherDocs":413,"images":415,"archiveItems":496,"links":500},"Nine rendered integrations concepts — the iteration ladder from honest directory to the shipped catalog treatment",{"id":6,"label":7,"liveBase":8},"design","Design",null,{"id":10,"num":11,"dir":12,"name":13,"title":14,"focus":15,"status":16,"statusNote":8,"created":17,"completed":8,"mode":8,"recordless":18,"thumbnail":19,"imageCount":20,"artifactCount":21,"lastActivity":22,"hasPickup":18,"hasInitialPrompt":23},"c61",61,"c61.integrations-teams","integrations-teams","Integrations & Teams","Research and design enterprise-SaaS patterns for qdash teams and integrations pages","archived","2026-08-08",false,"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v1.png",23,4,"2026-09-11",true,[25,70,80,145,356],{"key":26,"title":27,"empty":18,"ast":28},"why","Why",{"type":29,"children":30},"root",[31],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36,39,46,48,54,56,61,63,68],{"type":37,"value":38},"text","qdash's ",{"type":32,"tag":40,"props":41,"children":43},"code",{"className":42},[],[44],{"type":37,"value":45},"\u002Fteams",{"type":37,"value":47}," and ",{"type":32,"tag":40,"props":49,"children":51},{"className":50},[],[52],{"type":37,"value":53},"\u002Fintegrations",{"type":37,"value":55}," pages need a design pass. Exploration found neither page matches its name — ",{"type":32,"tag":40,"props":57,"children":59},{"className":58},[],[60],{"type":37,"value":45},{"type":37,"value":62}," is a per-person fleet rollup (observed telemetry identities ranked by risk\u002Fspend; no team entity, roles, or invites) and ",{"type":32,"tag":40,"props":64,"children":66},{"className":65},[],[67],{"type":37,"value":53},{"type":37,"value":69}," is a capability inventory (live vs projected connectors; no connect flows or status). Both carry qdash's honesty stance (\"binds 127.0.0.1 — nothing leaves unless you export it\"). This work feeds the design team's own explorations.",{"key":71,"title":72,"empty":18,"ast":73},"objective","Objective",{"type":29,"children":74},[75],{"type":32,"tag":33,"props":76,"children":77},{},[78],{"type":37,"value":79},"Research current enterprise-SaaS patterns for teams\u002Fmembers and integrations pages, rank the jobs-to-be-done per page, and deliver multiple design options as design-site mocks. Layer extractions and product-ready code follow in a second iteration.",{"key":81,"title":82,"empty":18,"ast":83},"scope","Scope",{"type":29,"children":84},[85,94,129,137],{"type":32,"tag":33,"props":86,"children":87},{},[88],{"type":32,"tag":89,"props":90,"children":91},"strong",{},[92],{"type":37,"value":93},"In:",{"type":32,"tag":95,"props":96,"children":97},"ul",{},[98,104,109,114,119,124],{"type":32,"tag":99,"props":100,"children":101},"li",{},[102],{"type":37,"value":103},"Trend research + screengrabs (cycles\u002Fc61.integrations-teams\u002Fresearch.md + research\u002F images)",{"type":32,"tag":99,"props":105,"children":106},{},[107],{"type":37,"value":108},"JTBD analysis for each page",{"type":32,"tag":99,"props":110,"children":111},{},[112],{"type":37,"value":113},"Multiple idea pages on the design site (app\u002Fpages\u002Fpages\u002Fteams-ideas.vue, app\u002Fpages\u002Fpages\u002Fintegrations-ideas*.vue; 3–4 concepts spanning today's-data-model → aspirational)",{"type":32,"tag":99,"props":115,"children":116},{},[117],{"type":37,"value":118},"Layer extractions (IntegrationCard, IntegrationLogo) and product shipping (qcontrol feat\u002Fcontrol-center)",{"type":32,"tag":99,"props":120,"children":121},{},[122],{"type":37,"value":123},"Taxonomy alignment across both catalogs",{"type":32,"tag":99,"props":125,"children":126},{},[127],{"type":37,"value":128},"page-registry entries for both ideas pages",{"type":32,"tag":33,"props":130,"children":131},{},[132],{"type":32,"tag":89,"props":133,"children":134},{},[135],{"type":37,"value":136},"Out:",{"type":32,"tag":95,"props":138,"children":139},{},[140],{"type":32,"tag":99,"props":141,"children":142},{},[143],{"type":37,"value":144},"Any qcontrol\u002Fqdash code changes to main — features land only on feat\u002Fcontrol-center (blocked until product is ready)",{"key":146,"title":147,"empty":18,"ast":148},"key-changes","Key Changes",{"type":29,"children":149},[150],{"type":32,"tag":95,"props":151,"children":152},{},[153,195,212,229,239,263,286,303,320,330],{"type":32,"tag":99,"props":154,"children":155},{},[156,161,163,169,171,177,179,185,187,193],{"type":32,"tag":89,"props":157,"children":158},{},[159],{"type":37,"value":160},"Research (2026-08-08):",{"type":37,"value":162}," ",{"type":32,"tag":40,"props":164,"children":166},{"className":165},[],[167],{"type":37,"value":168},"research.md",{"type":37,"value":170}," — current-state read of both qdash pages, ranked JTBD per page (grounded in c55 personas), qdash punch list (drift-report items, not fixed here), and a comparable-trends digest. Companion docs ",{"type":32,"tag":40,"props":172,"children":174},{"className":173},[],[175],{"type":37,"value":176},"research-teams.md",{"type":37,"value":178}," + ",{"type":32,"tag":40,"props":180,"children":182},{"className":181},[],[183],{"type":37,"value":184},"research-integrations.md",{"type":37,"value":186}," cover ~20 products across dev-infra \u002F security-observability \u002F enterprise-IT tiers; 15 verified screengrabs in ",{"type":32,"tag":40,"props":188,"children":190},{"className":189},[],[191],{"type":37,"value":192},"research\u002F",{"type":37,"value":194}," with source attribution. Standout findings: Okta\u002FLinear JIT provisioning + Snyk's auth-method column as the mental model for invite-less observed identities; Datadog's Detected\u002FMissing-Data states and the near-universal absence of a test-send affordance on the integrations side.",{"type":32,"tag":99,"props":196,"children":197},{},[198,203,204,210],{"type":32,"tag":89,"props":199,"children":200},{},[201],{"type":37,"value":202},"teams-ideas (2026-08-08):",{"type":37,"value":162},{"type":32,"tag":40,"props":205,"children":207},{"className":206},[],[208],{"type":37,"value":209},"\u002Fpages\u002Fteams-ideas",{"type":37,"value":211}," — four concepts: (1) one risk story per row (8 cols → 5, verb deep-links), (2) teams as the unit (cards + promoted unassigned bucket), (3) the mapping workspace (queue\u002Fevidence\u002Fsuggestions\u002Fbulk assign, SCIM-projected banner), (4) SCIM-day members & roles (projected). Meridian numbers extended: $1,034\u002F30d attributed + $306 unattributed (23%), priya 2.4× user spend median, Payments 2.7× team token median.",{"type":32,"tag":99,"props":213,"children":214},{},[215,220,221,227],{"type":32,"tag":89,"props":216,"children":217},{},[218],{"type":37,"value":219},"integrations-ideas (2026-08-08):",{"type":37,"value":162},{"type":32,"tag":40,"props":222,"children":224},{"className":223},[],[225],{"type":37,"value":226},"\u002Fpages\u002Fintegrations-ideas",{"type":37,"value":228}," — four concepts: (1) honest directory + loopback ledger (\"0 bytes — verified, not promised\"; kills the PagerDuty\u002FSlack live-and-projected contradiction), (2) connector shelf (filterable grid, request tile), (3) severity-major routing console (test-send, disable path, replayed \"would have fired\" strip), (4) projected→live connect flow (credentials → scope → verify, health states, projected · dry-run · live lifecycle ribbon).",{"type":32,"tag":99,"props":230,"children":231},{},[232,237],{"type":32,"tag":89,"props":233,"children":234},{},[235],{"type":37,"value":236},"integrations-ideas-v2 through v9 (2026-08-13):",{"type":37,"value":238}," Five successive refinement iterations exploring JTBD-first reframing, capability-first middle grounds, compact and scalable catalog layouts, and affordance matrices. v2 (operator truth table + ledger framing), v3 (operating outcomes lead), v4 (affordance pass), v5 (simplified four-intent setup), v6 (capability-first), v8 (compact with modal), v9 (scalable catalog with sources\u002Fenrichment separated, five-to-six vendor categories, search modal, request path, local SVG marks for branded connectors). v7 discarded (responsive rail collapse at intermediate widths).",{"type":32,"tag":99,"props":240,"children":241},{},[242,247,249,255,257,261],{"type":32,"tag":89,"props":243,"children":244},{},[245],{"type":37,"value":246},"Layer extractions (2026-08-13):",{"type":37,"value":248}," Published ",{"type":32,"tag":40,"props":250,"children":252},{"className":251},[],[253],{"type":37,"value":254},"@qpoint-io\u002Fq-nuxt-layer",{"type":37,"value":256}," v0.9.10 with IntegrationCard (components\u002Fintegration\u002FCard.vue) and IntegrationLogo (components\u002Fintegration\u002FLogo.vue — id-resolved brand logos rendered as ",{"type":32,"tag":258,"props":259,"children":260},"img",{},[],{"type":37,"value":262},", immune to gradient-id collisions and recoloring). 20 third-party logo SVGs migrated into layer assets\u002Fsvgs\u002Fthird-party-logos\u002F. New semantic tokens: surface-logo (white chip background for brand logos, both modes) and surface-sunken-deeper realigned (grey-200 light \u002F grey-800 dark). Gear icon added to layer. Both components documented in design site component registry (new Integration group) with interactive demos.",{"type":32,"tag":99,"props":264,"children":265},{},[266,271,273,278,280],{"type":32,"tag":89,"props":267,"children":268},{},[269],{"type":37,"value":270},"Shipped to product (2026-08-13):",{"type":37,"value":272}," Replaced \"Projected outbound connectors\" section of qcontrol qdash ",{"type":32,"tag":40,"props":274,"children":276},{"className":275},[],[277],{"type":37,"value":53},{"type":37,"value":279}," (branch feat\u002Fcontrol-center) with v10 treatment. Typed connector catalog (app\u002Flib\u002Fintegrations.ts, 11 connectors incl. new generic Custom webhook + S3-compatible storage). Per-connector detail\u002Fconfig pages at \u002Fintegrations\u002F",{"type":32,"tag":281,"props":282,"children":283},"id",{},[284],{"type":37,"value":285}," with live severity routing for channel-backed connectors via \u002Fapi\u002Fchannels. Channel-backed connectors flip to active stat cards only when a routing row is genuinely authored.",{"type":32,"tag":99,"props":287,"children":288},{},[289,294,295,301],{"type":32,"tag":89,"props":290,"children":291},{},[292],{"type":37,"value":293},"integrations-ideas-v10 (2026-08-13):",{"type":37,"value":162},{"type":32,"tag":40,"props":296,"children":298},{"className":297},[],[299],{"type":37,"value":300},"\u002Fpages\u002Fintegrations-ideas-v10",{"type":37,"value":302}," — visual treatment refinement applied to v9 catalog. Heavy-rule category sections (title + 3px rule). Active connectors promoted to primary-bordered stat cards (logo cell \u002F name + \"active\" \u002F value-label stats \u002F gear config rail). Available connectors as recessed add-rows with dashed borders + buttons. View-all expands in place (browse modal removed). Collapsed sections show fixed count (COLLAPSED_ITEM_COUNT=3) with actives always shown, inactives filling remaining slots. Request link always visible.",{"type":32,"tag":99,"props":304,"children":305},{},[306,311,312,318],{"type":32,"tag":89,"props":307,"children":308},{},[309],{"type":37,"value":310},"integrations-ideas-v11 (2026-08-13):",{"type":37,"value":162},{"type":32,"tag":40,"props":313,"children":315},{"className":314},[],[316],{"type":37,"value":317},"\u002Fpages\u002Fintegrations-ideas-v11",{"type":37,"value":319}," — same visual treatment as v10 with each category contained in a bordered bg-surface card instead of heavy-rule headings. Tested for alternative container framing.",{"type":32,"tag":99,"props":321,"children":322},{},[323,328],{"type":32,"tag":89,"props":324,"children":325},{},[326],{"type":37,"value":327},"Taxonomy convergence (2026-08-13):",{"type":37,"value":329}," Both qdash and design-site catalogs now share five capability headers replacing outbound routing: Sources & enrichment (inbound; Okta\u002FEntra reframed from outbound \"map to IdP\" to inbound enrichment), Security & observability, Notifications & response, Remediation tracking, Evidence & compliance. Practitioner keywords (SIEM, GRC) moved into why-lines for each capability.",{"type":32,"tag":99,"props":331,"children":332},{},[333,338,340,346,348,354],{"type":32,"tag":89,"props":334,"children":335},{},[336],{"type":37,"value":337},"Registry:",{"type":37,"value":339}," new ",{"type":32,"tag":40,"props":341,"children":343},{"className":342},[],[344],{"type":37,"value":345},"admin",{"type":37,"value":347}," page group + both entries in ",{"type":32,"tag":40,"props":349,"children":351},{"className":350},[],[352],{"type":37,"value":353},"app\u002Fdata\u002Fpage-registry.ts",{"type":37,"value":355},". All ideas pages verified rendering clean (SSR 200, no console\u002Fserver warnings).",{"key":357,"title":358,"empty":18,"ast":359},"outcome","Outcome",{"type":29,"children":360},[361,380,392,402],{"type":32,"tag":33,"props":362,"children":363},{},[364,369,371,378],{"type":32,"tag":89,"props":365,"children":366},{},[367],{"type":37,"value":368},"Teams stream split to c67 (2026-08-14)",{"type":37,"value":370}," — c61 closes with integrations shipped and teams at research + ideas-v1; refinement, composition, and shipping of the teams page continue in ",{"type":32,"tag":372,"props":373,"children":375},"a",{"href":374},"..\u002Fc67.teams\u002FCYCLE.md",[376],{"type":37,"value":377},"c67.teams",{"type":37,"value":379},".",{"type":32,"tag":33,"props":381,"children":382},{},[383,385,390],{"type":37,"value":384},"Research and design complete; moved into product implementation. Design site now contains nine (v1–v6, v8–v11) fully-rendered design concepts as a decision artifact for future evaluation by the design team and product. IntegrationCard and IntegrationLogo extracted to the layer and documented with interactive demos on the design site. qdash ",{"type":32,"tag":40,"props":386,"children":388},{"className":387},[],[389],{"type":37,"value":53},{"type":37,"value":391}," shipped with v10 catalog treatment and typed connector system (11 connectors, live-only vs projected, per-connector config pages) on the feat\u002Fcontrol-center branch. Both qdash and design catalogs aligned to five capability headers grounded in operator outcomes (inbound enrichment, security observability, notifications, remediation tracking, compliance evidence).",{"type":32,"tag":33,"props":393,"children":394},{},[395,400],{"type":32,"tag":89,"props":396,"children":397},{},[398],{"type":37,"value":399},"Gotchas documented for future reference:",{"type":37,"value":401}," Layer type scale bottoms out at text-11 (text-10\u002F9 silently render 16px); design site dark mode is inline-CSS-var based so Tailwind dark: variants never fire; new component files require dev-server restart for Tailwind JIT scanning.",{"type":32,"tag":33,"props":403,"children":404},{},[405,410],{"type":32,"tag":89,"props":406,"children":407},{},[408],{"type":37,"value":409},"Commits:",{"type":37,"value":411}," design main e25d6c8, layer v0.9.10 (16df214), qcontrol feat\u002Fcontrol-center 40a0eb06.",[],[414,184,176,168],"initial-prompt.md",[416,420,424,428,432,435,439,443,447,451,455,459,462,466,469,472,475,478,481,484,487,490,493],{"src":19,"kind":417,"order":418,"caption":419},"hero",0,"v1 — four concepts: honest directory with loopback ledger, connector shelf, severity-major routing console, projected→live connect flow",{"src":421,"kind":417,"order":422,"caption":423},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v2.png",1,"v2 — Idea 1 refinements: operator truth table, loopback ledger, projected payload preview, connector priority queue",{"src":425,"kind":417,"order":426,"caption":427},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v3.png",2,"v3 — JTBD-first: operating jobs lead, integrations become routes, contextual projected connectors, job-ranked action queue",{"src":429,"kind":417,"order":430,"caption":431},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v4.png",3,"v4 — affordance pass: jobs-first launchpad, SOC job workspace, affordance matrix, outcome recipes",{"src":433,"kind":417,"order":21,"caption":434},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v5.png","v5 — simplified setup: broad routing intents, connection-first empty state, progressive destination setup, one affordance per state",{"src":436,"kind":417,"order":437,"caption":438},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v6.png",5,"v6 — capability-first: scannable integration groups, representative destinations, concise value copy, setup one level down",{"src":440,"kind":417,"order":441,"caption":442},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v8.png",6,"v8 — compact capability cards: all capabilities visible, purpose and setup inline, stable responsive layout (v7 was discarded)",{"src":444,"kind":417,"order":445,"caption":446},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v9.png",7,"v9 — scalable capability cards: two common choices per card, category browse + search, request path, one-modal setup",{"src":448,"kind":417,"order":449,"caption":450},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v10.png",8,"v10 — active-state stat cards: heavy-rule categories, connected integrations promoted to bordered stat cards, dashed add rows. The treatment that shipped to qdash.",{"src":452,"kind":417,"order":453,"caption":454},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v11.png",9,"v11 — capability cards on surface: the v10 treatment with each category in a white card instead of heavy-rule headings",{"src":456,"kind":417,"order":457,"caption":458},"\u002Fcycles\u002Fdesign\u002Fc61-teams-ideas.png",18,"Four c61 concepts — one-risk-story rollup, team-first cards, identity→org mapping workspace, SCIM-day members & roles",{"src":460,"kind":417,"order":461},"\u002Farchive\u002F2026-q3\u002Fc61-integrations-ideas-v10.png",4999,{"src":463,"kind":464,"order":465},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v1-full.png","full",9000,{"src":467,"kind":464,"order":468},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v2-full.png",9001,{"src":470,"kind":464,"order":471},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v3-full.png",9002,{"src":473,"kind":464,"order":474},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v4-full.png",9003,{"src":476,"kind":464,"order":477},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v5-full.png",9004,{"src":479,"kind":464,"order":480},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v6-full.png",9005,{"src":482,"kind":464,"order":483},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v8-full.png",9006,{"src":485,"kind":464,"order":486},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v9-full.png",9007,{"src":488,"kind":464,"order":489},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v10-full.png",9008,{"src":491,"kind":464,"order":492},"\u002Fcycles\u002Fdesign\u002Fc61-ideas-v11-full.png",9009,{"src":494,"kind":464,"order":495},"\u002Fcycles\u002Fdesign\u002Fc61-teams-ideas-full.png",9018,[497],{"path":498,"title":499,"image":460,"gallery":8},"archive\u002F2026-q3\u002F2026-08-13-c61-integrations-ideas-v10","Integrations Catalog v10",[501,502,504,506,508,510,512,514,516,517,518],{"route":226,"href":226},{"route":503,"href":503},"\u002Fpages\u002Fintegrations-ideas-v2",{"route":505,"href":505},"\u002Fpages\u002Fintegrations-ideas-v3",{"route":507,"href":507},"\u002Fpages\u002Fintegrations-ideas-v4",{"route":509,"href":509},"\u002Fpages\u002Fintegrations-ideas-v5",{"route":511,"href":511},"\u002Fpages\u002Fintegrations-ideas-v6",{"route":513,"href":513},"\u002Fpages\u002Fintegrations-ideas-v8",{"route":515,"href":515},"\u002Fpages\u002Fintegrations-ideas-v9",{"route":300,"href":300},{"route":317,"href":317},{"route":209,"href":209},1789151082028]