[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"cycle-doc-design-c121-plan\u002F05-teams.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":17},{"id":5,"title":6},"c121","Governance v1 Scope",{"id":8,"label":9},"design","Design","plan\u002F05-teams.md","05 · Teams listing + team detail (Wave 2)",[13,14,15,16],"Today","Steps","Done when","Look for (review)",{"type":18,"children":19},"root",[20,57,106,112,133,138,313,318,359,364],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,32,34,39,41,46,48,55],{"type":21,"tag":26,"props":27,"children":28},"strong",{},[29],{"type":30,"value":31},"text","TL;DR:",{"type":30,"value":33}," make team posture scannable: a proportional ",{"type":21,"tag":26,"props":35,"children":36},{},[37],{"type":30,"value":38},"Enforced \u002F Observed \u002F Off",{"type":30,"value":40}," bar against the org's policy set, plus \"how unique is this team\" (how many policies enforced, how many have team exceptions) and open findings. Draw ",{"type":21,"tag":26,"props":42,"children":43},{},[44],{"type":30,"value":45},"two or three options",{"type":30,"value":47}," switchable by ",{"type":21,"tag":49,"props":50,"children":52},"code",{"className":51},[],[53],{"type":30,"value":54},"?v.posture=",{"type":30,"value":56},", assembled from our own components first, earlier phase experiments second, new only as a last resort (L). Team detail's Policies section gets the same bar and a pending-vs-live note.",{"type":21,"tag":22,"props":58,"children":59},{},[60,65,67,73,75,81,82,88,90,96,98,104],{"type":21,"tag":26,"props":61,"children":62},{},[63],{"type":30,"value":64},"Owns:",{"type":30,"value":66}," ",{"type":21,"tag":49,"props":68,"children":70},{"className":69},[],[71],{"type":30,"value":72},"app\u002Fpages\u002Fpages\u002Fphase4\u002Fmock\u002Forganization\u002Fteams\u002F{index,detail}.vue",{"type":30,"value":74},", ",{"type":21,"tag":49,"props":76,"children":78},{"className":77},[],[79],{"type":30,"value":80},"app\u002Fcomponents\u002Fgovernance\u002Fpart\u002FTeamPolicies.vue",{"type":30,"value":74},{"type":21,"tag":49,"props":83,"children":85},{"className":84},[],[86],{"type":30,"value":87},"app\u002Fcomposables\u002FuseTeamMock.ts",{"type":30,"value":89},", new ",{"type":21,"tag":49,"props":91,"children":93},{"className":92},[],[94],{"type":30,"value":95},"app\u002Fcomponents\u002Fgovernance\u002Fmock\u002FPostureBar*.vue",{"type":30,"value":97},". Don't touch ",{"type":21,"tag":49,"props":99,"children":101},{"className":100},[],[102],{"type":30,"value":103},"live\u002FTeamDevicesLedger.vue",{"type":30,"value":105}," (06 owns it).",{"type":21,"tag":107,"props":108,"children":110},"h2",{"id":109},"today",[111],{"type":30,"value":13},{"type":21,"tag":113,"props":114,"children":115},"ul",{},[116,122],{"type":21,"tag":117,"props":118,"children":119},"li",{},[120],{"type":30,"value":121},"Listing columns: Team · People · Policies (\"N on · M enforcing\") · Team exceptions (count) · Open findings (count) (index.vue l.37–52).",{"type":21,"tag":117,"props":123,"children":124},{},[125,131],{"type":21,"tag":49,"props":126,"children":128},{"className":127},[],[129],{"type":30,"value":130},"TeamPolicies.vue",{"type":30,"value":132},": summary text (l.104–108); table Policy · mode for team · Set by · Members who differ · Open; off policies folded; D9 \"the stricter\" (l.91–95).",{"type":21,"tag":107,"props":134,"children":136},{"id":135},"steps",[137],{"type":30,"value":14},{"type":21,"tag":139,"props":140,"children":141},"ol",{},[142,215,264,282,300],{"type":21,"tag":117,"props":143,"children":144},{},[145,150,152,158,160,166,168,174,176,182,184,190,191,197,199,205,207,213],{"type":21,"tag":26,"props":146,"children":147},{},[148],{"type":30,"value":149},"Catalog pass (write it down first).",{"type":30,"value":151}," List candidates with file paths into ",{"type":21,"tag":49,"props":153,"children":155},{"className":154},[],[156],{"type":30,"value":157},"05-catalog.md",{"type":30,"value":159}," in this plan dir: layer (",{"type":21,"tag":49,"props":161,"children":163},{"className":162},[],[164],{"type":30,"value":165},"DataHistoryGraph",{"type":30,"value":167}," stacked, ",{"type":21,"tag":49,"props":169,"children":171},{"className":170},[],[172],{"type":30,"value":173},"DataMetric",{"type":30,"value":175},", micro cards from c109, ",{"type":21,"tag":49,"props":177,"children":179},{"className":178},[],[180],{"type":30,"value":181},"UxTableList",{"type":30,"value":183},"), qdash live inventory sections (",{"type":21,"tag":49,"props":185,"children":187},{"className":186},[],[188],{"type":30,"value":189},"..\u002Fqcontrol\u002Fcrates\u002Fqdash\u002Fui\u002Fapp\u002Fpages\u002Finventory\u002F*",{"type":30,"value":74},{"type":21,"tag":49,"props":192,"children":194},{"className":193},[],[195],{"type":30,"value":196},"components\u002Fteam\u002F*",{"type":30,"value":198}," — usage bars, tiles, attention lists), earlier experiments (c100 team cards \u002F tilemap mocks in ",{"type":21,"tag":49,"props":200,"children":202},{"className":201},[],[203],{"type":30,"value":204},"app\u002Fpages\u002Fpages\u002F",{"type":30,"value":206}," and ",{"type":21,"tag":49,"props":208,"children":210},{"className":209},[],[211],{"type":30,"value":212},"public\u002Fcycles\u002Fdesign\u002Fc100-mock-team*.png",{"type":30,"value":214},", c103 activity rows). Note which pieces could be repurposed.",{"type":21,"tag":117,"props":216,"children":217},{},[218,223,225,231,233,239,241],{"type":21,"tag":26,"props":219,"children":220},{},[221],{"type":30,"value":222},"Options",{"type":30,"value":224}," (",{"type":21,"tag":49,"props":226,"children":228},{"className":227},[],[229],{"type":30,"value":230},"?v.posture=bar|cards|tiles",{"type":30,"value":232},", default ",{"type":21,"tag":49,"props":234,"children":236},{"className":235},[],[237],{"type":30,"value":238},"bar",{"type":30,"value":240},"):\n",{"type":21,"tag":113,"props":242,"children":243},{},[244,254,259],{"type":21,"tag":117,"props":245,"children":246},{},[247,252],{"type":21,"tag":49,"props":248,"children":250},{"className":249},[],[251],{"type":30,"value":238},{"type":30,"value":253},": a Posture column with a stacked bar (Enforced ink · Observed grey · Off light) of the org's N policies, with a tick for the org default mix so a team's deviation reads at a glance; next to it \"3 exceptions\" and open findings by severity dots.",{"type":21,"tag":117,"props":255,"children":256},{},[257],{"type":30,"value":258},"second: something drawn from the c100 team cards \u002F tilemap (uniqueness as a visual measure: policies enforced vs org, exceptions count).",{"type":21,"tag":117,"props":260,"children":261},{},[262],{"type":30,"value":263},"third: from the qdash inventory sections (e.g. tile row per team) — only if the catalog shows a fit.",{"type":21,"tag":117,"props":265,"children":266},{},[267,272,274,280],{"type":21,"tag":26,"props":268,"children":269},{},[270],{"type":30,"value":271},"Derive, don't store",{"type":30,"value":273}," (I): posture from ",{"type":21,"tag":49,"props":275,"children":277},{"className":276},[],[278],{"type":30,"value":279},"applicability()",{"type":30,"value":281}," over the team's members; mixed member modes count by the team's effective mode with a \"2 members differ\" marker (I open question: say so in the report).",{"type":21,"tag":117,"props":283,"children":284},{},[285,290,292,298],{"type":21,"tag":26,"props":286,"children":287},{},[288],{"type":30,"value":289},"Team detail.",{"type":30,"value":291}," Policies section: same bar on top; table keeps Set by \u002F Members who differ \u002F Open; add a line when the draft changes this team: \"Pending: 2 changes affect this team (not live)\" linking to Changes (I: pending vs live). Rows link to S3 ",{"type":21,"tag":49,"props":293,"children":295},{"className":294},[],[296],{"type":30,"value":297},"#exceptions",{"type":30,"value":299}," (no editing on the team page).",{"type":21,"tag":117,"props":301,"children":302},{},[303,305,311],{"type":30,"value":304},"Open findings links use ",{"type":21,"tag":49,"props":306,"children":308},{"className":307},[],[309],{"type":30,"value":310},"outcome=all",{"type":30,"value":312}," (04's URL).",{"type":21,"tag":107,"props":314,"children":316},{"id":315},"done-when",[317],{"type":30,"value":15},{"type":21,"tag":22,"props":319,"children":320},{},[321,327,329,334,336,342,344,349,351,357],{"type":21,"tag":49,"props":322,"children":324},{"className":323},[],[325],{"type":30,"value":326},"\u002Fpages\u002Fphase4\u002Fmock\u002Forganization\u002Fteams",{"type":30,"value":328}," in all ",{"type":21,"tag":49,"props":330,"children":332},{"className":331},[],[333],{"type":30,"value":54},{"type":30,"value":335}," options and ",{"type":21,"tag":49,"props":337,"children":339},{"className":338},[],[340],{"type":30,"value":341},"…\u002Fteams\u002Fdetail?team=eng",{"type":30,"value":343},"; ",{"type":21,"tag":49,"props":345,"children":347},{"className":346},[],[348],{"type":30,"value":157},{"type":30,"value":350}," written. Screenshots ",{"type":21,"tag":49,"props":352,"children":354},{"className":353},[],[355],{"type":30,"value":356},"shots\u002F05-*.png",{"type":30,"value":358},".",{"type":21,"tag":107,"props":360,"children":362},{"id":361},"look-for-review",[363],{"type":30,"value":16},{"type":21,"tag":22,"props":365,"children":366},{},[367],{"type":30,"value":368},"Which team is the snowflake, without reading numbers? Pick an option at review; the others stay as knobs until the ruling.",1794599472511]