diff --git "a/PRODUCT_DOCS/anolisos/8.8/\345\217\221\350\241\214\350\257\264\346\230\216/\345\206\205\346\240\270\344\273\243\347\240\201\351\227\250\347\246\201\347\263\273\347\273\237\344\275\277\347\224\250\346\214\207\345\215\227.md" "b/PRODUCT_DOCS/anolisos/8.8/\345\217\221\350\241\214\350\257\264\346\230\216/\345\206\205\346\240\270\344\273\243\347\240\201\351\227\250\347\246\201\347\263\273\347\273\237\344\275\277\347\224\250\346\214\207\345\215\227.md"
new file mode 100644
index 0000000000000000000000000000000000000000..e93644d38d6d43ff6522124138e2b3521d3adc05
--- /dev/null
+++ "b/PRODUCT_DOCS/anolisos/8.8/\345\217\221\350\241\214\350\257\264\346\230\216/\345\206\205\346\240\270\344\273\243\347\240\201\351\227\250\347\246\201\347\263\273\347\273\237\344\275\277\347\224\250\346\214\207\345\215\227.md"
@@ -0,0 +1,66 @@
+
+# 背景介绍
+龙蜥操作系统内核代码已经在Gitee上正式开源,与此同时,内核代码门禁系统也同步启用,并向社区开发者提供两种模式的代码检查,以保障龙蜥内核代码质量的稳定性和可靠性。更多内核代码开发流程,请参考[Cloud Kernel开发流程](https://gitee.com/anolis/cloud-kernel/wikis/Cloud%20Kernel%20%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B)。
+
+# PR模式
+开发者fork内核代码仓库,并在本地进行开发,向内核代码仓库提交代码合入请求,即PR请求时,会自动触发代码门禁检查流程,并由社区机器人通过评论方式实时反馈流程进度,开发者可根据机器人的回复,在PR中评论相应的命令,以推进流程继续,直至通过评审和测试,最终合入内核代码仓库。
+
+## CLA检查
+每当有新的PR提交时,代码门禁首先检查PR提交者的贡献者协议(CLA协议)签署情况,如果已签署,则会自动进入代码测试流程,并在PR中打上anolis_cla_pass,anolis_testing两个标签;如果未签署,则会在PR中打上anolis_cla_fail标签,并评论PR提示提交者未签署CLA协议。
当开发者签署CLA协议之后,可以在所提交的PR中评论/check-cla重新检查协议签署情况,如果通过,则会把anolis_cla_fail标签修改为anolis_cla_pass标签,并评论PR提示开发者后续操作;如果未签署,则会评论PR提示提交者未签署CLA协议。
评论/check-cla不会触发测试流程。
+
+## 代码测试
+如果开发者已签署CLA协议,则在提交新的PR时自动触发代码测试流程,开发者可关注PR标签,存在anolis_testing则表示目前该PR正在进行代码测试,当测试完成之后,会把测试结果和详细结果链接一起评论到PR中,并根据测试结果修改anolis_testing标签,测试成功将标签修改为anolis_test_pass,测试失败将标签修改为anolis_test_fail。
开发者可以评论/retest重新进入代码测试流程,前提是CLA检查通过或者测试失败。同时,当机器人检测到PR中的代码发生了变化时,会重置当前测试状态,无论成功还是失败。如果在代码测试流程中更新了提交的代码,会增加code_update标签,当测试完成后,无论成功失败,本次测试结果均为失败。
maintainer可以评论/skip-test帮助开发者跳过某些可以忽略测试失败的场景。
目前线上测试机数量较少,且均为虚拟机,编译速度较慢,请开发者耐心等待。
+
+## 自动合入
+当PR的测试通过时,即标签中存在anolis_test_pass时,需要maintainer对PR进行review,如果review不通过,需要开发者根据maintainer的提示修改代码,并重新触发测试,修改commit log和PR文本等不修改代码的行为,不需要重新触发测试。
当review通过之后,相关review的人员可以在评论中回复自己的RVB签名,由maintainer评论/merge进行自动何如。自动合入首先检查当前PR中的所有签名信息,按照规则进行排列,然后合入PR,在本地代码中更新,对新合入的代码进行签名添加和PR链接添加,上述流程全部成功之后,本次PR才算合入完成。
+
+# 自助模式
+开发者fork内核代码仓库,并在本地进行开发,无需提交PR也可使用代码门禁的自助检测模式对已开发的代码进行检测,自助模式没有CLA检查和签名检查,仅触发代码测试流程,能够帮助开发者提前了解代码质量情况和问题。
使用社区帐号登录[CBC](https://cbc.openanolis.cn),点击创建任务,首先选择fork仓库的源分支,然后将默认的代码仓库和代码分支修改为开发者自己的仓库和分支,其余选项可按照自身需求进行选择,最后点击确定即可进入代码测试流程,等待执行完毕,即可点击查看,跳转到任务详情页,查看详细的执行日志。
由于测试资源紧张,每位开发者仅允许创建两个执行的任务(一个x86一个arm,也可以两个x86任务),需等待之前提交的任务完成之后才能再次提交新的任务,每次检测提交的commit个数不能超过50个。
+
+# 附录
+
+## 命令说明
+| 回复命令 | 功能 | 可使用人员 |
+| --- | --- | --- |
+| /check-cla | 检查PR提交者签署CLA协议情况 | PR提交者,openanolis企业成员 |
+| /retest | 重新进入代码测试流程 | PR提交者,openanolis企业成员 |
+| /skip-test | 跳过代码测试流程 | maintainer |
+| /merge | 进行代码合入 | maintainer |
+
+
+## 标签说明
+| 标签 | 说明 |
+| --- | --- |
+| anolis_cla_pass | PR提交者已签署CLA协议 |
+| anolis_cla_fail | PR提交者未签署CLA协议 |
+| anolis_testing | 代码测试中 |
+| code_update | 代码测试中发生了代码更新 |
+| anolis_test_pass | 代码测试通过 |
+| anolis_test_fail | 代码测试未通过 |
+| anolis_merge_pass | 自动合入通过 |
+| anolis_merge_fail | 自动合入未通过 |
+
+
+## 检测说明
+| 检测项 | 检测目标 | 检测范围 |
+| --- | --- | --- |
+| review检测 | 检查每个commit log是否包含规范字段,例如#ANBZ等 | 每一个commit |
+| checkpatch检测 | 与上游社区的checkpatch检测保持一致,范围根据情况有一定适配 | 每一个龙蜥自研的commit |
+| build检测 | anolis_defconfig | 每一个commit,区分aarch64与x86_64 |
+| kconfig检测 | 检测所有的config文件是否有新的config选项未设置,防止编译出错 | 只检测所有提交中的最后一个commit,区分aarch64与x86_64 |
+| 全量build检测 | allnoconfig,allyesconfig,defconfig,anolis_defconfig,anolis-debug_defconfig | 只检测所有提交中的最后一个commit,区分aarch64与x86_64 |
+| 启动检测 | 检测PR代码所构建出的内核rpm安装之后能否正常启动 | 只检测所有提交中的最后一个commit,区分aarch64与x86_64 |
+
+
+## checkpatch规则
+| 包含anolis自研前缀 | 修改内核配置 | 来自upstream | 检查checkpatch |
+| --- | --- | --- | --- |
+| 是 | 是 | 是(warning提示) | 是 |
+| 是 | 是 | 否 | 是 |
+| 是 | 否 | 是(warning提示) | 是 |
+| 是 | 否 | 否 | 是 |
+| 否 | 是 | 是(warning提示) | 否 |
+| 否 | 是 | 否 | 否 |
+| 否 | 否 | 是 | 否 |
+| 否 | 否 | 否(error报错) | 否 |
+