@rosetears/aili-pi 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/THIRD_PARTY_NOTICES.md +64 -0
  4. package/extensions/index.ts +6 -0
  5. package/install.sh +5 -0
  6. package/manifests/adapter-evidence.json +45 -0
  7. package/manifests/capabilities.json +124 -0
  8. package/manifests/live-verification.json +26 -0
  9. package/manifests/provenance.json +71 -0
  10. package/manifests/roles.json +474 -0
  11. package/manifests/sbom.json +7797 -0
  12. package/manifests/skill-compatibility.json +8100 -0
  13. package/manifests/subagent-provenance.json +37 -0
  14. package/package.json +91 -0
  15. package/prompts/build.md +8 -0
  16. package/prompts/define.md +8 -0
  17. package/prompts/ideate.md +8 -0
  18. package/prompts/local-review.md +8 -0
  19. package/prompts/ship.md +8 -0
  20. package/roles/agent-evaluator.md +47 -0
  21. package/roles/ai-regression-scout.md +47 -0
  22. package/roles/browser-qa-runner.md +47 -0
  23. package/roles/code-reviewer.md +47 -0
  24. package/roles/code-scout.md +47 -0
  25. package/roles/convergence-reviewer.md +55 -0
  26. package/roles/doc-researcher.md +47 -0
  27. package/roles/e2e-artifact-runner.md +47 -0
  28. package/roles/implementer.md +47 -0
  29. package/roles/opensource-sanitizer.md +47 -0
  30. package/roles/plan-auditor.md +47 -0
  31. package/roles/pr-test-analyzer.md +47 -0
  32. package/roles/security-auditor.md +47 -0
  33. package/roles/silent-failure-reviewer.md +47 -0
  34. package/roles/spec-miner.md +47 -0
  35. package/roles/test-coverage-reviewer.md +47 -0
  36. package/roles/test-engineer.md +48 -0
  37. package/roles/web-performance-auditor.md +47 -0
  38. package/roles/web-researcher.md +47 -0
  39. package/scripts/apply-adapter-evidence.ts +73 -0
  40. package/scripts/bootstrap.sh +180 -0
  41. package/scripts/generate-provenance.ts +143 -0
  42. package/scripts/local-package-e2e.ts +51 -0
  43. package/scripts/sync-roles.ts +213 -0
  44. package/scripts/sync-skills.ts +356 -0
  45. package/scripts/validate-runtime.ts +11 -0
  46. package/skills/academic-paper-review/SKILL.md +81 -0
  47. package/skills/agents-md-initialization/SKILL.md +121 -0
  48. package/skills/agents-md-initialization/references/agents-template.md +83 -0
  49. package/skills/agents-md-initialization/references/agents_md.py +215 -0
  50. package/skills/ai-regression-scout/SKILL.md +24 -0
  51. package/skills/aili-delivery-flow/SKILL.md +125 -0
  52. package/skills/aili-delivery-flow/references/artifact-contracts.md +138 -0
  53. package/skills/aili-delivery-flow/references/backend-routing.md +40 -0
  54. package/skills/aili-delivery-flow/references/build-execution-loop.md +113 -0
  55. package/skills/aili-delivery-flow/references/build-goal-mode.md +3 -0
  56. package/skills/aili-delivery-flow/references/direct-vs-delegated-work.md +38 -0
  57. package/skills/aili-delivery-flow/references/implementation-packages.md +54 -0
  58. package/skills/aili-delivery-flow/references/lifecycle.md +127 -0
  59. package/skills/aili-delivery-flow/references/protocols/acceptance-test-plan.md +18 -0
  60. package/skills/aili-delivery-flow/references/protocols/alignment-questionnaire.md +10 -0
  61. package/skills/aili-delivery-flow/references/protocols/closeout-report.md +101 -0
  62. package/skills/aili-delivery-flow/references/protocols/compact-evidence-pack.md +46 -0
  63. package/skills/aili-delivery-flow/references/protocols/idea-brief.md +10 -0
  64. package/skills/aili-delivery-flow/references/protocols/implementation-package.md +53 -0
  65. package/skills/aili-delivery-flow/references/protocols/research-evidence-pack.md +19 -0
  66. package/skills/aili-delivery-flow/references/protocols/review-report.md +7 -0
  67. package/skills/aili-delivery-flow/references/protocols/spec-draft.md +12 -0
  68. package/skills/aili-delivery-flow/references/protocols/subagent-result.md +60 -0
  69. package/skills/aili-delivery-flow/references/protocols/subagent-task-packet.md +29 -0
  70. package/skills/aili-delivery-flow/references/protocols/worktree-context.md +109 -0
  71. package/skills/aili-delivery-flow/references/questionnaire-policy.md +62 -0
  72. package/skills/aili-delivery-flow/references/review-repair-loop.md +16 -0
  73. package/skills/aili-delivery-flow/references/test-document-policy.md +35 -0
  74. package/skills/android-native-dev/SKILL.md +722 -0
  75. package/skills/android-native-dev/references/accessibility.md +209 -0
  76. package/skills/android-native-dev/references/adaptive-screens.md +231 -0
  77. package/skills/android-native-dev/references/design-style-guide.md +365 -0
  78. package/skills/android-native-dev/references/functional-requirements.md +229 -0
  79. package/skills/android-native-dev/references/motion-system.md +203 -0
  80. package/skills/android-native-dev/references/performance-stability.md +223 -0
  81. package/skills/android-native-dev/references/privacy-security.md +244 -0
  82. package/skills/android-native-dev/references/testing.md +554 -0
  83. package/skills/android-native-dev/references/visual-design.md +246 -0
  84. package/skills/api-and-interface-design/SKILL.md +318 -0
  85. package/skills/browser-qa/SKILL.md +32 -0
  86. package/skills/browser-testing-with-devtools/SKILL.md +323 -0
  87. package/skills/build-failure-repair/SKILL.md +49 -0
  88. package/skills/chart-visualization/SKILL.md +73 -0
  89. package/skills/ci-cd-and-automation/SKILL.md +353 -0
  90. package/skills/code-review-and-quality/SKILL.md +375 -0
  91. package/skills/code-review-quality-gates/SKILL.md +132 -0
  92. package/skills/code-simplification/SKILL.md +371 -0
  93. package/skills/comment-accuracy-review/SKILL.md +37 -0
  94. package/skills/consulting-analysis/SKILL.md +69 -0
  95. package/skills/context-engineering/SKILL.md +375 -0
  96. package/skills/coverage-review/SKILL.md +24 -0
  97. package/skills/data-analysis/SKILL.md +74 -0
  98. package/skills/deprecation-and-migration/SKILL.md +222 -0
  99. package/skills/documentation-and-adrs/SKILL.md +330 -0
  100. package/skills/e2e-artifact-handling/SKILL.md +30 -0
  101. package/skills/evidence-scoped-retrospective/SKILL.md +156 -0
  102. package/skills/explain-by-allegory/SKILL.md +99 -0
  103. package/skills/flutter-dev/SKILL.md +162 -0
  104. package/skills/flutter-dev/references/animations.md +497 -0
  105. package/skills/flutter-dev/references/bloc-state.md +281 -0
  106. package/skills/flutter-dev/references/forms.md +656 -0
  107. package/skills/flutter-dev/references/gorouter-navigation.md +257 -0
  108. package/skills/flutter-dev/references/localization.md +510 -0
  109. package/skills/flutter-dev/references/networking.md +566 -0
  110. package/skills/flutter-dev/references/performance.md +305 -0
  111. package/skills/flutter-dev/references/platform-specific.md +417 -0
  112. package/skills/flutter-dev/references/project-structure.md +273 -0
  113. package/skills/flutter-dev/references/riverpod-state.md +232 -0
  114. package/skills/flutter-dev/references/testing.md +364 -0
  115. package/skills/flutter-dev/references/widget-patterns.md +233 -0
  116. package/skills/frontend-dev/SKILL.md +468 -0
  117. package/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  118. package/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  119. package/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  120. package/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +93 -0
  121. package/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  122. package/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +93 -0
  123. package/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
  124. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  125. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  126. package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  127. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  128. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  129. package/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  130. package/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  131. package/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +93 -0
  132. package/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
  133. package/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +94 -0
  134. package/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
  135. package/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
  136. package/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +93 -0
  137. package/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
  138. package/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +93 -0
  139. package/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
  140. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  141. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  142. package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  143. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  144. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  145. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  146. package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  147. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  148. package/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  149. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  150. package/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  151. package/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  152. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  153. package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  154. package/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +93 -0
  155. package/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
  156. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  157. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  158. package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  159. package/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
  160. package/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
  161. package/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +93 -0
  162. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  163. package/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  164. package/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
  165. package/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  166. package/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
  167. package/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +93 -0
  168. package/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
  169. package/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
  170. package/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +93 -0
  171. package/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
  172. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  173. package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  174. package/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
  175. package/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +93 -0
  176. package/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
  177. package/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  178. package/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +93 -0
  179. package/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +93 -0
  180. package/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  181. package/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  182. package/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +93 -0
  183. package/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  184. package/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +93 -0
  185. package/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  186. package/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  187. package/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +93 -0
  188. package/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
  189. package/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +93 -0
  190. package/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
  191. package/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
  192. package/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  193. package/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
  194. package/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +93 -0
  195. package/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
  196. package/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +93 -0
  197. package/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  198. package/skills/frontend-dev/references/asset-prompt-guide.md +43 -0
  199. package/skills/frontend-dev/references/env-setup.md +33 -0
  200. package/skills/frontend-dev/references/minimax-cli-reference.md +133 -0
  201. package/skills/frontend-dev/references/minimax-image-guide.md +65 -0
  202. package/skills/frontend-dev/references/minimax-music-guide.md +216 -0
  203. package/skills/frontend-dev/references/minimax-tts-guide.md +78 -0
  204. package/skills/frontend-dev/references/minimax-video-guide.md +82 -0
  205. package/skills/frontend-dev/references/minimax-voice-catalog.md +685 -0
  206. package/skills/frontend-dev/references/motion-recipes.md +407 -0
  207. package/skills/frontend-dev/references/troubleshooting.md +85 -0
  208. package/skills/frontend-dev/scripts/minimax_image.py +137 -0
  209. package/skills/frontend-dev/scripts/minimax_music.py +157 -0
  210. package/skills/frontend-dev/scripts/minimax_tts.py +127 -0
  211. package/skills/frontend-dev/scripts/minimax_video.py +187 -0
  212. package/skills/frontend-dev/templates/generator_template.js +223 -0
  213. package/skills/frontend-dev/templates/viewer.html +599 -0
  214. package/skills/frontend-ui-engineering/SKILL.md +367 -0
  215. package/skills/fullstack-dev/SKILL.md +819 -0
  216. package/skills/fullstack-dev/references/api-design.md +444 -0
  217. package/skills/fullstack-dev/references/auth-flow.md +165 -0
  218. package/skills/fullstack-dev/references/db-schema.md +706 -0
  219. package/skills/fullstack-dev/references/django-best-practices.md +466 -0
  220. package/skills/fullstack-dev/references/environment-management.md +78 -0
  221. package/skills/fullstack-dev/references/release-checklist.md +278 -0
  222. package/skills/fullstack-dev/references/technology-selection.md +254 -0
  223. package/skills/fullstack-dev/references/testing-strategy.md +404 -0
  224. package/skills/git-workflow-and-versioning/SKILL.md +446 -0
  225. package/skills/github-evidence-triage/SKILL.md +115 -0
  226. package/skills/harness-evolution/SKILL.md +59 -0
  227. package/skills/harness-evolution/references/activation-matrix.md +13 -0
  228. package/skills/harness-evolution/references/approval-policy.md +20 -0
  229. package/skills/harness-evolution/references/change-report-template.md +33 -0
  230. package/skills/harness-evolution/references/component-taxonomy.md +19 -0
  231. package/skills/harness-evolution/references/verdict-policy.md +13 -0
  232. package/skills/harness-issue-triage/SKILL.md +72 -0
  233. package/skills/harness-issue-triage/references/component-diagnosis.md +25 -0
  234. package/skills/harness-issue-triage/references/triage-report-template.md +34 -0
  235. package/skills/harness-optimization-audit/SKILL.md +125 -0
  236. package/skills/idea-refine/SKILL.md +191 -0
  237. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  238. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  239. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/SKILL.upstream.md +178 -0
  240. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/examples.md +238 -0
  241. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/frameworks.md +99 -0
  242. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/refinement-criteria.md +113 -0
  243. package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/scripts/idea-refine.upstream.sh +15 -0
  244. package/skills/incremental-implementation/SKILL.md +252 -0
  245. package/skills/ios-application-dev/SKILL.md +212 -0
  246. package/skills/ios-application-dev/references/accessibility.md +259 -0
  247. package/skills/ios-application-dev/references/graphics-animation.md +350 -0
  248. package/skills/ios-application-dev/references/layout-system.md +199 -0
  249. package/skills/ios-application-dev/references/metal-shader.md +178 -0
  250. package/skills/ios-application-dev/references/navigation-patterns.md +175 -0
  251. package/skills/ios-application-dev/references/swift-coding-standards.md +757 -0
  252. package/skills/ios-application-dev/references/swiftui-design-guidelines.md +1167 -0
  253. package/skills/ios-application-dev/references/system-integration.md +401 -0
  254. package/skills/ios-application-dev/references/uikit-components.md +297 -0
  255. package/skills/local-review-gate/SKILL.md +207 -0
  256. package/skills/local-review-gate/references/addyosmani-code-review-rubric.md +33 -0
  257. package/skills/local-review-gate/references/codex-github-compatibility.md +26 -0
  258. package/skills/local-review-gate/references/ecc-code-review-adaptation.md +40 -0
  259. package/skills/local-review-gate/references/graphify-local-review.md +33 -0
  260. package/skills/local-review-gate/references/orchestration-adaptation.md +51 -0
  261. package/skills/local-review-gate/references/review-repair-lane-adaptation.md +46 -0
  262. package/skills/local-review-gate/references/upstream-provenance.md +61 -0
  263. package/skills/mature-project-pattern-research/SKILL.md +155 -0
  264. package/skills/mature-project-pattern-research/references/research-rubric.md +45 -0
  265. package/skills/minimax-docx/LICENSE +21 -0
  266. package/skills/minimax-docx/SKILL.md +273 -0
  267. package/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
  268. package/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
  269. package/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
  270. package/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
  271. package/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
  272. package/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
  273. package/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
  274. package/skills/minimax-docx/references/cjk_typography.md +357 -0
  275. package/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
  276. package/skills/minimax-docx/references/comments_guide.md +191 -0
  277. package/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
  278. package/skills/minimax-docx/references/design_principles.md +819 -0
  279. package/skills/minimax-docx/references/openxml_element_order.md +308 -0
  280. package/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
  281. package/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
  282. package/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
  283. package/skills/minimax-docx/references/openxml_namespaces.md +82 -0
  284. package/skills/minimax-docx/references/openxml_units.md +72 -0
  285. package/skills/minimax-docx/references/scenario_a_create.md +284 -0
  286. package/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
  287. package/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
  288. package/skills/minimax-docx/references/track_changes_guide.md +200 -0
  289. package/skills/minimax-docx/references/troubleshooting.md +506 -0
  290. package/skills/minimax-docx/references/typography_guide.md +294 -0
  291. package/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
  292. package/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
  293. package/skills/minimax-docx/scripts/docx_preview.sh +37 -0
  294. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  295. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  296. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  297. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  298. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  299. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  300. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  301. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  302. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  303. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  304. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  305. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  306. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  307. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  308. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  309. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  310. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  311. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  312. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  313. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  314. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  315. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  316. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  317. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  318. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  319. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  320. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  321. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  322. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  323. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  324. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  325. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  326. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  327. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  328. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  329. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  330. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  331. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  332. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  333. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  334. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  335. package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  336. package/skills/minimax-docx/scripts/env_check.sh +196 -0
  337. package/skills/minimax-docx/scripts/setup.ps1 +274 -0
  338. package/skills/minimax-docx/scripts/setup.sh +504 -0
  339. package/skills/minimax-pdf/README.md +222 -0
  340. package/skills/minimax-pdf/SKILL.md +218 -0
  341. package/skills/minimax-pdf/design/design.md +381 -0
  342. package/skills/minimax-pdf/scripts/cover.py +1579 -0
  343. package/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
  344. package/skills/minimax-pdf/scripts/fill_write.py +242 -0
  345. package/skills/minimax-pdf/scripts/make.sh +491 -0
  346. package/skills/minimax-pdf/scripts/merge.py +112 -0
  347. package/skills/minimax-pdf/scripts/palette.py +521 -0
  348. package/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
  349. package/skills/minimax-pdf/scripts/render_body.py +1052 -0
  350. package/skills/minimax-pdf/scripts/render_cover.js +111 -0
  351. package/skills/minimax-xlsx/SKILL.md +156 -0
  352. package/skills/minimax-xlsx/references/create.md +691 -0
  353. package/skills/minimax-xlsx/references/edit.md +684 -0
  354. package/skills/minimax-xlsx/references/fix.md +37 -0
  355. package/skills/minimax-xlsx/references/format.md +768 -0
  356. package/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
  357. package/skills/minimax-xlsx/references/read-analyze.md +97 -0
  358. package/skills/minimax-xlsx/references/validate.md +772 -0
  359. package/skills/minimax-xlsx/scripts/formula_check.py +422 -0
  360. package/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
  361. package/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
  362. package/skills/minimax-xlsx/scripts/style_audit.py +575 -0
  363. package/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
  364. package/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
  365. package/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
  366. package/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
  367. package/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
  368. package/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
  369. package/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
  370. package/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
  371. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  372. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  373. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
  374. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
  375. package/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  376. package/skills/newsletter-generation/SKILL.md +71 -0
  377. package/skills/oss-release-readiness/SKILL.md +47 -0
  378. package/skills/parallel-subagent-dispatch/SKILL.md +58 -0
  379. package/skills/performance-optimization/SKILL.md +364 -0
  380. package/skills/planning-and-task-breakdown/SKILL.md +290 -0
  381. package/skills/pptx-generator/SKILL.md +275 -0
  382. package/skills/pptx-generator/references/design-system.md +392 -0
  383. package/skills/pptx-generator/references/editing.md +162 -0
  384. package/skills/pptx-generator/references/pitfalls.md +112 -0
  385. package/skills/pptx-generator/references/pptxgenjs.md +420 -0
  386. package/skills/pptx-generator/references/slide-types.md +413 -0
  387. package/skills/pr-test-analysis/SKILL.md +24 -0
  388. package/skills/react-native-dev/SKILL.md +180 -0
  389. package/skills/react-native-dev/references/animations.md +254 -0
  390. package/skills/react-native-dev/references/components.md +124 -0
  391. package/skills/react-native-dev/references/engineering.md +527 -0
  392. package/skills/react-native-dev/references/forms.md +300 -0
  393. package/skills/react-native-dev/references/native-capabilities.md +163 -0
  394. package/skills/react-native-dev/references/navigation.md +271 -0
  395. package/skills/react-native-dev/references/networking.md +346 -0
  396. package/skills/react-native-dev/references/performance.md +215 -0
  397. package/skills/react-native-dev/references/state-management.md +230 -0
  398. package/skills/react-native-dev/references/styling.md +117 -0
  399. package/skills/react-native-dev/references/testing.md +341 -0
  400. package/skills/requirements-grilling/SKILL.md +447 -0
  401. package/skills/requirements-grilling/references/ADR-FORMAT.md +46 -0
  402. package/skills/requirements-grilling/references/CONTEXT-FORMAT.md +41 -0
  403. package/skills/requirements-grilling/references/INTERVIEW-PACKET-FORMAT.md +62 -0
  404. package/skills/requirements-grilling/references/MIT-LICENSE-MATT-POCOCK.md +25 -0
  405. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  406. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  407. package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/interview-me/SKILL.upstream.md +225 -0
  408. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/LICENSE +21 -0
  409. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/NOTICE.md +12 -0
  410. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/batch-grill-me/SKILL.upstream.md +15 -0
  411. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grill-me/SKILL.upstream.md +7 -0
  412. package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grilling/SKILL.upstream.md +12 -0
  413. package/skills/review-pipeline/SKILL.md +38 -0
  414. package/skills/rose-memory/SKILL.md +210 -0
  415. package/skills/rose-memory/references/README.md +48 -0
  416. package/skills/rose-memory/references/memory_cli.py +2384 -0
  417. package/skills/rose-memory/references/schema.sql +315 -0
  418. package/skills/security-and-hardening/SKILL.md +369 -0
  419. package/skills/session-handoff/SKILL.md +88 -0
  420. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
  421. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
  422. package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/handoff/SKILL.upstream.md +16 -0
  423. package/skills/session-handoff/scripts/session_handoff.py +764 -0
  424. package/skills/shader-dev/SKILL.md +316 -0
  425. package/skills/shader-dev/reference/ambient-occlusion.md +382 -0
  426. package/skills/shader-dev/reference/analytic-ray-tracing.md +651 -0
  427. package/skills/shader-dev/reference/anti-aliasing.md +71 -0
  428. package/skills/shader-dev/reference/atmospheric-scattering.md +571 -0
  429. package/skills/shader-dev/reference/camera-effects.md +80 -0
  430. package/skills/shader-dev/reference/cellular-automata.md +635 -0
  431. package/skills/shader-dev/reference/color-palette.md +481 -0
  432. package/skills/shader-dev/reference/csg-boolean-operations.md +466 -0
  433. package/skills/shader-dev/reference/domain-repetition.md +436 -0
  434. package/skills/shader-dev/reference/domain-warping.md +419 -0
  435. package/skills/shader-dev/reference/fluid-simulation.md +425 -0
  436. package/skills/shader-dev/reference/fractal-rendering.md +525 -0
  437. package/skills/shader-dev/reference/lighting-model.md +639 -0
  438. package/skills/shader-dev/reference/matrix-transform.md +535 -0
  439. package/skills/shader-dev/reference/multipass-buffer.md +571 -0
  440. package/skills/shader-dev/reference/normal-estimation.md +418 -0
  441. package/skills/shader-dev/reference/particle-system.md +589 -0
  442. package/skills/shader-dev/reference/path-tracing-gi.md +602 -0
  443. package/skills/shader-dev/reference/polar-uv-manipulation.md +521 -0
  444. package/skills/shader-dev/reference/post-processing.md +375 -0
  445. package/skills/shader-dev/reference/procedural-2d-pattern.md +439 -0
  446. package/skills/shader-dev/reference/procedural-noise.md +551 -0
  447. package/skills/shader-dev/reference/ray-marching.md +396 -0
  448. package/skills/shader-dev/reference/sdf-2d.md +724 -0
  449. package/skills/shader-dev/reference/sdf-3d.md +805 -0
  450. package/skills/shader-dev/reference/sdf-tricks.md +63 -0
  451. package/skills/shader-dev/reference/shadow-techniques.md +476 -0
  452. package/skills/shader-dev/reference/simulation-physics.md +644 -0
  453. package/skills/shader-dev/reference/sound-synthesis.md +578 -0
  454. package/skills/shader-dev/reference/terrain-rendering.md +839 -0
  455. package/skills/shader-dev/reference/texture-mapping-advanced.md +87 -0
  456. package/skills/shader-dev/reference/texture-sampling.md +553 -0
  457. package/skills/shader-dev/reference/volumetric-rendering.md +608 -0
  458. package/skills/shader-dev/reference/voronoi-cellular-noise.md +486 -0
  459. package/skills/shader-dev/reference/voxel-rendering.md +701 -0
  460. package/skills/shader-dev/reference/water-ocean.md +445 -0
  461. package/skills/shader-dev/reference/webgl-pitfalls.md +41 -0
  462. package/skills/shader-dev/techniques/ambient-occlusion.md +364 -0
  463. package/skills/shader-dev/techniques/analytic-ray-tracing.md +542 -0
  464. package/skills/shader-dev/techniques/anti-aliasing.md +124 -0
  465. package/skills/shader-dev/techniques/atmospheric-scattering.md +522 -0
  466. package/skills/shader-dev/techniques/camera-effects.md +115 -0
  467. package/skills/shader-dev/techniques/cellular-automata.md +531 -0
  468. package/skills/shader-dev/techniques/color-palette.md +380 -0
  469. package/skills/shader-dev/techniques/csg-boolean-operations.md +491 -0
  470. package/skills/shader-dev/techniques/domain-repetition.md +333 -0
  471. package/skills/shader-dev/techniques/domain-warping.md +414 -0
  472. package/skills/shader-dev/techniques/fluid-simulation.md +1175 -0
  473. package/skills/shader-dev/techniques/fractal-rendering.md +436 -0
  474. package/skills/shader-dev/techniques/lighting-model.md +527 -0
  475. package/skills/shader-dev/techniques/matrix-transform.md +455 -0
  476. package/skills/shader-dev/techniques/multipass-buffer.md +922 -0
  477. package/skills/shader-dev/techniques/normal-estimation.md +318 -0
  478. package/skills/shader-dev/techniques/particle-system.md +1203 -0
  479. package/skills/shader-dev/techniques/path-tracing-gi.md +623 -0
  480. package/skills/shader-dev/techniques/polar-uv-manipulation.md +373 -0
  481. package/skills/shader-dev/techniques/post-processing.md +788 -0
  482. package/skills/shader-dev/techniques/procedural-2d-pattern.md +346 -0
  483. package/skills/shader-dev/techniques/procedural-noise.md +554 -0
  484. package/skills/shader-dev/techniques/ray-marching.md +467 -0
  485. package/skills/shader-dev/techniques/sdf-2d.md +631 -0
  486. package/skills/shader-dev/techniques/sdf-3d.md +589 -0
  487. package/skills/shader-dev/techniques/sdf-tricks.md +100 -0
  488. package/skills/shader-dev/techniques/shadow-techniques.md +776 -0
  489. package/skills/shader-dev/techniques/simulation-physics.md +1542 -0
  490. package/skills/shader-dev/techniques/sound-synthesis.md +490 -0
  491. package/skills/shader-dev/techniques/terrain-rendering.md +408 -0
  492. package/skills/shader-dev/techniques/texture-mapping-advanced.md +121 -0
  493. package/skills/shader-dev/techniques/texture-sampling.md +382 -0
  494. package/skills/shader-dev/techniques/volumetric-rendering.md +375 -0
  495. package/skills/shader-dev/techniques/voronoi-cellular-noise.md +458 -0
  496. package/skills/shader-dev/techniques/voxel-rendering.md +985 -0
  497. package/skills/shader-dev/techniques/water-ocean.md +490 -0
  498. package/skills/shader-dev/techniques/webgl-pitfalls.md +170 -0
  499. package/skills/shipping-and-launch/SKILL.md +334 -0
  500. package/skills/silent-failure-hunting/SKILL.md +24 -0
  501. package/skills/source-driven-development/SKILL.md +223 -0
  502. package/skills/spec-driven-development/SKILL.md +235 -0
  503. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
  504. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
  505. package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/spec-driven-development/SKILL.upstream.md +206 -0
  506. package/skills/strategy-stress-test/SKILL.md +185 -0
  507. package/skills/systematic-literature-review/SKILL.md +77 -0
  508. package/skills/test-document-generator/SKILL.md +152 -0
  509. package/skills/test-document-generator/references/test-document-template.md +45 -0
  510. package/skills/test-driven-development/SKILL.md +399 -0
  511. package/skills/write-skills/GLOSSARY.md +113 -0
  512. package/skills/write-skills/SKILL.md +133 -0
  513. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
  514. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
  515. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/GLOSSARY.md +201 -0
  516. package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/SKILL.upstream.md +83 -0
  517. package/src/runtime/child-guard.ts +70 -0
  518. package/src/runtime/conflicts.ts +25 -0
  519. package/src/runtime/contracts.ts +9 -0
  520. package/src/runtime/doctor.ts +134 -0
  521. package/src/runtime/global-resources.ts +152 -0
  522. package/src/runtime/index.ts +23 -0
  523. package/src/runtime/lifecycle.ts +19 -0
  524. package/src/runtime/native-integrations.ts +44 -0
  525. package/src/runtime/path-boundaries.ts +69 -0
  526. package/src/runtime/registry.ts +213 -0
  527. package/src/runtime/roles.ts +64 -0
  528. package/src/runtime/rose-context.ts +24 -0
  529. package/src/runtime/subagents.ts +426 -0
  530. package/templates/APPEND_SYSTEM.md +12 -0
  531. package/upstream/aili-workflows.lock.json +3226 -0
@@ -0,0 +1,356 @@
1
+ import { createHash } from "node:crypto";
2
+ import {
3
+ cp,
4
+ lstat,
5
+ mkdir,
6
+ readdir,
7
+ readFile,
8
+ rename,
9
+ rm,
10
+ writeFile,
11
+ } from "node:fs/promises";
12
+ import { basename, dirname, relative, resolve, sep } from "node:path";
13
+ import { execFileSync } from "node:child_process";
14
+ import { fileURLToPath } from "node:url";
15
+
16
+ const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
17
+ const SNAPSHOT = resolve(ROOT, "skills");
18
+ const LOCK = resolve(ROOT, "upstream/aili-workflows.lock.json");
19
+ const COMPATIBILITY = resolve(ROOT, "manifests/skill-compatibility.json");
20
+ const REPOSITORY = "https://github.com/Rosetears520/aili-workflows.git";
21
+
22
+ type FileRecord = { path: string; sha256: string; bytes: number };
23
+ type AnchorRecord = {
24
+ id: string;
25
+ disposition: string;
26
+ occurrences: Array<{ path: string; lines: number[] }>;
27
+ };
28
+
29
+ interface LockFile {
30
+ schemaVersion: 1;
31
+ repository: string;
32
+ commit: string;
33
+ repositoryTree: string;
34
+ skillTree: string;
35
+ skillRoot: ".agents/skills";
36
+ skillCount: number;
37
+ fileCount: number;
38
+ contentHash: string;
39
+ synchronizedAt: string;
40
+ files: FileRecord[];
41
+ skills: Array<{ name: string; sourceHash: string; files: string[] }>;
42
+ }
43
+
44
+ const anchorPatterns = [
45
+ {
46
+ id: "backend.opencode",
47
+ pattern: /\bopencode\b|\.opencode\/|~\/\.config\/opencode\//gi,
48
+ disposition: "retained as current adapter evidence; Pi must map the capability",
49
+ },
50
+ {
51
+ id: "tool.subagent",
52
+ pattern: /\bTask\b|task_id|subagent_type|subagent\.dispatch/gi,
53
+ disposition: "mapped through subagent.dispatch or blocked",
54
+ },
55
+ {
56
+ id: "tool.browser",
57
+ pattern: /playwright_|Playwright MCP|Chrome DevTools MCP|browser\.qa/gi,
58
+ disposition: "mapped through browser.qa or optional",
59
+ },
60
+ {
61
+ id: "tool.symbol-graph",
62
+ pattern: /\bCodeGraph\b|codegraph_|\bGraphify\b/gi,
63
+ disposition: "mapped through repository graph capabilities or optional",
64
+ },
65
+ {
66
+ id: "backend.openspec",
67
+ pattern: /\bOpenSpec\b|openspec\//gi,
68
+ disposition: "retained as an artifact backend contract; no completion authority",
69
+ },
70
+ {
71
+ id: "path.backend-home",
72
+ pattern: /~\/\.agents\/|~\/\.pi\/|\.config\/opencode/gi,
73
+ disposition: "must resolve through the active adapter or remain blocked",
74
+ },
75
+ {
76
+ id: "external.side-effect",
77
+ pattern: /\b(download|install|publish|release|upload|network|credential|secret)\b/gi,
78
+ disposition: "retained behind explicit capability and operation gates",
79
+ },
80
+ ] as const;
81
+
82
+ function sha256(content: Buffer | string): string {
83
+ return createHash("sha256").update(content).digest("hex");
84
+ }
85
+
86
+ function posixPath(path: string): string {
87
+ return path.split(sep).join("/");
88
+ }
89
+
90
+ function git(source: string, args: string[]): string {
91
+ return execFileSync("git", ["-C", source, ...args], { encoding: "utf8" }).trim();
92
+ }
93
+
94
+ async function collectFiles(root: string): Promise<FileRecord[]> {
95
+ const records: FileRecord[] = [];
96
+
97
+ async function visit(directory: string): Promise<void> {
98
+ const entries = await readdir(directory, { withFileTypes: true });
99
+ entries.sort((left, right) => left.name.localeCompare(right.name));
100
+ for (const entry of entries) {
101
+ const absolute = resolve(directory, entry.name);
102
+ const metadata = await lstat(absolute);
103
+ if (metadata.isSymbolicLink()) {
104
+ throw new Error(`symbolic links are not allowed in the skill snapshot: ${absolute}`);
105
+ }
106
+ if (metadata.isDirectory()) {
107
+ await visit(absolute);
108
+ } else if (metadata.isFile()) {
109
+ const content = await readFile(absolute);
110
+ records.push({
111
+ path: posixPath(relative(root, absolute)),
112
+ sha256: sha256(content),
113
+ bytes: content.byteLength,
114
+ });
115
+ }
116
+ }
117
+ }
118
+
119
+ await visit(root);
120
+ return records.sort((left, right) => left.path.localeCompare(right.path));
121
+ }
122
+
123
+ function aggregateHash(files: FileRecord[]): string {
124
+ return sha256(files.map((file) => `${file.path}\0${file.sha256}\0${file.bytes}\n`).join(""));
125
+ }
126
+
127
+ function skillHash(files: FileRecord[]): string {
128
+ return aggregateHash(files);
129
+ }
130
+
131
+ function parseDescription(markdown: string): string {
132
+ const match = markdown.match(/^---\s*\n[\s\S]*?^description:\s*(.+)$/m);
133
+ return match?.[1]?.trim() ?? "Unverified: frontmatter description was not parsed";
134
+ }
135
+
136
+ function stopOutcomes(markdown: string): string[] {
137
+ return ["complete", "need-user", "need-evidence", "material-delta", "blocked", "Unverified"]
138
+ .filter((outcome) => markdown.includes(outcome));
139
+ }
140
+
141
+ function textContent(content: Buffer): string | undefined {
142
+ if (content.includes(0)) return undefined;
143
+ try {
144
+ return new TextDecoder("utf-8", { fatal: true }).decode(content);
145
+ } catch {
146
+ return undefined;
147
+ }
148
+ }
149
+
150
+ async function anchorInventory(skillRoot: string, files: FileRecord[]): Promise<AnchorRecord[]> {
151
+ const anchors: AnchorRecord[] = [];
152
+ for (const anchor of anchorPatterns) {
153
+ const occurrences: Array<{ path: string; lines: number[] }> = [];
154
+ for (const file of files) {
155
+ const content = textContent(await readFile(resolve(skillRoot, file.path)));
156
+ if (content === undefined) continue;
157
+ const lines = content.split(/\r?\n/);
158
+ const matchingLines = lines
159
+ .map((line, index) => {
160
+ anchor.pattern.lastIndex = 0;
161
+ return anchor.pattern.test(line) ? index + 1 : undefined;
162
+ })
163
+ .filter((line): line is number => line !== undefined);
164
+ if (matchingLines.length > 0) occurrences.push({ path: file.path, lines: matchingLines });
165
+ }
166
+ if (occurrences.length > 0) {
167
+ anchors.push({ id: anchor.id, disposition: anchor.disposition, occurrences });
168
+ }
169
+ }
170
+ return anchors;
171
+ }
172
+
173
+ function parseArgs(): { verify: boolean; source?: string; revision?: string } {
174
+ const args = process.argv.slice(2);
175
+ if (args.length === 1 && args[0] === "--verify") return { verify: true };
176
+ const sourceIndex = args.indexOf("--source");
177
+ const revisionIndex = args.indexOf("--revision");
178
+ if (sourceIndex < 0 || revisionIndex < 0 || !args[sourceIndex + 1] || !args[revisionIndex + 1]) {
179
+ throw new Error("usage: sync-skills.ts --source <aili-workflows-root> --revision <40-char-sha> | --verify");
180
+ }
181
+ return { verify: false, source: resolve(args[sourceIndex + 1]), revision: args[revisionIndex + 1] };
182
+ }
183
+
184
+ async function verifySnapshot(): Promise<void> {
185
+ const lock = JSON.parse(await readFile(LOCK, "utf8")) as LockFile;
186
+ const compatibility = JSON.parse(await readFile(COMPATIBILITY, "utf8")) as {
187
+ source: { commit: string; contentHash: string };
188
+ records: Array<Record<string, unknown> & { name: string; sourceHash: string }>;
189
+ };
190
+ const files = await collectFiles(SNAPSHOT);
191
+ const actualHash = aggregateHash(files);
192
+ const expectedFiles = JSON.stringify(lock.files);
193
+ const actualFiles = JSON.stringify(files);
194
+ if (actualFiles !== expectedFiles || actualHash !== lock.contentHash) {
195
+ throw new Error("generated skill snapshot drifted from upstream/aili-workflows.lock.json");
196
+ }
197
+ if (compatibility.source.commit !== lock.commit || compatibility.source.contentHash !== lock.contentHash) {
198
+ throw new Error("skill compatibility source does not match the lock");
199
+ }
200
+ const expectedSkills = new Map(lock.skills.map((skill) => [skill.name, skill.sourceHash]));
201
+ const seen = new Set<string>();
202
+ for (const record of compatibility.records) {
203
+ if (seen.has(record.name)) throw new Error(`duplicate compatibility record: ${record.name}`);
204
+ seen.add(record.name);
205
+ if (expectedSkills.get(record.name) !== record.sourceHash) {
206
+ throw new Error(`compatibility source hash mismatch: ${record.name}`);
207
+ }
208
+ for (const field of [
209
+ "sourcePath",
210
+ "requiredCapabilities",
211
+ "backendAnchors",
212
+ "adapterOwner",
213
+ "verification",
214
+ "status",
215
+ "reason",
216
+ "unverified",
217
+ ]) {
218
+ if (!(field in record)) throw new Error(`missing compatibility field ${field}: ${record.name}`);
219
+ }
220
+ }
221
+ const missing = [...expectedSkills.keys()].filter((name) => !seen.has(name));
222
+ const unknown = [...seen].filter((name) => !expectedSkills.has(name));
223
+ if (missing.length || unknown.length) {
224
+ throw new Error(`compatibility coverage mismatch; missing=${missing.join(",")} unknown=${unknown.join(",")}`);
225
+ }
226
+ console.log(`PASS: ${lock.skillCount} skills and ${lock.fileCount} files match ${lock.commit}`);
227
+ }
228
+
229
+ async function synchronize(source: string, revision: string): Promise<void> {
230
+ if (!/^[0-9a-f]{40}$/.test(revision)) throw new Error("revision must be a lowercase 40-character SHA");
231
+ const head = git(source, ["rev-parse", "HEAD"]);
232
+ const status = git(source, ["status", "--porcelain", "--untracked-files=all"]);
233
+ const repositoryTree = git(source, ["rev-parse", "HEAD^{tree}"]);
234
+ const skillTree = git(source, ["rev-parse", "HEAD:.agents/skills"]);
235
+ const synchronizedAt = git(source, ["show", "-s", "--format=%cI", "HEAD"]);
236
+ const origin = git(source, ["remote", "get-url", "origin"]);
237
+ if (head !== revision) throw new Error(`source HEAD ${head} does not match ${revision}`);
238
+ if (status) throw new Error("source repository is dirty; synchronization refused");
239
+ if (origin.replace(/\.git$/, "") !== REPOSITORY.replace(/\.git$/, "")) {
240
+ throw new Error(`unexpected source origin: ${origin}`);
241
+ }
242
+ try {
243
+ await lstat(SNAPSHOT);
244
+ throw new Error("skills/ already exists; verify it and use a separately approved replacement operation");
245
+ } catch (error) {
246
+ if (error instanceof Error && !error.message.includes("ENOENT")) throw error;
247
+ }
248
+
249
+ const sourceSkillRoot = resolve(source, ".agents/skills");
250
+ const upstreamCapabilities = JSON.parse(
251
+ await readFile(resolve(source, "manifests/skill-capabilities.json"), "utf8"),
252
+ ) as {
253
+ profiles: Record<string, { requiredCapabilities: string[]; optionalCapabilities: string[] }>;
254
+ assignments: Array<{ profile: string; skills: string[] }>;
255
+ };
256
+ const profileBySkill = new Map<string, string>();
257
+ for (const assignment of upstreamCapabilities.assignments) {
258
+ for (const skill of assignment.skills) {
259
+ if (profileBySkill.has(skill)) throw new Error(`duplicate upstream capability assignment: ${skill}`);
260
+ profileBySkill.set(skill, assignment.profile);
261
+ }
262
+ }
263
+
264
+ const files = await collectFiles(sourceSkillRoot);
265
+ const skillNames = (await readdir(sourceSkillRoot, { withFileTypes: true }))
266
+ .filter((entry) => entry.isDirectory())
267
+ .map((entry) => entry.name)
268
+ .sort((left, right) => left.localeCompare(right));
269
+ if (skillNames.length !== profileBySkill.size || skillNames.some((name) => !profileBySkill.has(name))) {
270
+ throw new Error("upstream skill directories and capability assignments are not bijective");
271
+ }
272
+
273
+ const skills: LockFile["skills"] = [];
274
+ const records = [];
275
+ for (const name of skillNames) {
276
+ const skillFiles = files
277
+ .filter((file) => file.path === name || file.path.startsWith(`${name}/`))
278
+ .map((file) => ({ ...file, path: file.path.slice(name.length + 1) }));
279
+ const sourceHash = skillHash(skillFiles);
280
+ const profileName = profileBySkill.get(name)!;
281
+ const profile = upstreamCapabilities.profiles[profileName];
282
+ if (!profile) throw new Error(`missing upstream capability profile: ${profileName}`);
283
+ const markdown = await readFile(resolve(sourceSkillRoot, name, "SKILL.md"), "utf8");
284
+ const anchors = await anchorInventory(resolve(sourceSkillRoot, name), skillFiles);
285
+ const optional = ["web-research", "browser-qa", "memory", "artifact-runtime"].includes(profileName);
286
+ skills.push({ name, sourceHash, files: skillFiles.map((file) => file.path) });
287
+ records.push({
288
+ name,
289
+ sourcePath: `.agents/skills/${name}`,
290
+ sourceHash,
291
+ files: skillFiles,
292
+ triggers: {
293
+ description: parseDescription(markdown),
294
+ nearMissDeclared: /do not|don't|near miss|仅当|不要|不负责/i.test(markdown),
295
+ stopOutcomes: stopOutcomes(markdown),
296
+ },
297
+ backendAnchors: anchors,
298
+ requiredCapabilities: profile.requiredCapabilities,
299
+ optionalCapabilities: profile.optionalCapabilities,
300
+ canonicalChange: "none in aili-pi; consume the pinned upstream body without semantic transformation",
301
+ adapterOwner: optional ? `optional-pack:${profileName}` : `planned:aili-pi:${profileName}`,
302
+ verification: ["snapshot-hash:verified", "pi-discovery:pending", "pi-behavior:pending"],
303
+ status: optional ? "optional" : "blocked",
304
+ reason: optional
305
+ ? `The ${profileName} capability is not bundled until its optional provider is verified.`
306
+ : `The required ${profileName} Pi adapter has not yet passed behavior verification.`,
307
+ unverified: ["Pi discovery and behavior evidence are pending later BUILD packages."],
308
+ });
309
+ }
310
+
311
+ const lock: LockFile = {
312
+ schemaVersion: 1,
313
+ repository: REPOSITORY,
314
+ commit: revision,
315
+ repositoryTree,
316
+ skillTree,
317
+ skillRoot: ".agents/skills",
318
+ skillCount: skillNames.length,
319
+ fileCount: files.length,
320
+ contentHash: aggregateHash(files),
321
+ synchronizedAt,
322
+ files,
323
+ skills,
324
+ };
325
+ const compatibility = {
326
+ schemaVersion: 1,
327
+ source: {
328
+ repository: REPOSITORY,
329
+ commit: revision,
330
+ tree: skillTree,
331
+ contentHash: lock.contentHash,
332
+ },
333
+ allowedStatuses: ["native", "adapted", "optional", "blocked"],
334
+ records,
335
+ };
336
+
337
+ const stage = resolve(ROOT, `.tmp/sync-skills-${process.pid}`);
338
+ await rm(stage, { recursive: true, force: true });
339
+ await mkdir(dirname(stage), { recursive: true });
340
+ await cp(sourceSkillRoot, stage, { recursive: true, preserveTimestamps: false });
341
+ await mkdir(dirname(LOCK), { recursive: true });
342
+ await mkdir(dirname(COMPATIBILITY), { recursive: true });
343
+ await writeFile(`${LOCK}.tmp`, `${JSON.stringify(lock, null, 2)}\n`, { flag: "wx" });
344
+ await writeFile(`${COMPATIBILITY}.tmp`, `${JSON.stringify(compatibility, null, 2)}\n`, { flag: "wx" });
345
+ await rename(stage, SNAPSHOT);
346
+ await rename(`${LOCK}.tmp`, LOCK);
347
+ await rename(`${COMPATIBILITY}.tmp`, COMPATIBILITY);
348
+ await verifySnapshot();
349
+ }
350
+
351
+ const args = parseArgs();
352
+ if (args.verify) {
353
+ await verifySnapshot();
354
+ } else {
355
+ await synchronize(args.source!, args.revision!);
356
+ }
@@ -0,0 +1,11 @@
1
+ import { validateRegistry, validateStableRelease } from "../src/runtime/registry.ts";
2
+
3
+ const release = process.argv.includes("--release");
4
+ const errors = release ? await validateStableRelease() : await validateRegistry();
5
+ if (errors.length > 0) {
6
+ console.error(`${release ? "stable release" : "registry"} validation failed (${errors.length})`);
7
+ for (const error of errors) console.error(`- ${error}`);
8
+ process.exitCode = 1;
9
+ } else {
10
+ console.log(`${release ? "stable release" : "registry"} validation passed`);
11
+ }
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: academic-paper-review
3
+ description: Review a single academic paper, preprint, DOI, arXiv link, or user-provided PDF/text with source-grounded critique. Use for paper summaries, methodology review, novelty checks, reproducibility concerns, or "review this paper" requests; do not use for multi-paper surveys, systematic literature reviews, citation management, or implementation from a paper.
4
+ ---
5
+
6
+ # Academic Paper Review
7
+
8
+ ## Purpose
9
+
10
+ Produce a careful, evidence-grounded review of one academic work. The output should help the user understand what the paper claims, how it supports those claims, what is novel, what is weak, and how much confidence to place in the result.
11
+
12
+ ## When to Use
13
+
14
+ Use for:
15
+
16
+ - reviewing one paper, preprint, DOI, arXiv page, conference paper, thesis chapter, or pasted paper text
17
+ - summarizing contributions, methods, experiments, evidence, and limitations
18
+ - assessing reproducibility, statistical strength, baselines, assumptions, or threat-to-validity gaps
19
+ - comparing the paper's stated claims with its methods and results
20
+
21
+ Do not use for:
22
+
23
+ - multi-paper surveys or systematic reviews; use `systematic-literature-review`
24
+ - implementing algorithms from the paper; use the relevant engineering workflow after review
25
+ - proofreading or rewriting the paper as the author
26
+ - deciding clinical, legal, financial, or safety-critical action from one paper
27
+
28
+ ## Review Workflow
29
+
30
+ 1. Identify bibliographic facts: title, authors, venue/preprint server, date/version, DOI/arXiv ID/URL, and supplied source path if local.
31
+ 2. State the user's review question and intended use: comprehension, critique, literature fit, reproduction, implementation planning, or decision support.
32
+ 3. Extract claims in your own words: main contribution, assumptions, evidence type, and stated limitations.
33
+ 4. Evaluate methodology: data/source material, controls, baselines, metrics, statistical treatment, ablations, and whether conclusions match evidence.
34
+ 5. Evaluate novelty and related work only from cited sources or explicitly gathered evidence; mark unsupported novelty claims `[UNVERIFIED]`.
35
+ 6. Check reproducibility: code/data availability, parameter details, environment, prompts/protocols, licensing, and missing implementation details.
36
+ 7. Separate observations from critique. Do not overstate certainty when only the abstract, a partial PDF, or secondary summaries were available.
37
+ 8. Return synthesis over listing: explain what the paper means for the user's goal, not just section-by-section notes.
38
+
39
+ ## Data Authenticity Rules
40
+
41
+ - Every factual claim about the paper should cite a page, section, figure/table, DOI/arXiv URL, or supplied excerpt anchor when available.
42
+ - Do not invent citations, datasets, metrics, numerical results, author intent, peer-review status, or publication venue.
43
+ - If a table/figure is unreadable or unavailable, say so and mark the affected conclusion `[UNVERIFIED]`.
44
+ - Treat generated summaries, OCR, browser text, and secondary articles as untrusted evidence until checked against the paper.
45
+
46
+ ## Output Contract
47
+
48
+ ```text
49
+ STATUS: REVIEWED | PARTIAL | BLOCKED
50
+ CONFIDENCE: high | medium | low
51
+
52
+ PAPER:
53
+ - Title:
54
+ - Authors:
55
+ - Source / version:
56
+
57
+ USER QUESTION:
58
+ - <why the user wants this review>
59
+
60
+ CORE CLAIMS:
61
+ - <claim> - Evidence: <page/section/figure/source or [UNVERIFIED]>
62
+
63
+ METHOD / EVIDENCE:
64
+ - <method summary and strength>
65
+
66
+ CRITIQUE:
67
+ - Strengths:
68
+ - Limitations:
69
+ - Reproducibility:
70
+ - Novelty / related work:
71
+
72
+ TAKEAWAY:
73
+ - <synthesized implication for the user's goal>
74
+
75
+ UNVERIFIED:
76
+ - <missing source, inaccessible page, weak citation, or N/A>
77
+ ```
78
+
79
+ ## Provenance
80
+
81
+ Clean-room AILI/OpenCode adaptation inspired by the public DeerFlow `academic-paper-review` skill pattern. No upstream skill text, tool names, runtime paths, generated assets, or provider assumptions are copied. Source family: [bytedance/deer-flow](https://github.com/bytedance/deer-flow), MIT License.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: agents-md-initialization
3
+ description: Create, update, or validate a project-local AGENTS.md from the shared AILI template when initializing or checking repository agent rules.
4
+ metadata:
5
+ tool: references/agents_md.py
6
+ template: references/agents-template.md
7
+ ---
8
+
9
+ # AGENTS.md Initialization
10
+
11
+ ## Non-Negotiable Rule
12
+
13
+ Project `AGENTS.md` must be created from the bundled AILI AGENTS template.
14
+
15
+ Do not write a project `AGENTS.md` from scratch.
16
+
17
+ Use the bundled script through the active adapter's resolved Skill root:
18
+
19
+ ```bash
20
+ python <skill-root>/references/agents_md.py init --project .
21
+ ```
22
+
23
+ The script and template are distributed with this skill:
24
+
25
+ - `references/agents_md.py`
26
+ - `references/agents-template.md`
27
+
28
+ If this skill is being run from a repository checkout rather than an installed adapter-managed Skill, use the repository-local path:
29
+
30
+ ```bash
31
+ python .agents/skills/agents-md-initialization/references/agents_md.py init --project .
32
+ ```
33
+
34
+ ## Commands
35
+
36
+ Initialize a project-local `AGENTS.md`:
37
+
38
+ ```bash
39
+ python <skill-root>/references/agents_md.py init --project .
40
+ ```
41
+
42
+ Update an existing generated project `AGENTS.md` against the current template-managed content:
43
+
44
+ ```bash
45
+ python <skill-root>/references/agents_md.py update --project .
46
+ ```
47
+
48
+ Check template compliance:
49
+
50
+ ```bash
51
+ python <skill-root>/references/agents_md.py check --project .
52
+ ```
53
+
54
+ If the adapter-resolved Skill root is unavailable but the current repository contains this skill, replace the path prefix with `.agents/skills/agents-md-initialization/`.
55
+
56
+ ## Workflow
57
+
58
+ 1. Run `init` when the target project has no `AGENTS.md`.
59
+ 2. If `AGENTS.md` already exists, do not overwrite it silently. Use `update` for template-managed compatibility updates, or ask before using `init --strategy backup-overwrite`.
60
+
61
+ 🛑 **STOP before overwrite or backup-overwrite:** show the existing path, state that project-local content may be replaced outside managed blocks, and wait for explicit human approval.
62
+
63
+ 3. Inspect the repository and fill only project-specific sections:
64
+ - `Project Overview`
65
+ - `Setup Commands`
66
+ - `Architecture and Project Structure`
67
+ - `Project-Specific Rules`
68
+ - `Project-Specific Testing and Artifact Placement`
69
+ - `Local Overrides`
70
+ 4. Do not copy broad global workflow/safety rules into the project file unless the project intentionally strengthens or specializes them.
71
+ 5. Check CodeGraph readiness only for the exact current repository root after confirming it:
72
+ - run or request `codegraph status` for the target project
73
+ - if CodeGraph is not initialized, ask whether to run `codegraph init -i` for that exact one root; approval is per-root and is not inferred from broad or neighboring-root approval
74
+ - if approved, run `codegraph init -i` and then `codegraph status`
75
+ - if CodeGraph is unavailable, skipped, or not approved, report it as a non-blocking follow-up
76
+ - refuse batch/multi-repository initialization even under broad approval, and do not run `openspec init` as part of this flow
77
+ - treat CodeGraph as optional discovery only; stale/noisy/unavailable results fall back to ordinary search/read, every final file must still be read, and CodeGraph has no lifecycle/completion authority
78
+ 6. Run `check` before completion.
79
+
80
+ ## Fallbacks and Stop Conditions
81
+
82
+ | Trigger condition | First response | If still unresolved |
83
+ |---|---|---|
84
+ | `references/agents-template.md` is missing or unreadable | Stop and report the expected bundled template path; do not hand-write `AGENTS.md` | Ask the user to restore/reinstall the skill or provide an approved template source |
85
+ | `references/agents_md.py` is missing or not executable by Python | Stop and report the expected bundled script path and command attempted | Ask the user to restore/reinstall the skill; do not create a replacement script in the target project |
86
+ | Installed skill path is unavailable but a repository checkout is present | Use `.agents/skills/agents-md-initialization/references/agents_md.py` from the checkout | If neither installed nor repo-local bundled script exists, stop and ask for the AILI workflow checkout path |
87
+ | Existing `AGENTS.md` has unrecognized local content outside managed blocks | Prefer `update`; summarize preserved local sections before editing | Require explicit approval before any backup-overwrite strategy |
88
+ | CodeGraph is not installed, unavailable, or user declines initialization | Report CodeGraph as skipped/unavailable/not approved | Do not block `AGENTS.md` completion; do not claim code-map coverage |
89
+ | `check` fails after init/update | Report the failing output and inspect only the relevant sections | Do not claim completion until `check` passes or the failure is marked unresolved |
90
+
91
+ ## CI / Pre-Commit Gate
92
+
93
+ Target projects should add a lightweight check when practical:
94
+
95
+ ```bash
96
+ python <skill-root>/references/agents_md.py check --project .
97
+ ```
98
+
99
+ For `Makefile` projects:
100
+
101
+ ```makefile
102
+ check-agents:
103
+ python "<skill-root>/references/agents_md.py" check --project .
104
+ ```
105
+
106
+ For pre-commit hooks:
107
+
108
+ ```bash
109
+ #!/usr/bin/env bash
110
+ python "<skill-root>/references/agents_md.py" check --project .
111
+ ```
112
+
113
+ ## Verification
114
+
115
+ Report:
116
+
117
+ - whether `init`, `update`, or `check` was used
118
+ - whether an existing `AGENTS.md` was backed up
119
+ - which project-specific sections were filled
120
+ - CodeGraph status: initialized / initialized this run / skipped / unavailable / not approved
121
+ - the final `check` result
@@ -0,0 +1,83 @@
1
+ <!-- AILI_AGENTS_TEMPLATE_VERSION: 2 -->
2
+ <!-- AILI_AGENTS_TEMPLATE_SOURCE: templates/AGENTS.md -->
3
+ <!-- AILI_AGENTS_TEMPLATE_MODE: generated-project-local-file -->
4
+
5
+ # AGENTS.md
6
+
7
+ This file is the project-level instruction contract for AI coding agents working in this repository.
8
+
9
+ It contains project facts, local commands, local artifact placement, and repository-specific exceptions. Reusable workflow and safety invariants are installed globally by `rose-aili` from `templates/opencode-global-AGENTS.md`.
10
+
11
+ Do not copy broad global operating rules into this file unless this project intentionally overrides or strengthens them.
12
+
13
+ ## Project Overview
14
+
15
+ <!-- Fill this section during initialization. Use facts from repository files only. Do not invent missing details. -->
16
+
17
+ - Project purpose: TODO
18
+ - Primary language/runtime: TODO
19
+ - Package manager: TODO
20
+ - Main application entry points: TODO
21
+ - Main test framework: TODO
22
+ - Important directories: TODO
23
+ - Generated/build output directories: TODO
24
+ - Deployment/runtime environment: TODO
25
+
26
+ ## Setup Commands
27
+
28
+ <!-- Fill with verified commands from package manifests, README, docs, Makefile, CI, or equivalent project files. Use "unknown" only when the repository does not provide enough evidence. -->
29
+
30
+ - Install dependencies: TODO
31
+ - Start development server: TODO
32
+ - Build: TODO
33
+ - Lint: TODO
34
+ - Typecheck: TODO
35
+ - Test all: TODO
36
+ - Test focused: TODO
37
+ - Format: TODO
38
+ - Clean: TODO
39
+
40
+ ## Architecture and Project Structure
41
+
42
+ <!-- Summarize only facts discovered from repository files. Do not invent architecture. -->
43
+
44
+ - `src/`: TODO
45
+ - `tests/`: TODO
46
+ - `docs/`: TODO
47
+ - `scripts/`: TODO
48
+ - Configuration files: TODO
49
+ - CI/CD files: TODO
50
+ - Generated files: TODO
51
+ - External integrations: TODO
52
+
53
+ ## Project-Specific Rules
54
+
55
+ <!-- Add rules that are specific to this repository. Do not add personal preferences, temporary task notes, or generic advice. -->
56
+
57
+ - TODO
58
+
59
+ ## Project-Specific Testing and Artifact Placement
60
+
61
+ <!-- Record repository-specific test locations and artifact placement decisions. Keep global verification discipline in the global AGENTS file. -->
62
+
63
+ - Unit tests: TODO
64
+ - Integration tests: TODO
65
+ - CLI tests: TODO
66
+ - API / contract tests: TODO
67
+ - GUI / browser / Playwright tests: TODO
68
+ - Test fixtures: TODO
69
+ - Snapshots / golden files: TODO
70
+ - Test reports / traces / screenshots: TODO
71
+ - Temporary test output: TODO
72
+
73
+ Rules:
74
+
75
+ - Do not place new test files in the repository root unless this section explicitly allows it.
76
+ - Unless the user explicitly requests an external or temporary-only artifact, user-visible test files, test plans, reports, traces, screenshots, generated fixtures, golden files, and verification artifacts must be written inside the repository at a project-defined path or after a placement decision.
77
+ - If a new test category is introduced, ask the user for its repository-local location once, then record the chosen convention here.
78
+
79
+ ## Local Overrides
80
+
81
+ <!-- Optional. Add local overrides only when this repository needs to strengthen or specialize the global AGENTS rules. Do not weaken global safety, evidence, git, security, or completion rules. -->
82
+
83
+ - None documented.