[{"data":1,"prerenderedAt":501},["ShallowReactive",2],{"cycle-doc-qnative-c2-harness-run.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":17},{"id":5,"title":6},"c2","Expressive Range",{"id":8,"label":9},"qnative","Qnative (provisional)","harness-run.md","The real-harness run: Claude Code drives the native app",[13,14,15,16],"How it ran","What it did","What it said","The window afterwards",{"type":18,"children":19},"root",[20,41,47,171,176,181,261,266,435,440,450,496],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":21,"tag":26,"props":27,"children":28},"em",{},[29,32,39],{"type":30,"value":31},"text","2026-11-11, evening. The check owed since ",{"type":21,"tag":33,"props":34,"children":36},"code",{"className":35},[],[37],{"type":30,"value":38},"review-tour.md",{"type":30,"value":40},". Mark refreshed the CLI login; this ran as soon as it was done.",{"type":21,"tag":42,"props":43,"children":45},"h2",{"id":44},"how-it-ran",[46],{"type":30,"value":13},{"type":21,"tag":48,"props":49,"children":50},"ul",{},[51,98,161],{"type":21,"tag":52,"props":53,"children":54},"li",{},[55,61,63,69,71,77,79],{"type":21,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":30,"value":60},"The app:",{"type":30,"value":62}," ",{"type":21,"tag":33,"props":64,"children":66},{"className":65},[],[67],{"type":30,"value":68},"QPOINT_DATA=synthetic",{"type":30,"value":70},", qnative ",{"type":21,"tag":33,"props":72,"children":74},{"className":73},[],[75],{"type":30,"value":76},"b4cbc23",{"type":30,"value":78},", the default world (nina-mbp's quiet laptop). It logged its endpoint and this launch's token:\n",{"type":21,"tag":80,"props":81,"children":82},"blockquote",{},[83],{"type":21,"tag":22,"props":84,"children":85},{},[86,88,96],{"type":30,"value":87},"guide: MCP on ",{"type":21,"tag":89,"props":90,"children":94},"a",{"href":91,"rel":92},"http:\u002F\u002F127.0.0.1:7891\u002Fmcp",[93],"nofollow",[95],{"type":30,"value":91},{"type":30,"value":97}," (token …)",{"type":21,"tag":52,"props":99,"children":100},{},[101,106,108],{"type":21,"tag":56,"props":102,"children":103},{},[104],{"type":30,"value":105},"The harness:",{"type":30,"value":107}," Claude Code 2.1.322, headless.\n",{"type":21,"tag":48,"props":109,"children":110},{},[111,122,135],{"type":21,"tag":52,"props":112,"children":113},{},[114,120],{"type":21,"tag":33,"props":115,"children":117},{"className":116},[],[118],{"type":30,"value":119},"claude -p \"\u003Cthe prompt>\" --mcp-config native-guide.mcp.json --strict-mcp-config --allowedTools mcp__qpoint-guide-native --model sonnet",{"type":30,"value":121},".",{"type":21,"tag":52,"props":123,"children":124},{},[125,127,133],{"type":30,"value":126},"The config names one HTTP server with the ",{"type":21,"tag":33,"props":128,"children":130},{"className":129},[],[131],{"type":30,"value":132},"Authorization: Bearer \u003Ctoken>",{"type":30,"value":134}," header.",{"type":21,"tag":52,"props":136,"children":137},{},[138,144,146,152,154,160],{"type":21,"tag":33,"props":139,"children":141},{"className":140},[],[142],{"type":30,"value":143},"--mcp-config",{"type":30,"value":145}," was used rather than ",{"type":21,"tag":33,"props":147,"children":149},{"className":148},[],[150],{"type":30,"value":151},"claude mcp add",{"type":30,"value":153},", so nothing was left in the user's Claude config. To keep the server, paste the line Help › Getting started shows: ",{"type":21,"tag":33,"props":155,"children":157},{"className":156},[],[158],{"type":30,"value":159},"claude mcp add --transport http qpoint-guide-native http:\u002F\u002F127.0.0.1:7891\u002Fmcp --header \"Authorization: Bearer \u003Ctoken>\"",{"type":30,"value":121},{"type":21,"tag":52,"props":162,"children":163},{},[164,169],{"type":21,"tag":56,"props":165,"children":166},{},[167],{"type":30,"value":168},"The prompt, as a person would ask it:",{"type":30,"value":170}," \"I just opened Qpoint on this laptop. Give me the quick tour of what's on this machine, then show me which model costs the most and where I'd see that.\"",{"type":21,"tag":42,"props":172,"children":174},{"id":173},"what-it-did",[175],{"type":30,"value":14},{"type":21,"tag":22,"props":177,"children":178},{},[179],{"type":30,"value":180},"The server connected on the first try, with the token. Ten turns, 18 seconds, $0.13 (Sonnet 5.5), no tool errors:",{"type":21,"tag":182,"props":183,"children":184},"ol",{},[185,202,213,232,243],{"type":21,"tag":52,"props":186,"children":187},{},[188,194,196],{"type":21,"tag":33,"props":189,"children":191},{"className":190},[],[192],{"type":30,"value":193},"tour-state",{"type":30,"value":195},", ",{"type":21,"tag":33,"props":197,"children":199},{"className":198},[],[200],{"type":30,"value":201},"list-tours",{"type":21,"tag":52,"props":203,"children":204},{},[205,211],{"type":21,"tag":33,"props":206,"children":208},{"className":207},[],[209],{"type":30,"value":210},"find-in-app",{"type":30,"value":212}," \"which models cost the most\"",{"type":21,"tag":52,"props":214,"children":215},{},[216,222,224,230],{"type":21,"tag":33,"props":217,"children":219},{"className":218},[],[220],{"type":30,"value":221},"start-tour",{"type":30,"value":223}," this-machine, then ",{"type":21,"tag":33,"props":225,"children":227},{"className":226},[],[228],{"type":30,"value":229},"read-step",{"type":30,"value":231}," open (the live counts)",{"type":21,"tag":52,"props":233,"children":234},{},[235,241],{"type":21,"tag":33,"props":236,"children":238},{"className":237},[],[239],{"type":30,"value":240},"open-page",{"type":30,"value":242}," models (the sidebar's Models ringed first, then the page)",{"type":21,"tag":52,"props":244,"children":245},{},[246,252,254,259],{"type":21,"tag":33,"props":247,"children":249},{"className":248},[],[250],{"type":30,"value":251},"point",{"type":30,"value":253}," models.list with a title, read the region's text, then ",{"type":21,"tag":33,"props":255,"children":257},{"className":256},[],[258],{"type":30,"value":251},{"type":30,"value":260}," again with a title and one sentence",{"type":21,"tag":42,"props":262,"children":264},{"id":263},"what-it-said",[265],{"type":30,"value":15},{"type":21,"tag":48,"props":267,"children":268},{},[269,302,417,422,427],{"type":21,"tag":52,"props":270,"children":271},{},[272,277,279],{"type":21,"tag":56,"props":273,"children":274},{},[275],{"type":30,"value":276},"The tour:",{"type":30,"value":278}," the opening's numbers for the last 30 days.",{"type":21,"tag":48,"props":280,"children":281},{},[282,287,292,297],{"type":21,"tag":52,"props":283,"children":284},{},[285],{"type":30,"value":286},"2 providers, 3 harnesses, 4 models.",{"type":21,"tag":52,"props":288,"children":289},{},[290],{"type":30,"value":291},"5 MCP servers, 22 tools, 3 skills.",{"type":21,"tag":52,"props":293,"children":294},{},[295],{"type":30,"value":296},"1 workspace.",{"type":21,"tag":52,"props":298,"children":299},{},[300],{"type":30,"value":301},"It said the tour had started and named its stops.",{"type":21,"tag":52,"props":303,"children":304},{},[305,310,312],{"type":21,"tag":56,"props":306,"children":307},{},[308],{"type":30,"value":309},"The most expensive model:",{"type":30,"value":311}," \"You'll see this under Inventory › Models\" (opened and ringed). Then a table read from the rows' own text:",{"type":21,"tag":313,"props":314,"children":315},"table",{},[316,340],{"type":21,"tag":317,"props":318,"children":319},"thead",{},[320],{"type":21,"tag":321,"props":322,"children":323},"tr",{},[324,330,335],{"type":21,"tag":325,"props":326,"children":327},"th",{},[328],{"type":30,"value":329},"Model",{"type":21,"tag":325,"props":331,"children":332},{},[333],{"type":30,"value":334},"Tokens",{"type":21,"tag":325,"props":336,"children":337},{},[338],{"type":30,"value":339},"Spend",{"type":21,"tag":341,"props":342,"children":343},"tbody",{},[344,363,381,399],{"type":21,"tag":321,"props":345,"children":346},{},[347,353,358],{"type":21,"tag":348,"props":349,"children":350},"td",{},[351],{"type":30,"value":352},"claude-sonnet-4-6",{"type":21,"tag":348,"props":354,"children":355},{},[356],{"type":30,"value":357},"5.12M",{"type":21,"tag":348,"props":359,"children":360},{},[361],{"type":30,"value":362},"$101.98",{"type":21,"tag":321,"props":364,"children":365},{},[366,371,376],{"type":21,"tag":348,"props":367,"children":368},{},[369],{"type":30,"value":370},"claude-opus-4-8",{"type":21,"tag":348,"props":372,"children":373},{},[374],{"type":30,"value":375},"504k",{"type":21,"tag":348,"props":377,"children":378},{},[379],{"type":30,"value":380},"$48.90",{"type":21,"tag":321,"props":382,"children":383},{},[384,389,394],{"type":21,"tag":348,"props":385,"children":386},{},[387],{"type":30,"value":388},"claude-haiku-4-5",{"type":21,"tag":348,"props":390,"children":391},{},[392],{"type":30,"value":393},"1.90M",{"type":21,"tag":348,"props":395,"children":396},{},[397],{"type":30,"value":398},"$11.42",{"type":21,"tag":321,"props":400,"children":401},{},[402,407,412],{"type":21,"tag":348,"props":403,"children":404},{},[405],{"type":30,"value":406},"gpt-5.5",{"type":21,"tag":348,"props":408,"children":409},{},[410],{"type":30,"value":411},"661k",{"type":21,"tag":348,"props":413,"children":414},{},[415],{"type":30,"value":416},"$3.22",{"type":21,"tag":52,"props":418,"children":419},{},[420],{"type":30,"value":421},"It added that Sonnet has the most spend and Opus costs the most per token (~$97 per million tokens).",{"type":21,"tag":52,"props":423,"children":424},{},[425],{"type":30,"value":426},"It pointed at the band's top three by cost and said a row opens the model.",{"type":21,"tag":52,"props":428,"children":429},{},[430],{"type":21,"tag":56,"props":431,"children":432},{},[433],{"type":30,"value":434},"Nothing was pressed.",{"type":21,"tag":42,"props":436,"children":438},{"id":437},"the-window-afterwards",[439],{"type":30,"value":16},{"type":21,"tag":22,"props":441,"children":442},{},[443,448],{"type":21,"tag":33,"props":444,"children":446},{"className":445},[],[447],{"type":30,"value":193},{"type":30,"value":449},", read over the same endpoint:",{"type":21,"tag":48,"props":451,"children":452},{},[453,466,479,491],{"type":21,"tag":52,"props":454,"children":455},{},[456,458,464],{"type":30,"value":457},"the page is ",{"type":21,"tag":33,"props":459,"children":461},{"className":460},[],[462],{"type":30,"value":463},"\u002Finventory\u002Fmodels",{"type":30,"value":465},";",{"type":21,"tag":52,"props":467,"children":468},{},[469,471,477],{"type":30,"value":470},"the pointer is on ",{"type":21,"tag":33,"props":472,"children":474},{"className":473},[],[475],{"type":30,"value":476},"models.list",{"type":30,"value":478},": \"Spend per model · Each row shows tokens and spend; claude-sonnet-4-6 is the biggest total, claude-opus-4-8 the priciest per token.\";",{"type":21,"tag":52,"props":480,"children":481},{},[482,484,490],{"type":30,"value":483},"the last move is ",{"type":21,"tag":33,"props":485,"children":487},{"className":486},[],[488],{"type":30,"value":489},"{ by: agent, driver: claude-code, walk: true }",{"type":30,"value":465},{"type":21,"tag":52,"props":492,"children":493},{},[494],{"type":30,"value":495},"the tour is still at its opening step, and the panel says the step is on another page.",{"type":21,"tag":22,"props":497,"children":498},{},[499],{"type":30,"value":500},"The W7 criterion the lab set for its own guide (\"Claude Code walks the tour from one prompt\") holds for the native app.",1794599378930]