[{"data":1,"prerenderedAt":2058},["ShallowReactive",2],{"post-akidevrule-2-8-0-migration-check-va-record-surfaces":3,"content-query-bmARI8jZOj":1160},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"categoryKey":11,"readTime":12,"body":13,"_type":1154,"_id":1155,"_source":1156,"_file":1157,"_stem":1158,"_extension":1159},"\u002Fposts\u002Fakidevrule-2-8-0-migration-check-va-record-surfaces","posts",false,"","AkiDevRule 2.8.0: Migration Tự Chạy, Kiểm Tra Version và Record Surfaces","2.8.0 chốt quyền tự chạy migration D1 có backup, thêm install.py --check, chuẩn hóa release records, research amendments và model tiers đa host.","2026-09-07","aiInfra","9 min",{"type":14,"children":15,"toc":1139},"root",[16,25,48,109,116,200,303,309,322,333,390,403,416,421,451,456,484,496,603,631,637,644,663,669,712,718,744,780,785,791,802,840,852,858,908,927,933,1021,1027,1032,1066,1071,1106,1133],{"type":17,"tag":18,"props":19,"children":21},"element","h1",{"id":20},"akidevrule-280-từ-rule-đúng-đến-việc-được-làm-xong",[22],{"type":23,"value":24},"text","AkiDevRule 2.8.0: Từ Rule Đúng Đến Việc Được Làm Xong",{"type":17,"tag":26,"props":27,"children":28},"p",{},[29,31,37,39,46],{"type":23,"value":30},"AkiDevRule ",{"type":17,"tag":32,"props":33,"children":34},"strong",{},[35],{"type":23,"value":36},"2.8.0",{"type":23,"value":38}," không tăng số skill hay dựng thêm một tầng điều phối. Bản này sửa những điểm mà một bộ quy tắc có thể mô tả đúng nhưng agent vẫn dừng sai chỗ: đẩy migration an toàn lại cho người dùng, nhìn nhầm ",{"type":17,"tag":40,"props":41,"children":43},"code",{"className":42},[],[44],{"type":23,"value":45},"[Unreleased]",{"type":23,"value":47}," thành version mới nhất, hoặc phát hành xong mà README và các record liên quan vẫn mang trạng thái cũ.",{"type":17,"tag":49,"props":50,"children":51},"blockquote",{},[52],{"type":17,"tag":26,"props":53,"children":54},{},[55,61,63,72,74,81,82,89,91,98,100,107],{"type":17,"tag":56,"props":57,"children":58},"span",{},[59],{"type":23,"value":60},"!NOTE",{"type":23,"value":62},"\nNguồn kiểm chứng: ",{"type":17,"tag":64,"props":65,"children":69},"a",{"href":66,"rel":67},"https:\u002F\u002Fgithub.com\u002Flacvietanh\u002Fakidevrule\u002Freleases\u002Ftag\u002F2.8.0",[68],"nofollow",[70],{"type":23,"value":71},"GitHub Release 2.8.0",{"type":23,"value":73},", ",{"type":17,"tag":64,"props":75,"children":78},{"href":76,"rel":77},"https:\u002F\u002Fgithub.com\u002Flacvietanh\u002Fakidevrule\u002Fcompare\u002F2.7.0...2.8.0",[68],[79],{"type":23,"value":80},"toàn bộ diff 2.7.0...2.8.0",{"type":23,"value":73},{"type":17,"tag":64,"props":83,"children":86},{"href":84,"rel":85},"https:\u002F\u002Fgithub.com\u002Flacvietanh\u002Fakidevrule\u002Fblob\u002Fmaster\u002FCHANGELOG.md",[68],[87],{"type":23,"value":88},"CHANGELOG",{"type":23,"value":90}," và ",{"type":17,"tag":64,"props":92,"children":95},{"href":93,"rel":94},"https:\u002F\u002Fgithub.com\u002Flacvietanh\u002Fakidevrule",[68],[96],{"type":23,"value":97},"repo nguồn",{"type":23,"value":99},". Trang tổng quan dự án nằm tại ",{"type":17,"tag":64,"props":101,"children":104},{"href":102,"rel":103},"https:\u002F\u002Fakitao.com\u002Fpj\u002Fakidevrule\u002F",[68],[105],{"type":23,"value":106},"akitao.com\u002Fpj\u002Fakidevrule",{"type":23,"value":108},".",{"type":17,"tag":110,"props":111,"children":113},"h2",{"id":112},"bản-đồ-thay-đổi",[114],{"type":23,"value":115},"Bản đồ thay đổi",{"type":17,"tag":117,"props":118,"children":122},"pre",{"className":119,"code":120,"language":121,"meta":7,"style":7},"language-mermaid shiki shiki-themes night-owl","flowchart LR\n    A[\"Migration D1 cộng thêm\"] --> B[\"backup\"]\n    B --> C[\"local\"]\n    C --> D[\"remote\"]\n    D --> E[\"verify\"]\n    E --> F[\"move done\"]\n    G[\"install.py --check\"] --> H[\"missing \u002F current \u002F update \u002F ahead \u002F unknown\"]\n    I[\"Release B7\"] --> J[\"README + task notes + docs + standards + changelog\"]\n","mermaid",[123],{"type":17,"tag":40,"props":124,"children":125},{"__ignoreMap":7},[126,137,146,155,164,173,182,191],{"type":17,"tag":56,"props":127,"children":130},{"class":128,"line":129},"line",1,[131],{"type":17,"tag":56,"props":132,"children":134},{"style":133},"--shiki-default:#D6DEEB",[135],{"type":23,"value":136},"flowchart LR\n",{"type":17,"tag":56,"props":138,"children":140},{"class":128,"line":139},2,[141],{"type":17,"tag":56,"props":142,"children":143},{"style":133},[144],{"type":23,"value":145},"    A[\"Migration D1 cộng thêm\"] --> B[\"backup\"]\n",{"type":17,"tag":56,"props":147,"children":149},{"class":128,"line":148},3,[150],{"type":17,"tag":56,"props":151,"children":152},{"style":133},[153],{"type":23,"value":154},"    B --> C[\"local\"]\n",{"type":17,"tag":56,"props":156,"children":158},{"class":128,"line":157},4,[159],{"type":17,"tag":56,"props":160,"children":161},{"style":133},[162],{"type":23,"value":163},"    C --> D[\"remote\"]\n",{"type":17,"tag":56,"props":165,"children":167},{"class":128,"line":166},5,[168],{"type":17,"tag":56,"props":169,"children":170},{"style":133},[171],{"type":23,"value":172},"    D --> E[\"verify\"]\n",{"type":17,"tag":56,"props":174,"children":176},{"class":128,"line":175},6,[177],{"type":17,"tag":56,"props":178,"children":179},{"style":133},[180],{"type":23,"value":181},"    E --> F[\"move done\"]\n",{"type":17,"tag":56,"props":183,"children":185},{"class":128,"line":184},7,[186],{"type":17,"tag":56,"props":187,"children":188},{"style":133},[189],{"type":23,"value":190},"    G[\"install.py --check\"] --> H[\"missing \u002F current \u002F update \u002F ahead \u002F unknown\"]\n",{"type":17,"tag":56,"props":192,"children":194},{"class":128,"line":193},8,[195],{"type":17,"tag":56,"props":196,"children":197},{"style":133},[198],{"type":23,"value":199},"    I[\"Release B7\"] --> J[\"README + task notes + docs + standards + changelog\"]\n",{"type":17,"tag":201,"props":202,"children":203},"table",{},[204,228],{"type":17,"tag":205,"props":206,"children":207},"thead",{},[208],{"type":17,"tag":209,"props":210,"children":211},"tr",{},[212,218,223],{"type":17,"tag":213,"props":214,"children":215},"th",{},[216],{"type":23,"value":217},"Nhóm",{"type":17,"tag":213,"props":219,"children":220},{},[221],{"type":23,"value":222},"Thay đổi chính",{"type":17,"tag":213,"props":224,"children":225},{},[226],{"type":23,"value":227},"Tác động trực tiếp",{"type":17,"tag":229,"props":230,"children":231},"tbody",{},[232,259,277],{"type":17,"tag":209,"props":233,"children":234},{},[235,241,254],{"type":17,"tag":236,"props":237,"children":238},"td",{},[239],{"type":23,"value":240},"Added",{"type":17,"tag":236,"props":242,"children":243},{},[244,246,252],{"type":23,"value":245},"Quyền thực thi migration D1, ",{"type":17,"tag":40,"props":247,"children":249},{"className":248},[],[250],{"type":23,"value":251},"install.py --check",{"type":23,"value":253},", ref macOS codesign\u002FTCC và AGENTS.md",{"type":17,"tag":236,"props":255,"children":256},{},[257],{"type":23,"value":258},"Ít bàn giao việc có thể tự xác minh; biết chính xác trạng thái cài đặt; tra cứu đúng theo host và hệ điều hành",{"type":17,"tag":209,"props":260,"children":261},{},[262,267,272],{"type":17,"tag":236,"props":263,"children":264},{},[265],{"type":23,"value":266},"Changed",{"type":17,"tag":236,"props":268,"children":269},{},[270],{"type":23,"value":271},"Release record surfaces, research Amendments, tier ghế akiflow",{"type":17,"tag":236,"props":273,"children":274},{},[275],{"type":23,"value":276},"Release bớt lệch hồ sơ; giữ lịch sử nghiên cứu mà vẫn sửa được sai sót; model tier không bị khóa vào alias Claude",{"type":17,"tag":209,"props":278,"children":279},{},[280,285,298],{"type":17,"tag":236,"props":281,"children":282},{},[283],{"type":23,"value":284},"Fixed",{"type":17,"tag":236,"props":286,"children":287},{},[288,290,296],{"type":23,"value":289},"Parser version, lệnh Windows, ",{"type":17,"tag":40,"props":291,"children":293},{"className":292},[],[294],{"type":23,"value":295},"internal",{"type":23,"value":297}," release type, Nitro API và stale headings\u002Fcounts",{"type":17,"tag":236,"props":299,"children":300},{},[301],{"type":23,"value":302},"Update check hoạt động thật; câu lệnh đa nền tảng đúng; metadata và tài liệu không còn tự mâu thuẫn",{"type":17,"tag":110,"props":304,"children":306},{"id":305},"added-agent-sở-hữu-trọn-migration-d1-có-đường-lui",[307],{"type":23,"value":308},"Added: Agent sở hữu trọn migration D1 có đường lui",{"type":17,"tag":26,"props":310,"children":311},{},[312,314,320],{"type":23,"value":313},"Trước 2.8.0, một migration chỉ thêm bảng\u002Fcột, chạy lặp an toàn và có ",{"type":17,"tag":40,"props":315,"children":317},{"className":316},[],[318],{"type":23,"value":319},"db.pull",{"type":23,"value":321}," để sao lưu vẫn có thể bị xếp vào nhóm “thay đổi database nên phải hỏi trước”. Kết quả là agent kiểm tra được mọi điều kiện nhưng chuyển phần bấm nút cuối về cho người dùng.",{"type":17,"tag":26,"props":323,"children":324},{},[325,331],{"type":17,"tag":40,"props":326,"children":328},{"className":327},[],[329],{"type":23,"value":330},"stack.C8",{"type":23,"value":332}," nay tách hai cánh cửa bằng khả năng đảo ngược thực tế:",{"type":17,"tag":334,"props":335,"children":336},"ul",{},[337,364],{"type":17,"tag":338,"props":339,"children":340},"li",{},[341,346,348,354,356,362],{"type":17,"tag":32,"props":342,"children":343},{},[344],{"type":23,"value":345},"Có đường lui",{"type":23,"value":347},": migration cộng thêm hoặc idempotent, có backup, ",{"type":17,"tag":40,"props":349,"children":351},{"className":350},[],[352],{"type":23,"value":353},"wrangler",{"type":23,"value":355}," đã cài và xác thực. Agent tự chạy ",{"type":17,"tag":40,"props":357,"children":359},{"className":358},[],[360],{"type":23,"value":361},"backup → --local → --remote → verify → move scripts\u002Fdone\u002F",{"type":23,"value":363}," trong cùng tác vụ.",{"type":17,"tag":338,"props":365,"children":366},{},[367,372,374,380,382,388],{"type":17,"tag":32,"props":368,"children":369},{},[370],{"type":23,"value":371},"Không có đường lui",{"type":23,"value":373},": ",{"type":17,"tag":40,"props":375,"children":377},{"className":376},[],[378],{"type":23,"value":379},"ALTER",{"type":23,"value":381},"\u002F",{"type":17,"tag":40,"props":383,"children":385},{"className":384},[],[386],{"type":23,"value":387},"DROP",{"type":23,"value":389},", sửa dữ liệu hàng loạt hoặc không có backup. Cổng ask-first vẫn giữ nguyên.",{"type":17,"tag":49,"props":391,"children":392},{},[393],{"type":17,"tag":26,"props":394,"children":395},{},[396,401],{"type":17,"tag":56,"props":397,"children":398},{},[399],{"type":23,"value":400},"!TIP",{"type":23,"value":402},"\nNgười dùng không phải đánh đổi an toàn để lấy tự động hóa. Điểm mới là backup và hậu kiểm trở thành một phần bắt buộc của quyền thực thi, thay vì lý do để trì hoãn thực thi.",{"type":17,"tag":110,"props":404,"children":406},{"id":405},"added-installpy-check-và-năm-trạng-thái-version",[407,409,414],{"type":23,"value":408},"Added: ",{"type":17,"tag":40,"props":410,"children":412},{"className":411},[],[413],{"type":23,"value":251},{"type":23,"value":415}," và năm trạng thái version",{"type":17,"tag":26,"props":417,"children":418},{},[419],{"type":23,"value":420},"Lệnh kiểm tra mới chỉ đọc trạng thái, không cài hay ghi đè:",{"type":17,"tag":117,"props":422,"children":426},{"className":423,"code":424,"language":425,"meta":7,"style":7},"language-bash shiki shiki-themes night-owl","python3 install.py --check\n","bash",[427],{"type":17,"tag":40,"props":428,"children":429},{"__ignoreMap":7},[430],{"type":17,"tag":56,"props":431,"children":432},{"class":128,"line":129},[433,439,445],{"type":17,"tag":56,"props":434,"children":436},{"style":435},"--shiki-default:#82AAFF;--shiki-default-font-style:italic",[437],{"type":23,"value":438},"python3",{"type":17,"tag":56,"props":440,"children":442},{"style":441},"--shiki-default:#ECC48D",[443],{"type":23,"value":444}," install.py",{"type":17,"tag":56,"props":446,"children":448},{"style":447},"--shiki-default:#82AAFF",[449],{"type":23,"value":450}," --check\n",{"type":17,"tag":26,"props":452,"children":453},{},[454],{"type":23,"value":455},"Trên Windows:",{"type":17,"tag":117,"props":457,"children":459},{"className":423,"code":458,"language":425,"meta":7,"style":7},"py -3 install.py --check\n",[460],{"type":17,"tag":40,"props":461,"children":462},{"__ignoreMap":7},[463],{"type":17,"tag":56,"props":464,"children":465},{"class":128,"line":129},[466,471,476,480],{"type":17,"tag":56,"props":467,"children":468},{"style":435},[469],{"type":23,"value":470},"py",{"type":17,"tag":56,"props":472,"children":473},{"style":447},[474],{"type":23,"value":475}," -3",{"type":17,"tag":56,"props":477,"children":478},{"style":441},[479],{"type":23,"value":444},{"type":17,"tag":56,"props":481,"children":482},{"style":447},[483],{"type":23,"value":450},{"type":17,"tag":26,"props":485,"children":486},{},[487,489,494],{"type":23,"value":488},"Parser dùng chung bỏ qua heading ",{"type":17,"tag":40,"props":490,"children":492},{"className":491},[],[493],{"type":23,"value":45},{"type":23,"value":495},", lấy release semver đầu tiên và phân loại thành năm trạng thái:",{"type":17,"tag":201,"props":497,"children":498},{},[499,515],{"type":17,"tag":205,"props":500,"children":501},{},[502],{"type":17,"tag":209,"props":503,"children":504},{},[505,510],{"type":17,"tag":213,"props":506,"children":507},{},[508],{"type":23,"value":509},"Trạng thái",{"type":17,"tag":213,"props":511,"children":512},{},[513],{"type":23,"value":514},"Nghĩa",{"type":17,"tag":229,"props":516,"children":517},{},[518,535,552,569,586],{"type":17,"tag":209,"props":519,"children":520},{},[521,530],{"type":17,"tag":236,"props":522,"children":523},{},[524],{"type":17,"tag":40,"props":525,"children":527},{"className":526},[],[528],{"type":23,"value":529},"missing",{"type":17,"tag":236,"props":531,"children":532},{},[533],{"type":23,"value":534},"Chưa có bản AkiDevRule được cài",{"type":17,"tag":209,"props":536,"children":537},{},[538,547],{"type":17,"tag":236,"props":539,"children":540},{},[541],{"type":17,"tag":40,"props":542,"children":544},{"className":543},[],[545],{"type":23,"value":546},"current",{"type":17,"tag":236,"props":548,"children":549},{},[550],{"type":23,"value":551},"Bản cài trùng bản mới nhất",{"type":17,"tag":209,"props":553,"children":554},{},[555,564],{"type":17,"tag":236,"props":556,"children":557},{},[558],{"type":17,"tag":40,"props":559,"children":561},{"className":560},[],[562],{"type":23,"value":563},"update",{"type":17,"tag":236,"props":565,"children":566},{},[567],{"type":23,"value":568},"Có bản mới hơn để cập nhật",{"type":17,"tag":209,"props":570,"children":571},{},[572,581],{"type":17,"tag":236,"props":573,"children":574},{},[575],{"type":17,"tag":40,"props":576,"children":578},{"className":577},[],[579],{"type":23,"value":580},"ahead",{"type":17,"tag":236,"props":582,"children":583},{},[584],{"type":23,"value":585},"Bản cài đang đi trước release public",{"type":17,"tag":209,"props":587,"children":588},{},[589,598],{"type":17,"tag":236,"props":590,"children":591},{},[592],{"type":17,"tag":40,"props":593,"children":595},{"className":594},[],[596],{"type":23,"value":597},"unknown",{"type":17,"tag":236,"props":599,"children":600},{},[601],{"type":23,"value":602},"Không đọc được version đáng tin cậy",{"type":17,"tag":26,"props":604,"children":605},{},[606,608,613,615,621,623,629],{"type":23,"value":607},"Cùng parser này sửa lỗi cũ của hook SessionStart: cả file local lẫn remote đều mở đầu bằng ",{"type":17,"tag":40,"props":609,"children":611},{"className":610},[],[612],{"type":23,"value":45},{"type":23,"value":614},", nên phép so sánh heading đầu tiên trước đây luôn kết luận hai phía giống nhau. ",{"type":17,"tag":40,"props":616,"children":618},{"className":617},[],[619],{"type":23,"value":620},".version",{"type":23,"value":622}," cũng lưu thêm ",{"type":17,"tag":40,"props":624,"children":626},{"className":625},[],[627],{"type":23,"value":628},"version=\u003Csemver>",{"type":23,"value":630},", còn cài đặt từ đúng checkout hiện tại có commit trùng HEAD và working tree sạch sẽ bỏ qua prompt ghi đè dư thừa.",{"type":17,"tag":110,"props":632,"children":634},{"id":633},"added-hai-tài-liệu-tra-cứu-cho-lỗi-phụ-thuộc-host",[635],{"type":23,"value":636},"Added: Hai tài liệu tra cứu cho lỗi phụ thuộc host",{"type":17,"tag":638,"props":639,"children":641},"h3",{"id":640},"macos-codesign-và-tcc",[642],{"type":23,"value":643},"macOS codesign và TCC",{"type":17,"tag":26,"props":645,"children":646},{},[647,653,655,661],{"type":17,"tag":40,"props":648,"children":650},{"className":649},[],[651],{"type":23,"value":652},"docs\u002Fref\u002Fmacos-codesign-tcc.md",{"type":23,"value":654}," gom ranh giới thường bị trộn lẫn: Gatekeeper khác TCC, Developer Tools không đồng nghĩa với quyền đọc file, TCC xét tiến trình chịu trách nhiệm, và Tauri bundle phải được ",{"type":17,"tag":40,"props":656,"children":658},{"className":657},[],[659],{"type":23,"value":660},"codesign --force",{"type":23,"value":662}," lại sau mỗi lần build nếu muốn giữ danh tính ổn định.",{"type":17,"tag":638,"props":664,"children":666},{"id":665},"agentsmd-consumer-matrix",[667],{"type":23,"value":668},"AGENTS.md consumer matrix",{"type":17,"tag":26,"props":670,"children":671},{},[672,678,680,686,688,694,696,702,704,710],{"type":17,"tag":40,"props":673,"children":675},{"className":674},[],[676],{"type":23,"value":677},"docs\u002Fref\u002Fagents-md-standard.md",{"type":23,"value":679}," ghi rõ host nào nạp ",{"type":17,"tag":40,"props":681,"children":683},{"className":682},[],[684],{"type":23,"value":685},"AGENTS.md",{"type":23,"value":687},", host nào ưu tiên file riêng. Điểm quan trọng: Claude Code chỉ chính thức nạp ",{"type":17,"tag":40,"props":689,"children":691},{"className":690},[],[692],{"type":23,"value":693},"CLAUDE.md",{"type":23,"value":695}," nên phải import ",{"type":17,"tag":40,"props":697,"children":699},{"className":698},[],[700],{"type":23,"value":701},"@AGENTS.md",{"type":23,"value":703},"; Gemini CLI vẫn ưu tiên ",{"type":17,"tag":40,"props":705,"children":707},{"className":706},[],[708],{"type":23,"value":709},"GEMINI.md",{"type":23,"value":711}," nếu chưa cấu hình khác; Postman Agent Mode không phải coding agent đọc cây Git. Nhờ vậy, “đã có AGENTS.md” không còn bị xem như bằng chứng mọi agent đều đã nhận chỉ dẫn.",{"type":17,"tag":110,"props":713,"children":715},{"id":714},"changed-release-phải-đồng-bộ-đủ-record-surfaces",[716],{"type":23,"value":717},"Changed: Release phải đồng bộ đủ record surfaces",{"type":17,"tag":26,"props":719,"children":720},{},[721,727,729,735,736,742],{"type":17,"tag":40,"props":722,"children":724},{"className":723},[],[725],{"type":23,"value":726},"release.B7",{"type":23,"value":728}," bước 5 trước đây chủ yếu gọi tên plan và tài liệu ",{"type":17,"tag":40,"props":730,"children":732},{"className":731},[],[733],{"type":23,"value":734},"arch",{"type":23,"value":381},{"type":17,"tag":40,"props":737,"children":739},{"className":738},[],[740],{"type":23,"value":741},"feat",{"type":23,"value":743},". Bản 2.8.0 liệt kê rõ năm bề mặt cần đối chiếu:",{"type":17,"tag":745,"props":746,"children":747},"ol",{},[748,753,765,770,775],{"type":17,"tag":338,"props":749,"children":750},{},[751],{"type":23,"value":752},"README khi setup, command, layout hoặc hành vi tích lũy đã đổi.",{"type":17,"tag":338,"props":754,"children":755},{},[756,758,764],{"type":23,"value":757},"Task notes qua đúng workflow ",{"type":17,"tag":40,"props":759,"children":761},{"className":760},[],[762],{"type":23,"value":763},"akidevsync-notes",{"type":23,"value":108},{"type":17,"tag":338,"props":766,"children":767},{},[768],{"type":23,"value":769},"Tài liệu kiến trúc\u002Ftính năng liên quan.",{"type":17,"tag":338,"props":771,"children":772},{},[773],{"type":23,"value":774},"Standards doc được project binding khi convention nó sở hữu thay đổi.",{"type":17,"tag":338,"props":776,"children":777},{},[778],{"type":23,"value":779},"CHANGELOG khớp với những record đã đóng.",{"type":17,"tag":26,"props":781,"children":782},{},[783],{"type":23,"value":784},"Thay đổi này nhắm vào một lỗi vận hành: release có thể hoàn tất về tag và artifact nhưng hồ sơ dùng để định hướng phiên sau vẫn kể câu chuyện của bản trước.",{"type":17,"tag":110,"props":786,"children":788},{"id":787},"changed-research-được-sửa-bằng-amendment-không-xóa-lịch-sử",[789],{"type":23,"value":790},"Changed: Research được sửa bằng Amendment, không xóa lịch sử",{"type":17,"tag":26,"props":792,"children":793},{},[794,800],{"type":17,"tag":40,"props":795,"children":797},{"className":796},[],[798],{"type":23,"value":799},"docs.B2",{"type":23,"value":801}," vẫn coi research là bản ghi sự kiện đóng băng, nhưng không còn buộc lựa chọn giữa “để sai” và “viết lại âm thầm”. Bốn loại chỉnh sửa nay có đường xử lý riêng:",{"type":17,"tag":334,"props":803,"children":804},{},[805,810,830,835],{"type":17,"tag":338,"props":806,"children":807},{},[808],{"type":23,"value":809},"Cosmetic: sửa tại chỗ, không cần marker.",{"type":17,"tag":338,"props":811,"children":812},{},[813,815,821,823,829],{"type":23,"value":814},"Claim sai nhưng Decision giữ nguyên: thêm mục ",{"type":17,"tag":40,"props":816,"children":818},{"className":817},[],[819],{"type":23,"value":820},"## Amendments",{"type":23,"value":822}," có ngày và chuyển status thành ",{"type":17,"tag":40,"props":824,"children":826},{"className":825},[],[827],{"type":23,"value":828},"amended",{"type":23,"value":108},{"type":17,"tag":338,"props":831,"children":832},{},[833],{"type":23,"value":834},"Decision thay đổi: tạo successor document.",{"type":17,"tag":338,"props":836,"children":837},{},[838],{"type":23,"value":839},"Link trong trường Decision: cập nhật tại chỗ.",{"type":17,"tag":26,"props":841,"children":842},{},[843,845,850],{"type":23,"value":844},"Phép phân biệt ngắn gọn là: ",{"type":17,"tag":32,"props":846,"children":847},{},[848],{"type":23,"value":849},"sửa lỗi này có đổi Decision không?",{"type":23,"value":851}," Nếu không, Amendment đủ; nếu có, cần successor.",{"type":17,"tag":110,"props":853,"children":855},{"id":854},"changed-ghế-akiflow-dùng-tier-thay-vì-alias-model",[856],{"type":23,"value":857},"Changed: Ghế akiflow dùng tier thay vì alias model",{"type":17,"tag":26,"props":859,"children":860},{},[861,863,869,870,876,877,883,885,891,892,898,900,906],{"type":23,"value":862},"Roster akiflow giờ nói ",{"type":17,"tag":40,"props":864,"children":866},{"className":865},[],[867],{"type":23,"value":868},"top",{"type":23,"value":73},{"type":17,"tag":40,"props":871,"children":873},{"className":872},[],[874],{"type":23,"value":875},"mid",{"type":23,"value":73},{"type":17,"tag":40,"props":878,"children":880},{"className":879},[],[881],{"type":23,"value":882},"cheap",{"type":23,"value":884},", sau đó để từng host phân giải sang model của nó. Cách này tránh việc một file skill dùng chung ghi ",{"type":17,"tag":40,"props":886,"children":888},{"className":887},[],[889],{"type":23,"value":890},"sonnet",{"type":23,"value":381},{"type":17,"tag":40,"props":893,"children":895},{"className":894},[],[896],{"type":23,"value":897},"haiku",{"type":23,"value":899}," rồi vô tình buộc Cursor, agy, Codex, Kiro hoặc Grok đi qua alias không thuộc host đó. ",{"type":17,"tag":40,"props":901,"children":903},{"className":902},[],[904],{"type":23,"value":905},"harness-facts.md",{"type":23,"value":907}," có bảng host-resolution và đánh dấu phần nào đã đo, phần nào còn chưa xác nhận.",{"type":17,"tag":26,"props":909,"children":910},{},[911,913,919,920,925],{"type":23,"value":912},"Các file agent riêng của Claude Code vẫn giữ ",{"type":17,"tag":40,"props":914,"children":916},{"className":915},[],[917],{"type":23,"value":918},"model: sonnet",{"type":23,"value":381},{"type":17,"tag":40,"props":921,"children":923},{"className":922},[],[924],{"type":23,"value":897},{"type":23,"value":926},": đó là cấu hình đúng ở bề mặt chỉ Claude Code đọc, không phải tier đa host trong skill dùng chung.",{"type":17,"tag":110,"props":928,"children":930},{"id":929},"fixed-những-lệch-nhỏ-nhưng-phá-hợp-đồng-lớn",[931],{"type":23,"value":932},"Fixed: Những lệch nhỏ nhưng phá hợp đồng lớn",{"type":17,"tag":334,"props":934,"children":935},{},[936,969,987,1016],{"type":17,"tag":338,"props":937,"children":938},{},[939,941,946,947,952,954,960,962,968],{"type":23,"value":940},"Lệnh propagate trong ",{"type":17,"tag":40,"props":942,"children":944},{"className":943},[],[945],{"type":23,"value":693},{"type":23,"value":381},{"type":17,"tag":40,"props":948,"children":950},{"className":949},[],[951],{"type":23,"value":709},{"type":23,"value":953}," sinh bởi installer nay dùng ",{"type":17,"tag":40,"props":955,"children":957},{"className":956},[],[958],{"type":23,"value":959},"py -3 \u003Crepo>\\install.py",{"type":23,"value":961}," trên Windows, thay vì nhét đường dẫn Windows vào Bash rồi làm rơi dấu ",{"type":17,"tag":40,"props":963,"children":965},{"className":964},[],[966],{"type":23,"value":967},"\\",{"type":23,"value":108},{"type":17,"tag":338,"props":970,"children":971},{},[972,978,980,985],{"type":17,"tag":40,"props":973,"children":975},{"className":974},[],[976],{"type":23,"value":977},"releases.json",{"type":23,"value":979}," chính thức nhận type ",{"type":17,"tag":40,"props":981,"children":983},{"className":982},[],[984],{"type":23,"value":295},{"type":23,"value":986},"; quy tắc “không gap nội dung” kiểm tra mọi section Added\u002FChanged\u002FFixed\u002FRemoved.",{"type":17,"tag":338,"props":988,"children":989},{},[990,992,998,1000,1006,1008,1014],{"type":23,"value":991},"Hướng dẫn Nitro trên stack hiện tại dùng ",{"type":17,"tag":40,"props":993,"children":995},{"className":994},[],[996],{"type":23,"value":997},"event.context.cloudflare.context.waitUntil",{"type":23,"value":999}," hoặc ",{"type":17,"tag":40,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":23,"value":1005},"event.waitUntil",{"type":23,"value":1007},", không sao chép API Nitro v3 ",{"type":17,"tag":40,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":23,"value":1013},"event.req",{"type":23,"value":1015}," vào Nitro 2.13.",{"type":17,"tag":338,"props":1017,"children":1018},{},[1019],{"type":23,"value":1020},"Heading “Shared rule source” trong GEMINI.md chuyển từ số 9 trùng lặp sang 15; số section trong tài liệu akiflow được cập nhật tương ứng.",{"type":17,"tag":110,"props":1022,"children":1024},{"id":1023},"nên-cập-nhật-khi-nào",[1025],{"type":23,"value":1026},"Nên cập nhật khi nào?",{"type":17,"tag":26,"props":1028,"children":1029},{},[1030],{"type":23,"value":1031},"Hãy cập nhật sớm nếu workflow của bạn có D1 migrations, chạy AkiDevRule trên Windows, dùng nhiều coding host, hoặc dựa vào hook kiểm tra version. Ngay cả khi không thuộc các nhóm đó, cơ chế closure re-anchor, record-surface sync và Amendment làm cho kết quả của các tác vụ nhiều bước dễ kiểm chứng hơn.",{"type":17,"tag":117,"props":1033,"children":1035},{"className":423,"code":1034,"language":425,"meta":7,"style":7},"git pull && bash install.sh\n",[1036],{"type":17,"tag":40,"props":1037,"children":1038},{"__ignoreMap":7},[1039],{"type":17,"tag":56,"props":1040,"children":1041},{"class":128,"line":129},[1042,1047,1052,1057,1061],{"type":17,"tag":56,"props":1043,"children":1044},{"style":435},[1045],{"type":23,"value":1046},"git",{"type":17,"tag":56,"props":1048,"children":1049},{"style":441},[1050],{"type":23,"value":1051}," pull",{"type":17,"tag":56,"props":1053,"children":1054},{"style":133},[1055],{"type":23,"value":1056}," && ",{"type":17,"tag":56,"props":1058,"children":1059},{"style":435},[1060],{"type":23,"value":425},{"type":17,"tag":56,"props":1062,"children":1063},{"style":441},[1064],{"type":23,"value":1065}," install.sh\n",{"type":17,"tag":26,"props":1067,"children":1068},{},[1069],{"type":23,"value":1070},"Windows:",{"type":17,"tag":117,"props":1072,"children":1074},{"className":423,"code":1073,"language":425,"meta":7,"style":7},"git pull\npy -3 install.py\n",[1075],{"type":17,"tag":40,"props":1076,"children":1077},{"__ignoreMap":7},[1078,1090],{"type":17,"tag":56,"props":1079,"children":1080},{"class":128,"line":129},[1081,1085],{"type":17,"tag":56,"props":1082,"children":1083},{"style":435},[1084],{"type":23,"value":1046},{"type":17,"tag":56,"props":1086,"children":1087},{"style":441},[1088],{"type":23,"value":1089}," pull\n",{"type":17,"tag":56,"props":1091,"children":1092},{"class":128,"line":139},[1093,1097,1101],{"type":17,"tag":56,"props":1094,"children":1095},{"style":435},[1096],{"type":23,"value":470},{"type":17,"tag":56,"props":1098,"children":1099},{"style":447},[1100],{"type":23,"value":475},{"type":17,"tag":56,"props":1102,"children":1103},{"style":441},[1104],{"type":23,"value":1105}," install.py\n",{"type":17,"tag":26,"props":1107,"children":1108},{},[1109,1111,1117,1118,1124,1126,1132],{"type":23,"value":1110},"Xem ",{"type":17,"tag":64,"props":1112,"children":1114},{"href":66,"rel":1113},[68],[1115],{"type":23,"value":1116},"Release 2.8.0",{"type":23,"value":73},{"type":17,"tag":64,"props":1119,"children":1121},{"href":76,"rel":1120},[68],[1122],{"type":23,"value":1123},"diff đầy đủ từ 2.7.0",{"type":23,"value":1125},", hoặc ",{"type":17,"tag":64,"props":1127,"children":1129},{"href":93,"rel":1128},[68],[1130],{"type":23,"value":1131},"mã nguồn AkiDevRule",{"type":23,"value":108},{"type":17,"tag":1134,"props":1135,"children":1136},"style",{},[1137],{"type":23,"value":1138},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":139,"depth":139,"links":1140},[1141,1142,1143,1145,1149,1150,1151,1152,1153],{"id":112,"depth":139,"text":115},{"id":305,"depth":139,"text":308},{"id":405,"depth":139,"text":1144},"Added: install.py --check và năm trạng thái version",{"id":633,"depth":139,"text":636,"children":1146},[1147,1148],{"id":640,"depth":148,"text":643},{"id":665,"depth":148,"text":668},{"id":714,"depth":139,"text":717},{"id":787,"depth":139,"text":790},{"id":854,"depth":139,"text":857},{"id":929,"depth":139,"text":932},{"id":1023,"depth":139,"text":1026},"markdown","content:posts:akidevrule-2-8-0-migration-check-va-record-surfaces.md","content","posts\u002Fakidevrule-2-8-0-migration-check-va-record-surfaces.md","posts\u002Fakidevrule-2-8-0-migration-check-va-record-surfaces","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"categoryKey":11,"readTime":12,"body":1161,"_type":1154,"_id":1155,"_source":1156,"_file":1157,"_stem":1158,"_extension":1159},{"type":14,"children":1162,"toc":2044},[1163,1167,1182,1223,1227,1289,1370,1374,1384,1393,1436,1447,1457,1461,1482,1486,1511,1521,1616,1638,1642,1646,1661,1665,1698,1702,1723,1752,1756,1760,1769,1800,1809,1813,1853,1869,1873,1945,1949,1953,1982,1986,2018,2040],{"type":17,"tag":18,"props":1164,"children":1165},{"id":20},[1166],{"type":23,"value":24},{"type":17,"tag":26,"props":1168,"children":1169},{},[1170,1171,1175,1176,1181],{"type":23,"value":30},{"type":17,"tag":32,"props":1172,"children":1173},{},[1174],{"type":23,"value":36},{"type":23,"value":38},{"type":17,"tag":40,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":23,"value":45},{"type":23,"value":47},{"type":17,"tag":49,"props":1183,"children":1184},{},[1185],{"type":17,"tag":26,"props":1186,"children":1187},{},[1188,1192,1193,1198,1199,1204,1205,1210,1211,1216,1217,1222],{"type":17,"tag":56,"props":1189,"children":1190},{},[1191],{"type":23,"value":60},{"type":23,"value":62},{"type":17,"tag":64,"props":1194,"children":1196},{"href":66,"rel":1195},[68],[1197],{"type":23,"value":71},{"type":23,"value":73},{"type":17,"tag":64,"props":1200,"children":1202},{"href":76,"rel":1201},[68],[1203],{"type":23,"value":80},{"type":23,"value":73},{"type":17,"tag":64,"props":1206,"children":1208},{"href":84,"rel":1207},[68],[1209],{"type":23,"value":88},{"type":23,"value":90},{"type":17,"tag":64,"props":1212,"children":1214},{"href":93,"rel":1213},[68],[1215],{"type":23,"value":97},{"type":23,"value":99},{"type":17,"tag":64,"props":1218,"children":1220},{"href":102,"rel":1219},[68],[1221],{"type":23,"value":106},{"type":23,"value":108},{"type":17,"tag":110,"props":1224,"children":1225},{"id":112},[1226],{"type":23,"value":115},{"type":17,"tag":117,"props":1228,"children":1229},{"className":119,"code":120,"language":121,"meta":7,"style":7},[1230],{"type":17,"tag":40,"props":1231,"children":1232},{"__ignoreMap":7},[1233,1240,1247,1254,1261,1268,1275,1282],{"type":17,"tag":56,"props":1234,"children":1235},{"class":128,"line":129},[1236],{"type":17,"tag":56,"props":1237,"children":1238},{"style":133},[1239],{"type":23,"value":136},{"type":17,"tag":56,"props":1241,"children":1242},{"class":128,"line":139},[1243],{"type":17,"tag":56,"props":1244,"children":1245},{"style":133},[1246],{"type":23,"value":145},{"type":17,"tag":56,"props":1248,"children":1249},{"class":128,"line":148},[1250],{"type":17,"tag":56,"props":1251,"children":1252},{"style":133},[1253],{"type":23,"value":154},{"type":17,"tag":56,"props":1255,"children":1256},{"class":128,"line":157},[1257],{"type":17,"tag":56,"props":1258,"children":1259},{"style":133},[1260],{"type":23,"value":163},{"type":17,"tag":56,"props":1262,"children":1263},{"class":128,"line":166},[1264],{"type":17,"tag":56,"props":1265,"children":1266},{"style":133},[1267],{"type":23,"value":172},{"type":17,"tag":56,"props":1269,"children":1270},{"class":128,"line":175},[1271],{"type":17,"tag":56,"props":1272,"children":1273},{"style":133},[1274],{"type":23,"value":181},{"type":17,"tag":56,"props":1276,"children":1277},{"class":128,"line":184},[1278],{"type":17,"tag":56,"props":1279,"children":1280},{"style":133},[1281],{"type":23,"value":190},{"type":17,"tag":56,"props":1283,"children":1284},{"class":128,"line":193},[1285],{"type":17,"tag":56,"props":1286,"children":1287},{"style":133},[1288],{"type":23,"value":199},{"type":17,"tag":201,"props":1290,"children":1291},{},[1292,1310],{"type":17,"tag":205,"props":1293,"children":1294},{},[1295],{"type":17,"tag":209,"props":1296,"children":1297},{},[1298,1302,1306],{"type":17,"tag":213,"props":1299,"children":1300},{},[1301],{"type":23,"value":217},{"type":17,"tag":213,"props":1303,"children":1304},{},[1305],{"type":23,"value":222},{"type":17,"tag":213,"props":1307,"children":1308},{},[1309],{"type":23,"value":227},{"type":17,"tag":229,"props":1311,"children":1312},{},[1313,1334,1349],{"type":17,"tag":209,"props":1314,"children":1315},{},[1316,1320,1330],{"type":17,"tag":236,"props":1317,"children":1318},{},[1319],{"type":23,"value":240},{"type":17,"tag":236,"props":1321,"children":1322},{},[1323,1324,1329],{"type":23,"value":245},{"type":17,"tag":40,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":23,"value":251},{"type":23,"value":253},{"type":17,"tag":236,"props":1331,"children":1332},{},[1333],{"type":23,"value":258},{"type":17,"tag":209,"props":1335,"children":1336},{},[1337,1341,1345],{"type":17,"tag":236,"props":1338,"children":1339},{},[1340],{"type":23,"value":266},{"type":17,"tag":236,"props":1342,"children":1343},{},[1344],{"type":23,"value":271},{"type":17,"tag":236,"props":1346,"children":1347},{},[1348],{"type":23,"value":276},{"type":17,"tag":209,"props":1350,"children":1351},{},[1352,1356,1366],{"type":17,"tag":236,"props":1353,"children":1354},{},[1355],{"type":23,"value":284},{"type":17,"tag":236,"props":1357,"children":1358},{},[1359,1360,1365],{"type":23,"value":289},{"type":17,"tag":40,"props":1361,"children":1363},{"className":1362},[],[1364],{"type":23,"value":295},{"type":23,"value":297},{"type":17,"tag":236,"props":1367,"children":1368},{},[1369],{"type":23,"value":302},{"type":17,"tag":110,"props":1371,"children":1372},{"id":305},[1373],{"type":23,"value":308},{"type":17,"tag":26,"props":1375,"children":1376},{},[1377,1378,1383],{"type":23,"value":313},{"type":17,"tag":40,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":23,"value":319},{"type":23,"value":321},{"type":17,"tag":26,"props":1385,"children":1386},{},[1387,1392],{"type":17,"tag":40,"props":1388,"children":1390},{"className":1389},[],[1391],{"type":23,"value":330},{"type":23,"value":332},{"type":17,"tag":334,"props":1394,"children":1395},{},[1396,1416],{"type":17,"tag":338,"props":1397,"children":1398},{},[1399,1403,1404,1409,1410,1415],{"type":17,"tag":32,"props":1400,"children":1401},{},[1402],{"type":23,"value":345},{"type":23,"value":347},{"type":17,"tag":40,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":23,"value":353},{"type":23,"value":355},{"type":17,"tag":40,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":23,"value":361},{"type":23,"value":363},{"type":17,"tag":338,"props":1417,"children":1418},{},[1419,1423,1424,1429,1430,1435],{"type":17,"tag":32,"props":1420,"children":1421},{},[1422],{"type":23,"value":371},{"type":23,"value":373},{"type":17,"tag":40,"props":1425,"children":1427},{"className":1426},[],[1428],{"type":23,"value":379},{"type":23,"value":381},{"type":17,"tag":40,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":23,"value":387},{"type":23,"value":389},{"type":17,"tag":49,"props":1437,"children":1438},{},[1439],{"type":17,"tag":26,"props":1440,"children":1441},{},[1442,1446],{"type":17,"tag":56,"props":1443,"children":1444},{},[1445],{"type":23,"value":400},{"type":23,"value":402},{"type":17,"tag":110,"props":1448,"children":1449},{"id":405},[1450,1451,1456],{"type":23,"value":408},{"type":17,"tag":40,"props":1452,"children":1454},{"className":1453},[],[1455],{"type":23,"value":251},{"type":23,"value":415},{"type":17,"tag":26,"props":1458,"children":1459},{},[1460],{"type":23,"value":420},{"type":17,"tag":117,"props":1462,"children":1463},{"className":423,"code":424,"language":425,"meta":7,"style":7},[1464],{"type":17,"tag":40,"props":1465,"children":1466},{"__ignoreMap":7},[1467],{"type":17,"tag":56,"props":1468,"children":1469},{"class":128,"line":129},[1470,1474,1478],{"type":17,"tag":56,"props":1471,"children":1472},{"style":435},[1473],{"type":23,"value":438},{"type":17,"tag":56,"props":1475,"children":1476},{"style":441},[1477],{"type":23,"value":444},{"type":17,"tag":56,"props":1479,"children":1480},{"style":447},[1481],{"type":23,"value":450},{"type":17,"tag":26,"props":1483,"children":1484},{},[1485],{"type":23,"value":455},{"type":17,"tag":117,"props":1487,"children":1488},{"className":423,"code":458,"language":425,"meta":7,"style":7},[1489],{"type":17,"tag":40,"props":1490,"children":1491},{"__ignoreMap":7},[1492],{"type":17,"tag":56,"props":1493,"children":1494},{"class":128,"line":129},[1495,1499,1503,1507],{"type":17,"tag":56,"props":1496,"children":1497},{"style":435},[1498],{"type":23,"value":470},{"type":17,"tag":56,"props":1500,"children":1501},{"style":447},[1502],{"type":23,"value":475},{"type":17,"tag":56,"props":1504,"children":1505},{"style":441},[1506],{"type":23,"value":444},{"type":17,"tag":56,"props":1508,"children":1509},{"style":447},[1510],{"type":23,"value":450},{"type":17,"tag":26,"props":1512,"children":1513},{},[1514,1515,1520],{"type":23,"value":488},{"type":17,"tag":40,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":23,"value":45},{"type":23,"value":495},{"type":17,"tag":201,"props":1522,"children":1523},{},[1524,1538],{"type":17,"tag":205,"props":1525,"children":1526},{},[1527],{"type":17,"tag":209,"props":1528,"children":1529},{},[1530,1534],{"type":17,"tag":213,"props":1531,"children":1532},{},[1533],{"type":23,"value":509},{"type":17,"tag":213,"props":1535,"children":1536},{},[1537],{"type":23,"value":514},{"type":17,"tag":229,"props":1539,"children":1540},{},[1541,1556,1571,1586,1601],{"type":17,"tag":209,"props":1542,"children":1543},{},[1544,1552],{"type":17,"tag":236,"props":1545,"children":1546},{},[1547],{"type":17,"tag":40,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":23,"value":529},{"type":17,"tag":236,"props":1553,"children":1554},{},[1555],{"type":23,"value":534},{"type":17,"tag":209,"props":1557,"children":1558},{},[1559,1567],{"type":17,"tag":236,"props":1560,"children":1561},{},[1562],{"type":17,"tag":40,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":23,"value":546},{"type":17,"tag":236,"props":1568,"children":1569},{},[1570],{"type":23,"value":551},{"type":17,"tag":209,"props":1572,"children":1573},{},[1574,1582],{"type":17,"tag":236,"props":1575,"children":1576},{},[1577],{"type":17,"tag":40,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":23,"value":563},{"type":17,"tag":236,"props":1583,"children":1584},{},[1585],{"type":23,"value":568},{"type":17,"tag":209,"props":1587,"children":1588},{},[1589,1597],{"type":17,"tag":236,"props":1590,"children":1591},{},[1592],{"type":17,"tag":40,"props":1593,"children":1595},{"className":1594},[],[1596],{"type":23,"value":580},{"type":17,"tag":236,"props":1598,"children":1599},{},[1600],{"type":23,"value":585},{"type":17,"tag":209,"props":1602,"children":1603},{},[1604,1612],{"type":17,"tag":236,"props":1605,"children":1606},{},[1607],{"type":17,"tag":40,"props":1608,"children":1610},{"className":1609},[],[1611],{"type":23,"value":597},{"type":17,"tag":236,"props":1613,"children":1614},{},[1615],{"type":23,"value":602},{"type":17,"tag":26,"props":1617,"children":1618},{},[1619,1620,1625,1626,1631,1632,1637],{"type":23,"value":607},{"type":17,"tag":40,"props":1621,"children":1623},{"className":1622},[],[1624],{"type":23,"value":45},{"type":23,"value":614},{"type":17,"tag":40,"props":1627,"children":1629},{"className":1628},[],[1630],{"type":23,"value":620},{"type":23,"value":622},{"type":17,"tag":40,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":23,"value":628},{"type":23,"value":630},{"type":17,"tag":110,"props":1639,"children":1640},{"id":633},[1641],{"type":23,"value":636},{"type":17,"tag":638,"props":1643,"children":1644},{"id":640},[1645],{"type":23,"value":643},{"type":17,"tag":26,"props":1647,"children":1648},{},[1649,1654,1655,1660],{"type":17,"tag":40,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":23,"value":652},{"type":23,"value":654},{"type":17,"tag":40,"props":1656,"children":1658},{"className":1657},[],[1659],{"type":23,"value":660},{"type":23,"value":662},{"type":17,"tag":638,"props":1662,"children":1663},{"id":665},[1664],{"type":23,"value":668},{"type":17,"tag":26,"props":1666,"children":1667},{},[1668,1673,1674,1679,1680,1685,1686,1691,1692,1697],{"type":17,"tag":40,"props":1669,"children":1671},{"className":1670},[],[1672],{"type":23,"value":677},{"type":23,"value":679},{"type":17,"tag":40,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":23,"value":685},{"type":23,"value":687},{"type":17,"tag":40,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":23,"value":693},{"type":23,"value":695},{"type":17,"tag":40,"props":1687,"children":1689},{"className":1688},[],[1690],{"type":23,"value":701},{"type":23,"value":703},{"type":17,"tag":40,"props":1693,"children":1695},{"className":1694},[],[1696],{"type":23,"value":709},{"type":23,"value":711},{"type":17,"tag":110,"props":1699,"children":1700},{"id":714},[1701],{"type":23,"value":717},{"type":17,"tag":26,"props":1703,"children":1704},{},[1705,1710,1711,1716,1717,1722],{"type":17,"tag":40,"props":1706,"children":1708},{"className":1707},[],[1709],{"type":23,"value":726},{"type":23,"value":728},{"type":17,"tag":40,"props":1712,"children":1714},{"className":1713},[],[1715],{"type":23,"value":734},{"type":23,"value":381},{"type":17,"tag":40,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":23,"value":741},{"type":23,"value":743},{"type":17,"tag":745,"props":1724,"children":1725},{},[1726,1730,1740,1744,1748],{"type":17,"tag":338,"props":1727,"children":1728},{},[1729],{"type":23,"value":752},{"type":17,"tag":338,"props":1731,"children":1732},{},[1733,1734,1739],{"type":23,"value":757},{"type":17,"tag":40,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":23,"value":763},{"type":23,"value":108},{"type":17,"tag":338,"props":1741,"children":1742},{},[1743],{"type":23,"value":769},{"type":17,"tag":338,"props":1745,"children":1746},{},[1747],{"type":23,"value":774},{"type":17,"tag":338,"props":1749,"children":1750},{},[1751],{"type":23,"value":779},{"type":17,"tag":26,"props":1753,"children":1754},{},[1755],{"type":23,"value":784},{"type":17,"tag":110,"props":1757,"children":1758},{"id":787},[1759],{"type":23,"value":790},{"type":17,"tag":26,"props":1761,"children":1762},{},[1763,1768],{"type":17,"tag":40,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":23,"value":799},{"type":23,"value":801},{"type":17,"tag":334,"props":1770,"children":1771},{},[1772,1776,1792,1796],{"type":17,"tag":338,"props":1773,"children":1774},{},[1775],{"type":23,"value":809},{"type":17,"tag":338,"props":1777,"children":1778},{},[1779,1780,1785,1786,1791],{"type":23,"value":814},{"type":17,"tag":40,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":23,"value":820},{"type":23,"value":822},{"type":17,"tag":40,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":23,"value":828},{"type":23,"value":108},{"type":17,"tag":338,"props":1793,"children":1794},{},[1795],{"type":23,"value":834},{"type":17,"tag":338,"props":1797,"children":1798},{},[1799],{"type":23,"value":839},{"type":17,"tag":26,"props":1801,"children":1802},{},[1803,1804,1808],{"type":23,"value":844},{"type":17,"tag":32,"props":1805,"children":1806},{},[1807],{"type":23,"value":849},{"type":23,"value":851},{"type":17,"tag":110,"props":1810,"children":1811},{"id":854},[1812],{"type":23,"value":857},{"type":17,"tag":26,"props":1814,"children":1815},{},[1816,1817,1822,1823,1828,1829,1834,1835,1840,1841,1846,1847,1852],{"type":23,"value":862},{"type":17,"tag":40,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":23,"value":868},{"type":23,"value":73},{"type":17,"tag":40,"props":1824,"children":1826},{"className":1825},[],[1827],{"type":23,"value":875},{"type":23,"value":73},{"type":17,"tag":40,"props":1830,"children":1832},{"className":1831},[],[1833],{"type":23,"value":882},{"type":23,"value":884},{"type":17,"tag":40,"props":1836,"children":1838},{"className":1837},[],[1839],{"type":23,"value":890},{"type":23,"value":381},{"type":17,"tag":40,"props":1842,"children":1844},{"className":1843},[],[1845],{"type":23,"value":897},{"type":23,"value":899},{"type":17,"tag":40,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":23,"value":905},{"type":23,"value":907},{"type":17,"tag":26,"props":1854,"children":1855},{},[1856,1857,1862,1863,1868],{"type":23,"value":912},{"type":17,"tag":40,"props":1858,"children":1860},{"className":1859},[],[1861],{"type":23,"value":918},{"type":23,"value":381},{"type":17,"tag":40,"props":1864,"children":1866},{"className":1865},[],[1867],{"type":23,"value":897},{"type":23,"value":926},{"type":17,"tag":110,"props":1870,"children":1871},{"id":929},[1872],{"type":23,"value":932},{"type":17,"tag":334,"props":1874,"children":1875},{},[1876,1904,1919,1941],{"type":17,"tag":338,"props":1877,"children":1878},{},[1879,1880,1885,1886,1891,1892,1897,1898,1903],{"type":23,"value":940},{"type":17,"tag":40,"props":1881,"children":1883},{"className":1882},[],[1884],{"type":23,"value":693},{"type":23,"value":381},{"type":17,"tag":40,"props":1887,"children":1889},{"className":1888},[],[1890],{"type":23,"value":709},{"type":23,"value":953},{"type":17,"tag":40,"props":1893,"children":1895},{"className":1894},[],[1896],{"type":23,"value":959},{"type":23,"value":961},{"type":17,"tag":40,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":23,"value":967},{"type":23,"value":108},{"type":17,"tag":338,"props":1905,"children":1906},{},[1907,1912,1913,1918],{"type":17,"tag":40,"props":1908,"children":1910},{"className":1909},[],[1911],{"type":23,"value":977},{"type":23,"value":979},{"type":17,"tag":40,"props":1914,"children":1916},{"className":1915},[],[1917],{"type":23,"value":295},{"type":23,"value":986},{"type":17,"tag":338,"props":1920,"children":1921},{},[1922,1923,1928,1929,1934,1935,1940],{"type":23,"value":991},{"type":17,"tag":40,"props":1924,"children":1926},{"className":1925},[],[1927],{"type":23,"value":997},{"type":23,"value":999},{"type":17,"tag":40,"props":1930,"children":1932},{"className":1931},[],[1933],{"type":23,"value":1005},{"type":23,"value":1007},{"type":17,"tag":40,"props":1936,"children":1938},{"className":1937},[],[1939],{"type":23,"value":1013},{"type":23,"value":1015},{"type":17,"tag":338,"props":1942,"children":1943},{},[1944],{"type":23,"value":1020},{"type":17,"tag":110,"props":1946,"children":1947},{"id":1023},[1948],{"type":23,"value":1026},{"type":17,"tag":26,"props":1950,"children":1951},{},[1952],{"type":23,"value":1031},{"type":17,"tag":117,"props":1954,"children":1955},{"className":423,"code":1034,"language":425,"meta":7,"style":7},[1956],{"type":17,"tag":40,"props":1957,"children":1958},{"__ignoreMap":7},[1959],{"type":17,"tag":56,"props":1960,"children":1961},{"class":128,"line":129},[1962,1966,1970,1974,1978],{"type":17,"tag":56,"props":1963,"children":1964},{"style":435},[1965],{"type":23,"value":1046},{"type":17,"tag":56,"props":1967,"children":1968},{"style":441},[1969],{"type":23,"value":1051},{"type":17,"tag":56,"props":1971,"children":1972},{"style":133},[1973],{"type":23,"value":1056},{"type":17,"tag":56,"props":1975,"children":1976},{"style":435},[1977],{"type":23,"value":425},{"type":17,"tag":56,"props":1979,"children":1980},{"style":441},[1981],{"type":23,"value":1065},{"type":17,"tag":26,"props":1983,"children":1984},{},[1985],{"type":23,"value":1070},{"type":17,"tag":117,"props":1987,"children":1988},{"className":423,"code":1073,"language":425,"meta":7,"style":7},[1989],{"type":17,"tag":40,"props":1990,"children":1991},{"__ignoreMap":7},[1992,2003],{"type":17,"tag":56,"props":1993,"children":1994},{"class":128,"line":129},[1995,1999],{"type":17,"tag":56,"props":1996,"children":1997},{"style":435},[1998],{"type":23,"value":1046},{"type":17,"tag":56,"props":2000,"children":2001},{"style":441},[2002],{"type":23,"value":1089},{"type":17,"tag":56,"props":2004,"children":2005},{"class":128,"line":139},[2006,2010,2014],{"type":17,"tag":56,"props":2007,"children":2008},{"style":435},[2009],{"type":23,"value":470},{"type":17,"tag":56,"props":2011,"children":2012},{"style":447},[2013],{"type":23,"value":475},{"type":17,"tag":56,"props":2015,"children":2016},{"style":441},[2017],{"type":23,"value":1105},{"type":17,"tag":26,"props":2019,"children":2020},{},[2021,2022,2027,2028,2033,2034,2039],{"type":23,"value":1110},{"type":17,"tag":64,"props":2023,"children":2025},{"href":66,"rel":2024},[68],[2026],{"type":23,"value":1116},{"type":23,"value":73},{"type":17,"tag":64,"props":2029,"children":2031},{"href":76,"rel":2030},[68],[2032],{"type":23,"value":1123},{"type":23,"value":1125},{"type":17,"tag":64,"props":2035,"children":2037},{"href":93,"rel":2036},[68],[2038],{"type":23,"value":1131},{"type":23,"value":108},{"type":17,"tag":1134,"props":2041,"children":2042},{},[2043],{"type":23,"value":1138},{"title":7,"searchDepth":139,"depth":139,"links":2045},[2046,2047,2048,2049,2053,2054,2055,2056,2057],{"id":112,"depth":139,"text":115},{"id":305,"depth":139,"text":308},{"id":405,"depth":139,"text":1144},{"id":633,"depth":139,"text":636,"children":2050},[2051,2052],{"id":640,"depth":148,"text":643},{"id":665,"depth":148,"text":668},{"id":714,"depth":139,"text":717},{"id":787,"depth":139,"text":790},{"id":854,"depth":139,"text":857},{"id":929,"depth":139,"text":932},{"id":1023,"depth":139,"text":1026},1788893805830]