[{"data":1,"prerenderedAt":557},["ShallowReactive",2],{"page-\u002Fai":3,"navigation":181},{"collection":4,"page":5},"docs_en",{"id":6,"title":7,"body":8,"description":171,"extension":172,"meta":173,"navigation":174,"path":176,"rawbody":177,"seo":178,"stem":179,"__hash__":180},"docs_en\u002Fai\u002Findex.md","AI and agents",{"type":9,"value":10,"toc":165},"minimark",[11,20,58,63,84,104,108,155],[12,13,14,15,19],"p",{},"AI assistants are often the fastest way to turn a scanned drilling report into data, or to write code against a file format. They are also confident when they are wrong. These tools give an assistant the real specification and the real validator, so its answers and its ",[16,17,18],"code",{},".well"," files can be checked instead of trusted.",[21,22,23,35,43],"card-group",{},[24,25,29],"card",{"icon":26,"title":27,"to":28},"i-lucide-plug","MCP server","\u002Fai\u002Fmcp",[12,30,31,32,34],{},"Connect Claude, Cursor, VS Code or another MCP client to search these docs, read any page and validate ",[16,33,18],{}," files.",[24,36,40],{"icon":37,"title":38,"to":39},"i-lucide-file-text","llms.txt and Markdown","\u002Fai\u002Fllms",[12,41,42],{},"Every page as plain Markdown, an index for assistants, and the whole site in one file.",[24,44,48],{"icon":45,"title":46,"to":47},"i-lucide-wand-sparkles","Converting reports","\u002Fai\u002Fconversion-skill",[12,49,50,51,54,55,57],{},"The ",[16,52,53],{},"welldot-converter"," skill turns a well report into a ",[16,56,18],{}," file, and checks it with the validator.",[59,60,62],"h2",{"id":61},"two-common-cases","Two common cases",[12,64,65,69,70,76,77,80,81,83],{},[66,67,68],"strong",{},"A geologist converting reports."," The assistant reads a PDF or a photo of a drilling report, follows the ",[71,72,73,75],"a",{"href":47},[16,74,53],{}," skill"," to extract every section, writes the file, and runs ",[16,78,79],{},"validate_well"," on the ",[71,82,27],{"href":28}," until it passes. The geologist then reviews the result against the report.",[12,85,86,89,90,93,94,97,98,103],{},[66,87,88],{},"A developer writing code."," The assistant looks up fields and rules with ",[16,91,92],{},"search_docs"," and ",[16,95,96],{},"get_page"," instead of guessing, and validates the test files it writes. Without MCP, give it ",[71,99,100],{"href":39},[16,101,102],{},"\u002Fllms.txt"," or the Markdown of the pages you are working from.",[59,105,107],{"id":106},"what-the-tools-guarantee","What the tools guarantee",[109,110,111,134,149],"ul",{},[112,113,114,117,118,120,121,124,125,128,129,133],"li",{},[66,115,116],{},"The same validator."," ",[16,119,79],{}," runs ",[16,122,123],{},"parseWell"," from ",[16,126,127],{},"@welldot\u002Fcore",", exactly as the welldot.org editor and the libraries do. It adds no rules of its own (",[71,130,132],{"href":131},"\u002Fformat\u002Fguides\u002Fvalidating","Validating",").",[112,135,136,117,139,93,141,143,144,148],{},[66,137,138],{},"The real spec.",[16,140,92],{},[16,142,96],{}," read the same pages you are reading now, including the full ",[71,145,147],{"href":146},"\u002Fformat\u002Fspec","specification",".",[112,150,151,154],{},[66,152,153],{},"Nothing stored."," The MCP server is stateless and read-only. It does not keep the files you validate.",[156,157,158],"caution",{},[12,159,160,161,133],{},"A valid file can still be wrong. Validation checks the shape of the data, not whether the numbers match the report. Always review a converted file against its source (",[71,162,164],{"href":163},"\u002Fformat\u002Fguides\u002Fconverting-a-report#review-checklist","Converting a report",{"title":166,"searchDepth":167,"depth":167,"links":168},"",2,[169,170],{"id":61,"depth":167,"text":62},{"id":106,"depth":167,"text":107},"How AI assistants can read these docs, validate .well files and convert well reports, through the MCP server, llms.txt and the welldot-converter skill.","md",{},{"title":175},"Introduction","\u002Fai","---\ntitle: AI and agents\ndescription: How AI assistants can read these docs, validate .well files and convert well reports, through the MCP server, llms.txt and the welldot-converter skill.\nnavigation:\n  title: Introduction\n---\n\nAI assistants are often the fastest way to turn a scanned drilling report into data, or to write code against a file format. They are also confident when they are wrong. These tools give an assistant the real specification and the real validator, so its answers and its `.well` files can be checked instead of trusted.\n\n::card-group\n\n:::card{title=\"MCP server\" icon=\"i-lucide-plug\" to=\"\u002Fai\u002Fmcp\"}\nConnect Claude, Cursor, VS Code or another MCP client to search these docs, read any page and validate `.well` files.\n:::\n\n:::card{title=\"llms.txt and Markdown\" icon=\"i-lucide-file-text\" to=\"\u002Fai\u002Fllms\"}\nEvery page as plain Markdown, an index for assistants, and the whole site in one file.\n:::\n\n:::card{title=\"Converting reports\" icon=\"i-lucide-wand-sparkles\" to=\"\u002Fai\u002Fconversion-skill\"}\nThe `welldot-converter` skill turns a well report into a `.well` file, and checks it with the validator.\n:::\n\n::\n\n## Two common cases\n\n**A geologist converting reports.** The assistant reads a PDF or a photo of a drilling report, follows the [`welldot-converter` skill](\u002Fai\u002Fconversion-skill) to extract every section, writes the file, and runs `validate_well` on the [MCP server](\u002Fai\u002Fmcp) until it passes. The geologist then reviews the result against the report.\n\n**A developer writing code.** The assistant looks up fields and rules with `search_docs` and `get_page` instead of guessing, and validates the test files it writes. Without MCP, give it [`\u002Fllms.txt`](\u002Fai\u002Fllms) or the Markdown of the pages you are working from.\n\n## What the tools guarantee\n\n- **The same validator.** `validate_well` runs `parseWell` from `@welldot\u002Fcore`, exactly as the welldot.org editor and the libraries do. It adds no rules of its own ([Validating](\u002Fformat\u002Fguides\u002Fvalidating)).\n- **The real spec.** `search_docs` and `get_page` read the same pages you are reading now, including the full [specification](\u002Fformat\u002Fspec).\n- **Nothing stored.** The MCP server is stateless and read-only. It does not keep the files you validate.\n\n::caution\nA valid file can still be wrong. Validation checks the shape of the data, not whether the numbers match the report. Always review a converted file against its source ([Converting a report](\u002Fformat\u002Fguides\u002Fconverting-a-report#review-checklist)).\n::\n",{"title":7,"description":171},"ai\u002Findex","v_sIHGRPm64eJe9BIOhxf_8kItiwgu6JcrlwilrLwEY",{"docs_en":182,"spec":489,"changelogs":539},[183,196,215,271,377,431],{"title":184,"path":176,"stem":185,"children":186},"Ai","ai",[187,188,191,194],{"title":175,"path":176,"stem":179},{"title":189,"path":47,"stem":190},"Converting reports with an assistant","ai\u002Fconversion-skill",{"title":192,"path":39,"stem":193},"llms.txt and Markdown pages","ai\u002Fllms",{"title":27,"path":28,"stem":195},"ai\u002Fmcp",{"title":197,"path":198,"stem":199,"children":200},"Contributing","\u002Fcontributing","contributing",[201,203,207,211],{"title":175,"path":198,"stem":202},"contributing\u002Findex",{"title":204,"path":205,"stem":206},"Writing docs","\u002Fcontributing\u002Fwriting-docs","contributing\u002F1.writing-docs",{"title":208,"path":209,"stem":210},"Update rules","\u002Fcontributing\u002Fupdate-rules","contributing\u002F2.update-rules",{"title":212,"path":213,"stem":214},"Content components","\u002Fcontributing\u002Fcomponents","contributing\u002Fcomponents",{"title":216,"path":217,"stem":218,"children":219},"Core","\u002Fcore","core",[220,222,236,265],{"title":175,"path":217,"stem":221},"core\u002Findex",{"title":223,"path":224,"stem":225,"children":226,"page":235},"Getting Started","\u002Fcore\u002Fgetting-started","core\u002F1.getting-started",[227,231],{"title":228,"path":229,"stem":230},"Installation","\u002Fcore\u002Fgetting-started\u002Finstallation","core\u002F1.getting-started\u002F1.installation",{"title":232,"path":233,"stem":234},"First use","\u002Fcore\u002Fgetting-started\u002Ffirst-use","core\u002F1.getting-started\u002F2.first-use",false,{"title":237,"path":238,"stem":239,"children":240,"page":235},"Guides","\u002Fcore\u002Fguides","core\u002F2.guides",[241,245,249,253,257,261],{"title":242,"path":243,"stem":244},"Parsing and validating","\u002Fcore\u002Fguides\u002Fparsing-and-validating","core\u002F2.guides\u002F1.parsing-and-validating",{"title":246,"path":247,"stem":248},"Serializing and sharing","\u002Fcore\u002Fguides\u002Fserializing-and-sharing","core\u002F2.guides\u002F2.serializing-and-sharing",{"title":250,"path":251,"stem":252},"Unit conversion","\u002Fcore\u002Fguides\u002Funit-conversion","core\u002F2.guides\u002F3.unit-conversion",{"title":254,"path":255,"stem":256},"Vocabularies and textures","\u002Fcore\u002Fguides\u002Fvocabularies-and-textures","core\u002F2.guides\u002F4.vocabularies-and-textures",{"title":258,"path":259,"stem":260},"Water quality vocabulary","\u002Fcore\u002Fguides\u002Fwater-quality-vocabulary","core\u002F2.guides\u002F5.water-quality-vocabulary",{"title":262,"path":263,"stem":264},"Versions and time zones","\u002Fcore\u002Fguides\u002Fversions-and-time-zones","core\u002F2.guides\u002F6.versions-and-time-zones",{"title":266,"path":267,"stem":268,"children":269},"API reference","\u002Fcore\u002Fapi","core\u002Fapi\u002Findex",[270],{"title":266,"path":267,"stem":268},{"title":272,"path":273,"stem":274,"children":275},"Format","\u002Fformat","format",[276,278,298,327,348,368,373],{"title":175,"path":273,"stem":277},"format\u002Findex",{"title":223,"path":279,"stem":280,"children":281,"page":235},"\u002Fformat\u002Fgetting-started","format\u002F1.getting-started",[282,286,290,294],{"title":283,"path":284,"stem":285},"What is .well?","\u002Fformat\u002Fgetting-started\u002Fwhat-is-well","format\u002F1.getting-started\u002F1.what-is-well",{"title":287,"path":288,"stem":289},"For geologists","\u002Fformat\u002Fgetting-started\u002Ffor-geologists","format\u002F1.getting-started\u002F2.for-geologists",{"title":291,"path":292,"stem":293},"For developers","\u002Fformat\u002Fgetting-started\u002Ffor-developers","format\u002F1.getting-started\u002F3.for-developers",{"title":295,"path":296,"stem":297},"Your first .well file","\u002Fformat\u002Fgetting-started\u002Ffirst-well-file","format\u002F1.getting-started\u002F4.first-well-file",{"title":299,"path":300,"stem":301,"children":302,"page":235},"Concepts","\u002Fformat\u002Fconcepts","format\u002F2.concepts",[303,307,311,315,319,323],{"title":304,"path":305,"stem":306},"Depths and intervals","\u002Fformat\u002Fconcepts\u002Fdepths-and-intervals","format\u002F2.concepts\u002F1.depths-and-intervals",{"title":308,"path":309,"stem":310},"Units and precision","\u002Fformat\u002Fconcepts\u002Funits-and-precision","format\u002F2.concepts\u002F2.units-and-precision",{"title":312,"path":313,"stem":314},"Vocabularies","\u002Fformat\u002Fconcepts\u002Fvocabularies","format\u002F2.concepts\u002F3.vocabularies",{"title":316,"path":317,"stem":318},"Profiles","\u002Fformat\u002Fconcepts\u002Fprofiles","format\u002F2.concepts\u002F4.profiles",{"title":320,"path":321,"stem":322},"Versions and deprecation","\u002Fformat\u002Fconcepts\u002Fversions-and-deprecation","format\u002F2.concepts\u002F5.versions-and-deprecation",{"title":324,"path":325,"stem":326},"Extensibility","\u002Fformat\u002Fconcepts\u002Fextensibility","format\u002F2.concepts\u002F6.extensibility",{"title":237,"path":328,"stem":329,"children":330,"page":235},"\u002Fformat\u002Fguides","format\u002F3.guides",[331,335,338,340,344],{"title":332,"path":333,"stem":334},"Writing a .well by hand","\u002Fformat\u002Fguides\u002Fwriting-by-hand","format\u002F3.guides\u002F1.writing-by-hand",{"title":164,"path":336,"stem":337},"\u002Fformat\u002Fguides\u002Fconverting-a-report","format\u002F3.guides\u002F2.converting-a-report",{"title":132,"path":131,"stem":339},"format\u002F3.guides\u002F3.validating",{"title":341,"path":342,"stem":343},"Extending for your own needs","\u002Fformat\u002Fguides\u002Fextending","format\u002F3.guides\u002F4.extending",{"title":345,"path":346,"stem":347},"Building an editor or database on .well","\u002Fformat\u002Fguides\u002Fbuilding-on-well","format\u002F3.guides\u002F5.building-on-well",{"title":349,"path":350,"stem":351,"children":352},"Overview","\u002Fformat\u002Freference","format\u002F4.reference\u002Findex",[353,354,358,362],{"title":349,"path":350,"stem":351},{"title":355,"path":356,"stem":357},"JSON Schema","\u002Fformat\u002Freference\u002Fjson-schema","format\u002F4.reference\u002F1.json-schema",{"title":359,"path":360,"stem":361},"Example wells","\u002Fformat\u002Freference\u002Fexamples","format\u002F4.reference\u002F2.examples",{"title":363,"path":364,"stem":365,"children":366},"Object reference","\u002Fformat\u002Freference\u002Fobjects","format\u002Freference\u002Fobjects\u002Findex",[367],{"title":363,"path":364,"stem":365},{"title":369,"path":146,"stem":370,"children":371},"About the spec","format\u002F5.spec\u002Findex",[372],{"title":369,"path":146,"stem":370},{"title":374,"path":375,"stem":376},"Changelog","\u002Fformat\u002Fchangelog","format\u002F6.changelog",{"title":378,"path":379,"stem":380,"children":381},"Render","\u002Frender","render",[382,384,394,426],{"title":175,"path":379,"stem":383},"render\u002Findex",{"title":223,"path":385,"stem":386,"children":387,"page":235},"\u002Frender\u002Fgetting-started","render\u002F1.getting-started",[388,391],{"title":228,"path":389,"stem":390},"\u002Frender\u002Fgetting-started\u002Finstallation","render\u002F1.getting-started\u002F1.installation",{"title":232,"path":392,"stem":393},"\u002Frender\u002Fgetting-started\u002Ffirst-use","render\u002F1.getting-started\u002F2.first-use",{"title":237,"path":395,"stem":396,"children":397,"page":235},"\u002Frender\u002Fguides","render\u002F2.guides",[398,402,406,410,414,418,422],{"title":399,"path":400,"stem":401},"Panels and layout","\u002Frender\u002Fguides\u002Fpanels-and-layout","render\u002F2.guides\u002F1.panels-and-layout",{"title":403,"path":404,"stem":405},"Layers and labels","\u002Frender\u002Fguides\u002Flayers-and-labels","render\u002F2.guides\u002F2.layers-and-labels",{"title":407,"path":408,"stem":409},"Theming","\u002Frender\u002Fguides\u002Ftheming","render\u002F2.guides\u002F3.theming",{"title":411,"path":412,"stem":413},"Locale and units","\u002Frender\u002Fguides\u002Flocale-and-units","render\u002F2.guides\u002F4.locale-and-units",{"title":415,"path":416,"stem":417},"Legends","\u002Frender\u002Fguides\u002Flegends","render\u002F2.guides\u002F5.legends",{"title":419,"path":420,"stem":421},"Zoom, pan and highlights","\u002Frender\u002Fguides\u002Finteraction","render\u002F2.guides\u002F6.interaction",{"title":423,"path":424,"stem":425},"Using it in a framework","\u002Frender\u002Fguides\u002Fframeworks","render\u002F2.guides\u002F7.frameworks",{"title":266,"path":427,"stem":428,"children":429},"\u002Frender\u002Fapi","render\u002Fapi\u002Findex",[430],{"title":266,"path":427,"stem":428},{"title":432,"path":433,"stem":434,"children":435},"Utils","\u002Futils","utils",[436,438,448,484],{"title":175,"path":433,"stem":437},"utils\u002Findex",{"title":223,"path":439,"stem":440,"children":441,"page":235},"\u002Futils\u002Fgetting-started","utils\u002F1.getting-started",[442,445],{"title":228,"path":443,"stem":444},"\u002Futils\u002Fgetting-started\u002Finstallation","utils\u002F1.getting-started\u002F1.installation",{"title":232,"path":446,"stem":447},"\u002Futils\u002Fgetting-started\u002Ffirst-use","utils\u002F1.getting-started\u002F2.first-use",{"title":237,"path":449,"stem":450,"children":451,"page":235},"\u002Futils\u002Fguides","utils\u002F2.guides",[452,456,460,464,468,472,476,480],{"title":453,"path":454,"stem":455},"Geometry and volumes","\u002Futils\u002Fguides\u002Fgeometry-and-volumes","utils\u002F2.guides\u002F1.geometry-and-volumes",{"title":457,"path":458,"stem":459},"Water levels and pumping tests","\u002Futils\u002Fguides\u002Fpumping-tests","utils\u002F2.guides\u002F2.pumping-tests",{"title":461,"path":462,"stem":463},"Permits","\u002Futils\u002Fguides\u002Fpermits","utils\u002F2.guides\u002F3.permits",{"title":465,"path":466,"stem":467},"Operation and production","\u002Futils\u002Fguides\u002Foperation","utils\u002F2.guides\u002F4.operation",{"title":469,"path":470,"stem":471},"Water quality","\u002Futils\u002Fguides\u002Fwater-quality","utils\u002F2.guides\u002F5.water-quality",{"title":473,"path":474,"stem":475},"Logger import","\u002Futils\u002Fguides\u002Flogger-import","utils\u002F2.guides\u002F6.logger-import",{"title":477,"path":478,"stem":479},"SIAGAS import","\u002Futils\u002Fguides\u002Fsiagas-import","utils\u002F2.guides\u002F7.siagas-import",{"title":481,"path":482,"stem":483},"Formatting","\u002Futils\u002Fguides\u002Fformatting","utils\u002F2.guides\u002F8.formatting",{"title":266,"path":485,"stem":486,"children":487},"\u002Futils\u002Fapi","utils\u002Fapi\u002Findex",[488],{"title":266,"path":485,"stem":486},[490],{"title":272,"path":273,"stem":274,"children":491,"page":235},[492],{"title":493,"path":146,"stem":494,"children":495,"page":235},"Spec","format\u002Fspec",[496,505,514],{"title":497,"path":498,"stem":499,"children":500,"page":235},"Reference","\u002Fformat\u002Fspec\u002Freference","format\u002Fspec\u002Freference",[501],{"title":502,"path":503,"stem":504},"FGDC Texture Patterns Reference","\u002Fformat\u002Fspec\u002Freference\u002Ffgdc-textures","format\u002Fspec\u002Freference\u002Ffgdc-textures",{"title":506,"path":507,"stem":508,"children":509,"page":235},"V1","\u002Fformat\u002Fspec\u002Fv1","format\u002Fspec\u002Fv1",[510],{"title":511,"path":512,"stem":513},".well File Format Specification","\u002Fformat\u002Fspec\u002Fv1\u002Fwell-format","format\u002Fspec\u002Fv1\u002Fwell-format",{"title":515,"path":516,"stem":517,"children":518,"page":235},"V2","\u002Fformat\u002Fspec\u002Fv2","format\u002Fspec\u002Fv2",[519,523,527,531,535],{"title":520,"path":521,"stem":522},".well File Format Specification — Version 2.4: Format Reference","\u002Fformat\u002Fspec\u002Fv2\u002Fformat-reference","format\u002Fspec\u002Fv2\u002Fformat-reference",{"title":524,"path":525,"stem":526},".well File Format Specification — Version 2.4: Interoperability","\u002Fformat\u002Fspec\u002Fv2\u002Finteroperability","format\u002Fspec\u002Fv2\u002Finteroperability",{"title":528,"path":529,"stem":530},".well File Format Specification — Version 2.4: Object Schemas","\u002Fformat\u002Fspec\u002Fv2\u002Fobject-schemas","format\u002Fspec\u002Fv2\u002Fobject-schemas",{"title":532,"path":533,"stem":534},".well File Format Specification — Version 2.4: Overview","\u002Fformat\u002Fspec\u002Fv2\u002Foverview","format\u002Fspec\u002Fv2\u002Foverview",{"title":536,"path":537,"stem":538},".well File Format Specification — Version 2.4: Water Quality","\u002Fformat\u002Fspec\u002Fv2\u002Fwater-quality","format\u002Fspec\u002Fv2\u002Fwater-quality",[540,545,551],{"title":216,"path":217,"stem":218,"children":541,"page":235},[542],{"title":127,"path":543,"stem":544},"\u002Fcore\u002Fchangelog","core\u002FCHANGELOG",{"title":378,"path":379,"stem":380,"children":546,"page":235},[547],{"title":548,"path":549,"stem":550},"@welldot\u002Frender","\u002Frender\u002Fchangelog","render\u002FCHANGELOG",{"title":432,"path":433,"stem":434,"children":552,"page":235},[553],{"title":554,"path":555,"stem":556},"@welldot\u002Futils","\u002Futils\u002Fchangelog","utils\u002FCHANGELOG",1793050492598]