[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698ZS447WFTM42FZ2SWGGBN":3,"skill-same:01M698ZS447WFTM42FZ2SWGGBN":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M698ZS447WFTM42FZ2SWGGBN","add-error-code",null,"How to add a new error code in BoringSSL.","google\u002Fboringssl","google","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1342004?v=4","01M698VYEFDM0VJBZDYYJ2T83S","Google","01M698ZPGB97EVW1JQYF7834SV",2299,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fadd_error_code\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30],"add error code","code","add","error","how","how to","new","2026-11-10 10:12:30",false,"---\nname: add-error-code\ndescription: How to add a new error code in BoringSSL.\n---\n\n# Adding a New Error Code\n\nTo add a new error code, you only need to use it in the source code and then run the error generation script. The script will automatically define it in the header and update the error database.\n\n## Steps\n\n1.  **Use the Error Code**:\n    *   Use the new error code directly in your C\u002FC++ source file (e.g., `EVP_R_NEW_ERROR_CODE`). It must start with the correct library prefix (e.g., `EVP_R_`, `SSL_R_`).\n\n2.  **Run the Error Generator**:\n    *   Run [util\u002Fmake_errors.go](..\u002F..\u002F..\u002Futil\u002Fmake_errors.go), passing the lowercase library name (e.g., `evp`, `ssl`).\n    *   Example:\n        ```bash\n        go run util\u002Fmake_errors.go evp\n        ```\n    *   The script will automatically:\n        *   Find the new error code in the source.\n        *   Assign it a numeric value.\n        *   Add the `#define` to the appropriate header in [include\u002Fopenssl](..\u002F..\u002F..\u002Finclude\u002Fopenssl).\n        *   Update the `.errordata` file in [crypto\u002Ferr](..\u002F..\u002F..\u002Fcrypto\u002Ferr).\n","# Adding a New Error Code\n\nTo add a new error code, you only need to use it in the source code and then run the error generation script. The script will automatically define it in the header and update the error database.\n\n## Steps\n\n1.  **Use the Error Code**:\n    *   Use the new error code directly in your C\u002FC++ source file (e.g., `EVP_R_NEW_ERROR_CODE`). It must start with the correct library prefix (e.g., `EVP_R_`, `SSL_R_`).\n\n2.  **Run the Error Generator**:\n    *   Run [util\u002Fmake_errors.go](..\u002F..\u002F..\u002Futil\u002Fmake_errors.go), passing the lowercase library name (e.g., `evp`, `ssl`).\n    *   Example:\n        ```bash\n        go run util\u002Fmake_errors.go evp\n        ```\n    *   The script will automatically:\n        *   Find the new error code in the source.\n        *   Assign it a numeric value.\n        *   Add the `#define` to the appropriate header in [include\u002Fopenssl](..\u002F..\u002F..\u002Finclude\u002Fopenssl).\n        *   Update the `.errordata` file in [crypto\u002Ferr](..\u002F..\u002F..\u002Fcrypto\u002Ferr).\n",{"name":5,"description":7},"main","ed9209cff8b5a2fbc6c10050f29b3355048bda85","_agents\u002Fskills\u002Fadd_error_code",923,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl","https:\u002F\u002Fboringssl.googlesource.com\u002Fboringssl","https:\u002F\u002Fgithub.com\u002Fgoogle","https:\u002F\u002Fopensource.google\u002F","Google ❤️ Open Source","2026-11-13 01:40:57",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add google\u002Fboringssl --skill add-error-code",{"tool":52,"command":53},"bunx","bunx skills add google\u002Fboringssl --skill add-error-code",{"tool":55,"command":56},"pnpm","pnpm dlx skills add google\u002Fboringssl --skill add-error-code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fadd_error_code\u002FSKILL.md",true,[],[61,73,89,102,113],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":31},"01M698ZYHYJXZFCGPVBNB91BEV","update-pregenerated-files","How to regenerate\u002Fupdate pre-generated files (e.g., perlasm, build files) in BoringSSL.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fupdate_pregenerated_files\u002FSKILL.md",[],[68,69,70,29,28,71,72],"update pregenerated files","update","files","generated","build",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":31},"01M698ZXF98A8V66W990ZYVBWA","run-ssl-go-tests","How to run BoringSSL's ssl\u002Ftest\u002Frunner suite (protocol-level BoGo tests)","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Frun_ssl_go_tests\u002FSKILL.md",[],[80,81,82,83,84,85,29,86,28,87,88],"run","ssl","run ssl go tests","go","tests","suite","runner","protocol","test",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":100,"publishedAt":31},"01M698ZWCBGN5MBF9BCASKEK9J","build-and-test","How to build BoringSSL and run its tests.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fbuild_and_test\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[72,88,101,29,84,28,80],"build and test",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":31},"01M698ZV828VG3ZE75RFCNXY1Q","add-source-file","How to add a new source file to the BoringSSL build.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fadd_source_file\u002FSKILL.md",[],[109,110,26,111,112,30,29,72,28],"source","add source","file","add source file",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":31},"01M698ZT55F2SQHHHP9M66TENB","add-object-nid-oid","How to add a new object with a NID and\u002For OID to BoringSSL.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fboringssl\u002Fblob\u002Fmain\u002F_agents\u002Fskills\u002Fadd_object_nid_oid\u002FSKILL.md",[],[120,26,121,30,122,29,28],"object","add object nid oid","with"]