@ngocsangairvds/vsaf 3.1.27 → 3.2.2

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 (303) hide show
  1. package/package.json +2 -2
  2. package/src/global.js +65 -39
  3. package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
  4. package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
  5. package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
  6. package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
  7. package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
  8. package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
  9. package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
  10. package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
  11. package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
  12. package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
  13. package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
  14. package/tools/skills/vsaf-build/SKILL.md +32 -2
  15. package/tools/skills/vsaf-ship/SKILL.md +41 -10
  16. package/tools/skills/vsaf-test/SKILL.md +8 -0
  17. package/tools/vds-scripts/.mcp.json +11 -0
  18. package/tools/vds-scripts/.secrets.baseline +133 -0
  19. package/tools/vds-scripts/AGENTS.md +152 -0
  20. package/tools/vds-scripts/CLAUDE.md +101 -0
  21. package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
  22. package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
  23. package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
  24. package/tools/vds-scripts/README.md +97 -0
  25. package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
  26. package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
  27. package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
  28. package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
  29. package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
  30. package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
  31. package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
  32. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
  33. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
  34. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
  35. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
  36. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
  37. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
  38. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
  39. package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
  40. package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
  41. package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
  42. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
  43. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
  44. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
  45. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
  46. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
  47. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
  48. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
  49. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
  50. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
  51. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
  52. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
  53. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
  54. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
  55. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
  56. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
  57. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
  58. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
  59. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
  60. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
  61. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
  62. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
  63. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
  64. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
  65. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
  66. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
  67. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
  68. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
  69. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
  70. package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
  71. package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
  72. package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
  73. package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
  74. package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
  75. package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
  76. package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
  77. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
  78. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
  79. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
  80. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
  81. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
  82. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
  83. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
  84. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
  85. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
  86. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
  87. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
  88. package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
  89. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
  90. package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
  91. package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
  92. package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
  93. package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
  94. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
  95. package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
  96. package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
  97. package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
  98. package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
  99. package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
  100. package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
  101. package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
  102. package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
  103. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
  104. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
  105. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
  106. package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
  107. package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
  108. package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
  109. package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
  110. package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
  111. package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
  112. package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
  113. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
  114. package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
  115. package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
  116. package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
  117. package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
  118. package/tools/vds-scripts/git_orchestrator/README.md +280 -0
  119. package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
  120. package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
  121. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
  122. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
  123. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
  124. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
  125. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
  126. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
  127. package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
  128. package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
  129. package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
  130. package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
  131. package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
  132. package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
  133. package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
  134. package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
  135. package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
  136. package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
  137. package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
  138. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
  139. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
  140. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
  141. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
  142. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
  143. package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
  144. package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
  145. package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
  146. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
  147. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
  148. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
  149. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
  150. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
  151. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
  152. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
  153. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
  154. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
  155. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
  156. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
  157. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
  158. package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
  159. package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
  160. package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
  161. package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
  162. package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
  163. package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
  164. package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
  165. package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
  166. package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
  167. package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
  168. package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
  169. package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
  170. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
  171. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
  172. package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
  173. package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
  174. package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
  175. package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
  176. package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
  177. package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
  178. package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
  179. package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
  180. package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
  181. package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
  182. package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
  183. package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
  184. package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
  185. package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
  186. package/tools/vds-scripts/mcp_server/README.md +140 -0
  187. package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
  188. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
  189. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
  190. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
  191. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
  192. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
  193. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
  194. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
  195. package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
  196. package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
  197. package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
  198. package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
  199. package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
  200. package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
  201. package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
  202. package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
  203. package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
  204. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
  205. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
  206. package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
  207. package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
  208. package/tools/vds-scripts/mypy.ini +5 -0
  209. package/tools/vds-scripts/pyproject.toml +29 -0
  210. package/tools/vds-scripts/repo-manifest.yaml +273 -0
  211. package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
  212. package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
  213. package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
  214. package/tools/vds-scripts/scripts/README.md +162 -0
  215. package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
  216. package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
  217. package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
  218. package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
  219. package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
  220. package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
  221. package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
  222. package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
  223. package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
  224. package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
  225. package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
  226. package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
  227. package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
  228. package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
  229. package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
  230. package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
  231. package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
  232. package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
  233. package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
  234. package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
  235. package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
  236. package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
  237. package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
  238. package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
  239. package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
  240. package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
  241. package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
  242. package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
  243. package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
  244. package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
  245. package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
  246. package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
  247. package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
  248. package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
  249. package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
  250. package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
  251. package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
  252. package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
  253. package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
  254. package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
  255. package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
  256. package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
  257. package/tools/vds-scripts/uv.lock +8 -0
  258. package/tools/vds-scripts/vds_cli/README.md +126 -0
  259. package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
  260. package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
  261. package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
  262. package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
  263. package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
  264. package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
  265. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
  266. package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
  267. package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
  268. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
  269. package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
  270. package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
  271. package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
  272. package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
  273. package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
  274. package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
  275. package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
  276. package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
  277. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
  278. package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
  279. package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
  280. package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
  281. package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
  282. package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
  283. package/tools/vds-scripts/vds_cli/uv.lock +524 -0
  284. package/tools/vds-scripts/vds_cli_common/README.md +190 -0
  285. package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
  286. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
  287. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
  288. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
  289. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
  290. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
  291. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
  292. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
  293. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
  294. package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
  295. package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
  296. package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
  297. package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
  298. package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
  299. package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
  300. package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
  301. package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
  302. package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
  303. package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
@@ -0,0 +1,31 @@
1
+ # Platform Bootstrap
2
+
3
+ Use this guide when you need to enter the WHO scripts ecosystem and choose the first command to run.
4
+
5
+ ## Canonical entrypoints
6
+
7
+ - Interactive monorepo-root usage:
8
+ - `./WHO-project/vds-scripts/scripts/worktree_uv.sh run --directory WHO-project/vds-scripts --package vds-cli vds-cli --help`
9
+ - `./WHO-project/vds-scripts/scripts/worktree_uv.sh run --directory WHO-project/vds-scripts --package vds-cli vds-cli env status`
10
+ - `./WHO-project/vds-scripts/scripts/worktree_uv.sh run --directory WHO-project/vds-scripts --package vds-cli vds-cli status`
11
+ - `./WHO-project/vds-scripts/scripts/worktree_uv.sh run --directory WHO-project/vds-scripts --package vds-cli vds-cli doctor`
12
+ - Dedicated `vds-scripts` worktree usage:
13
+ - `./scripts/worktree_uv.sh run --package vds_cli vds-cli --help`
14
+ - `./scripts/worktree_uv.sh run --package vds_cli vds-cli env status`
15
+ - `./scripts/worktree_uv.sh run --package vds_cli vds-cli status`
16
+ - `./scripts/worktree_uv.sh run --package vds_cli vds-cli doctor`
17
+ - Maintained shell scripts should not copy those raw forms. They should source `scripts/vds_sh_helpers.sh` and use the helper contract (`vds_uv_run_package`, `vds_uv_sync_package`, `vds_uv_sync_all`).
18
+ - Preferred integrated baseline for the `WHO-project/vds-scripts` workspace is Python 3.14+.
19
+
20
+ ## Common first steps
21
+
22
+ 1. Check environment readiness with `vds-cli env status`
23
+ 2. Check routed-service availability with `vds-cli status` and `vds-cli doctor`
24
+ 3. Decide whether the task belongs to:
25
+ - a platform command family
26
+ - a specialist CLI such as `vds-audit` or `vds-spec`
27
+ - a specialist skill such as `audit-orchestrator-skill`
28
+
29
+ ## When to stop using the platform skill
30
+
31
+ If the task becomes specialist or phase-sensitive, route to the specialist skill rather than extending the platform path.
@@ -0,0 +1,14 @@
1
+ # Specialist Routing
2
+
3
+ Use this routing map when the platform skill identifies a specialist domain.
4
+
5
+ | Intent | Preferred Skill | Why |
6
+ |-------|------------------|-----|
7
+ | Run audit workflows, readiness checks, reruns, uploads | `audit-orchestrator-skill` | Phase-aware audit guidance lives there |
8
+ | Evaluate README/API docs/security docs with LLM support | `llm-analysis-skill` | Specialist content-evaluation guidance lives there |
9
+ | Create or consolidate specs | `spec-creation-skill` | Owns spec workflow and alignment practices |
10
+ | Develop or update CLI/orchestrator packages | `cli-development-skill` | Owns Typer/JSON/CLI package standards |
11
+ | Configure or use LSPs | `lsp-skill` | Owns LSP tooling guidance |
12
+ | Analyze cross-repo dependency cycles | `circular-dependency-skill` | Owns cycle-analysis workflow |
13
+ | Research with local + web sources | `research-skill` | Owns research-first workflow |
14
+ | Build structural graph context | `code-review-graph-skill` | Companion graph-analysis workflow |
@@ -0,0 +1,15 @@
1
+ # Validation Commands
2
+
3
+ Representative WHO validation and docs command families:
4
+
5
+ - `vds-cli openapi ...`
6
+ - `vds-cli links ...`
7
+ - `vds-cli structure ...`
8
+ - `vds-cli schema ...`
9
+ - `vds-cli pdf ...`
10
+ - `vds-cli diagrams ...`
11
+ - `vds-cli excel ...`
12
+ - `vds-cli google-sheets ...`
13
+ - `vds-markdown ...`
14
+
15
+ Use specialist docs or package READMEs for deeper command coverage.
@@ -5,6 +5,16 @@ description: Implement code following existing PRD + SRS + testcases. Use after
5
5
 
6
6
  # VSAF Build
7
7
 
8
+ ## Applied Rules
9
+
10
+ > These rules apply to all code implemented through this flow. Read the full rule before proceeding.
11
+
12
+ | Rule | File | Applies to |
13
+ |------|------|------------|
14
+ | Run Verification After Coding | `.vsaf/rules/dev/java/run_verification_after_coding.md` | Every task implementation |
15
+ | SonarQube Coding Standard | `.vsaf/rules/dev/java/sonarqube_coding_standard.md` | Java projects only |
16
+ | Java Project Development Rules | `.vsaf/rules/dev/java/java_Project_Development_Rules.md` | Java projects only |
17
+
8
18
  ## Objective
9
19
  Implement code strictly following PRD, SRS, and testcases, one task at a time, with TDD — ensuring each commit has tests passing AND is verified against spec.
10
20
 
@@ -57,6 +67,21 @@ Implement code strictly following PRD, SRS, and testcases, one task at a time, w
57
67
  - Have a clear verification step
58
68
  - Be small enough for 1 commit
59
69
 
70
+ ### Step 2.5 — Code Quality Gate (mandatory for Java projects)
71
+
72
+ Before writing any code, confirm the quality baseline:
73
+
74
+ - Read `.vsaf/rules/dev/java/sonarqube_coding_standard.md` — internalize all rules (zero Critical/Blocker, ≥80% new-code coverage, no `System.out`, no hardcoded credentials, etc.)
75
+ - Read `.vsaf/rules/dev/java/java_Project_Development_Rules.md` — enforce: methods ≤40 lines, nesting ≤3 levels, `@Transactional` at service layer only, coverage ≥70%
76
+ - During every task implementation, actively prevent violations:
77
+ - Use SLF4J logger — never `System.out.println` / `e.printStackTrace()`
78
+ - Use try-with-resources for all closeable resources
79
+ - Null-check before dereferencing, use `Optional.orElseThrow()` not `.get()`
80
+ - Extract constants for string literals repeated ≥3 times
81
+ - Keep cognitive complexity ≤15 and cyclomatic complexity ≤10 per method
82
+ - After each task commit: mentally verify no SonarQube Blocker/Critical rules were introduced
83
+ - If the project is **not Java**: skip this step
84
+
60
85
  ### Step 2b — Subagent dispatch (large plans, optional)
61
86
  - If plan has ≥ 20 tasks AND HAS_SUPERPOWERS: use `superpowers:subagent-driven-development`
62
87
  - Dispatch tasks to sub-agents with a two-phase review pipeline
@@ -73,9 +98,14 @@ Implement code strictly following PRD, SRS, and testcases, one task at a time, w
73
98
 
74
99
  - After each task, run sequentially:
75
100
  1. `mcp__gitnexus__detect_changes` — verify only the expected files changed
76
- 2. **Verification against spec** (mandatory):
77
- - **If HAS_SUPERPOWERS**: use `superpowers:verification-before-completion` confirm outcome matches SRS intent, not just "tests pass"
101
+ 2. **Verification against spec** (mandatory) — follow `.vsaf/rules/dev/java/run_verification_after_coding.md`:
102
+ - Compile with zero errors (`mvn clean compile` for Maven, equivalent for other build tools)
103
+ - Run all tests — all must pass (`mvn test`)
104
+ - Start the application — confirm it boots with no errors
105
+ - Trigger the changed endpoint/logic with a real request and confirm the response
106
+ - **If HAS_SUPERPOWERS**: additionally use `superpowers:verification-before-completion` — confirm outcome matches SRS intent
78
107
  - **If not**: self-verify: re-read the corresponding FR/NFR in SRS, confirm behavior is correct, record verification result
108
+ - If full environment is unavailable: use Docker Compose / Testcontainers / mock boundary — do NOT skip verification
79
109
  3. Commit: `git commit -m "<type>: <task description>"`
80
110
 
81
111
  ### Step 3.5 — Checkpoint review (every 3-5 tasks)
@@ -5,6 +5,16 @@ description: Multi-layer review + ship code. Used after /vsaf-build and /vsaf-te
5
5
 
6
6
  # VSAF Ship
7
7
 
8
+ ## Applied Rules
9
+
10
+ > These rules are enforced as gates before shipping. Code that violates them cannot be merged.
11
+
12
+ | Rule | File | Gate |
13
+ |------|------|------|
14
+ | Run Verification After Coding | `.vsaf/rules/dev/java/run_verification_after_coding.md` | Step 1 (pre-review) |
15
+ | SonarQube Coding Standard | `.vsaf/rules/dev/java/sonarqube_coding_standard.md` | Step 2 (code review) |
16
+ | Java Project Development Rules | `.vsaf/rules/dev/java/java_Project_Development_Rules.md` | Step 2 (code review) |
17
+
8
18
  ## Objective
9
19
  Multi-layer review, verify scope, validate architecture, push PR. Ensure code has passed all gates before shipping.
10
20
 
@@ -21,25 +31,44 @@ Multi-layer review, verify scope, validate architecture, push PR. Ensure code ha
21
31
  - Confirm only the expected files/symbols have changed
22
32
  - If unexpected changes are detected: **STOP** — review before proceeding
23
33
 
24
- ### Step 1 — Structured review handoff (Superpowers)
34
+ ### Step 1 — Verification gate (mandatory — before any review)
35
+ - Read `.vsaf/rules/dev/java/run_verification_after_coding.md` and confirm all 5 acceptance criteria are met:
36
+ - [ ] Code compiles with zero errors
37
+ - [ ] All existing tests pass
38
+ - [ ] Application starts without errors
39
+ - [ ] The changed feature/endpoint was manually triggered and returned the expected result
40
+ - [ ] No new `ERROR` log lines appear on the happy path
41
+ - If any criterion is NOT met: **STOP** — fix before proceeding to review
42
+
43
+ ### Step 2 — Structured review handoff (Superpowers)
25
44
  - Use `superpowers:requesting-code-review` to create a structured handoff:
26
45
  - What changed and why
27
46
  - What to watch for (risk areas)
28
47
  - Context for the reviewer
29
48
  - This handoff is the input for the subsequent review layers
30
49
 
31
- ### Step 2 — Review Layer 1: Code Review
50
+ ### Step 3 — Review Layer 1: Code Review + SonarQube Gate
32
51
  - **If Superpowers is available**: use `superpowers:code-review`
33
52
  - **If not**: use skill `bmad-code-review`
34
53
  - Check: code structure, naming, patterns, SOLID principles
54
+ - **SonarQube gate** (mandatory for Java projects — read `.vsaf/rules/dev/java/sonarqube_coding_standard.md`):
55
+ - Zero Blocker or Critical issues — must fix before merge, no exceptions
56
+ - Zero bugs (`squid:S2259` null deref, `squid:S2095` unclosed resources, `squid:S3655` Optional.get without check)
57
+ - Zero vulnerabilities (no hardcoded credentials, no SQL injection, no sensitive data in logs)
58
+ - No `System.out.println` / `e.printStackTrace()` — use SLF4J
59
+ - Coverage ≥80% on new code; Technical Debt Ratio ≤5%
60
+ - Duplications <3% on new code
61
+ - Run locally: `mvn clean verify sonar:sonar -Dsonar.projectKey=<key> -Dsonar.host.url=http://localhost:9000 -Dsonar.login=<token>`
62
+ - **Java rules gate** (mandatory for Java projects — read `.vsaf/rules/dev/java/java_Project_Development_Rules.md`):
63
+ - Methods ≤40 lines, nesting ≤3 levels, `@Transactional` only at service layer
35
64
  - Fix issues if any, re-commit
36
65
 
37
- #### Step 2b — Handle reviewer feedback (if any)
66
+ #### Step 3b — Handle reviewer feedback (if any)
38
67
  - If the review has feedback that needs to be addressed:
39
68
  - Use `superpowers:receiving-code-review` — systematic response, no ad-hoc fixes
40
69
  - Fix → re-commit → re-review if needed
41
70
 
42
- ### Step 3 — Review Layer 1.5: Adversarial Review
71
+ ### Step 4 — Review Layer 1.5: Adversarial Review
43
72
  - Use skill `bmad-review-adversarial-general` — cynical attack on new code
44
73
  - Look for: logic flaws, security holes, performance traps, silent failures
45
74
  - Use skill `bmad-review-edge-case-hunter` — exhaustive boundary analysis
@@ -49,21 +78,21 @@ Multi-layer review, verify scope, validate architecture, push PR. Ensure code ha
49
78
  - **SHOULD FIX**: create a follow-up task
50
79
  - **NOTED**: acknowledged, no action needed
51
80
 
52
- ### Step 4 — Architectural constraint check (GitNexus)
81
+ ### Step 5 — Architectural constraint check (GitNexus)
53
82
  - Run `gitnexus_shape_check` — validate no architectural constraints are violated
54
83
  - If there are violations: **STOP** — fix before proceeding
55
84
 
56
- ### Step 5 — Review Layer 2: Knowledge graph sync
85
+ ### Step 6 — Review Layer 2: Knowledge graph sync
57
86
  - Run `vsaf index` (= `gitnexus analyze`)
58
87
  - Update the call graph to reflect the new code
59
88
  - This is the final layer — ensure the index accurately reflects the current code state
60
89
 
61
- ### Step 6 — Final verification gate (Superpowers)
90
+ ### Step 7 — Final verification gate (Superpowers)
62
91
  - Use `superpowers:verification-before-completion`
63
92
  - Confirm all deliverables match the spec — not just "tests pass"
64
93
  - This is the final gate before PR
65
94
 
66
- ### Step 7 — Pre-PR checklist (Superpowers)
95
+ ### Step 8 — Pre-PR checklist (Superpowers)
67
96
  - **If Superpowers is available**: use `superpowers:finishing-a-development-branch` — automated pre-PR checklist
68
97
  - **If not**: check manually:
69
98
  - [ ] Tests pass
@@ -72,7 +101,7 @@ Multi-layer review, verify scope, validate architecture, push PR. Ensure code ha
72
101
  - [ ] Test results file exists
73
102
  - [ ] All MUST FIX resolved
74
103
 
75
- ### Step 8 — Push PR
104
+ ### Step 9 — Push PR
76
105
  ```bash
77
106
  git push origin feature/<name>
78
107
  ```
@@ -82,13 +111,15 @@ PR description must include:
82
111
  - Adversarial triage: MUST FIX: 0, SHOULD FIX: N, NOTED: N
83
112
  - Shape check result
84
113
 
85
- ### Step 9 — Output to user
114
+ ### Step 10 — Output to user
86
115
  ```
87
116
  ## Ship Complete: [feature]
88
117
 
89
118
  ### Reviews
90
119
  - Scope check (detect_changes): PASS — [N files, N symbols changed]
120
+ - Verification gate: PASS [compile ✓, tests ✓, run ✓, endpoint ✓]
91
121
  - Layer 1 (Code Review): PASS [superpowers / bmad-code-review]
122
+ - SonarQube gate: PASS [Blockers: 0, Criticals: 0, Coverage: X%]
92
123
  - Layer 1.5 (Adversarial): PASS [MUST FIX: 0, SHOULD FIX: N, NOTED: N]
93
124
  - Shape check: PASS
94
125
  - Layer 2 (Graph sync): PASS
@@ -5,6 +5,14 @@ description: "Two modes: (1) generate testcases from SRS — used after /vsaf-do
5
5
 
6
6
  # VSAF Test
7
7
 
8
+ ## Applied Rules
9
+
10
+ > The run-verification rule applies to **Mode 2 (run)** only. Test generation (Mode 1) is a documentation activity.
11
+
12
+ | Rule | File | Applies to |
13
+ |------|------|------------|
14
+ | Run Verification After Coding | `.vsaf/rules/dev/java/run_verification_after_coding.md` | Mode 2: Run — executing tests + recording results |
15
+
8
16
  ## Mode distinction
9
17
 
10
18
  | Command | Mode | Goal |
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "code-review-graph": {
4
+ "command": "uvx",
5
+ "args": [
6
+ "code-review-graph",
7
+ "serve"
8
+ ]
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "version": "1.5.0",
3
+ "plugins_used": [
4
+ {
5
+ "name": "ArtifactoryDetector"
6
+ },
7
+ {
8
+ "name": "AWSKeyDetector"
9
+ },
10
+ {
11
+ "name": "AzureStorageKeyDetector"
12
+ },
13
+ {
14
+ "name": "Base64HighEntropyString",
15
+ "limit": 4.5
16
+ },
17
+ {
18
+ "name": "BasicAuthDetector"
19
+ },
20
+ {
21
+ "name": "CloudantDetector"
22
+ },
23
+ {
24
+ "name": "DiscordBotTokenDetector"
25
+ },
26
+ {
27
+ "name": "GitHubTokenDetector"
28
+ },
29
+ {
30
+ "name": "GitLabTokenDetector"
31
+ },
32
+ {
33
+ "name": "HexHighEntropyString",
34
+ "limit": 3.0
35
+ },
36
+ {
37
+ "name": "IbmCloudIamDetector"
38
+ },
39
+ {
40
+ "name": "IbmCosHmacDetector"
41
+ },
42
+ {
43
+ "name": "IPPublicDetector"
44
+ },
45
+ {
46
+ "name": "JwtTokenDetector"
47
+ },
48
+ {
49
+ "name": "KeywordDetector",
50
+ "keyword_exclude": ""
51
+ },
52
+ {
53
+ "name": "MailchimpDetector"
54
+ },
55
+ {
56
+ "name": "NpmDetector"
57
+ },
58
+ {
59
+ "name": "OpenAIDetector"
60
+ },
61
+ {
62
+ "name": "PrivateKeyDetector"
63
+ },
64
+ {
65
+ "name": "PypiTokenDetector"
66
+ },
67
+ {
68
+ "name": "SendGridDetector"
69
+ },
70
+ {
71
+ "name": "SlackDetector"
72
+ },
73
+ {
74
+ "name": "SoftlayerDetector"
75
+ },
76
+ {
77
+ "name": "SquareOAuthDetector"
78
+ },
79
+ {
80
+ "name": "StripeDetector"
81
+ },
82
+ {
83
+ "name": "TelegramBotTokenDetector"
84
+ },
85
+ {
86
+ "name": "TwilioKeyDetector"
87
+ }
88
+ ],
89
+ "filters_used": [
90
+ {
91
+ "path": "detect_secrets.filters.allowlist.is_line_allowlisted"
92
+ },
93
+ {
94
+ "path": "detect_secrets.filters.common.is_ignored_due_to_verification_policies",
95
+ "min_level": 2
96
+ },
97
+ {
98
+ "path": "detect_secrets.filters.heuristic.is_indirect_reference"
99
+ },
100
+ {
101
+ "path": "detect_secrets.filters.heuristic.is_likely_id_string"
102
+ },
103
+ {
104
+ "path": "detect_secrets.filters.heuristic.is_lock_file"
105
+ },
106
+ {
107
+ "path": "detect_secrets.filters.heuristic.is_not_alphanumeric_string"
108
+ },
109
+ {
110
+ "path": "detect_secrets.filters.heuristic.is_potential_uuid"
111
+ },
112
+ {
113
+ "path": "detect_secrets.filters.heuristic.is_prefixed_with_dollar_sign"
114
+ },
115
+ {
116
+ "path": "detect_secrets.filters.heuristic.is_sequential_string"
117
+ },
118
+ {
119
+ "path": "detect_secrets.filters.heuristic.is_swagger_file"
120
+ },
121
+ {
122
+ "path": "detect_secrets.filters.heuristic.is_templated_secret"
123
+ },
124
+ {
125
+ "path": "detect_secrets.filters.regex.should_exclude_file",
126
+ "pattern": [
127
+ ".*"
128
+ ]
129
+ }
130
+ ],
131
+ "results": {},
132
+ "generated_at": "2026-01-29T05:10:47Z"
133
+ }
@@ -0,0 +1,152 @@
1
+ # AGENTS.md — VDS Scripts Workspace
2
+
3
+ Audit orchestrator: **8439 tests**, spec v4.93.0 (Phase 152 Planned)
4
+
5
+ Operational rules for `WHO-project/vds-scripts`.
6
+
7
+ ## Scope
8
+
9
+ - UV workspace for VDS automation CLIs.
10
+ - Audit baseline is tracked in `.gpt-5.4/specs/audit-orchestrator/`.
11
+ - Use this file for scripts-workspace rules; use `CLAUDE.md` here only for GitNexus/tool overlays.
12
+
13
+ ## Core Rules
14
+
15
+ - Use `./scripts/worktree_uv.sh` for worktree-safe commands.
16
+ - Runtime is Postgres-first. Do not add filesystem fallback for audit state/evidence.
17
+ - Use the VDS Python SDK for Confluence and Bitbucket operations.
18
+ - Keep spec guidance latest-only; do not reopen completed audit sidecars.
19
+
20
+ ## Current Runtime Truth
21
+
22
+ - `workflow-project` is the authoritative single-project execution path.
23
+ - `workflow-projects` is the parent orchestration surface and forwards upload behavior to child `workflow-project` runs.
24
+ - Repo-page publication defaults to the canonical project page as the hierarchy anchor.
25
+ - The publisher creates one shared `Project Audit - <project name> (<project page id>)` page directly under the project page and one repo report page per repo beneath it.
26
+ - `--confluence-parent` is a manual override only.
27
+ - `workflow` and `workflow-project` generate PDF reports by default; use `--no-generate-pdf` to disable.
28
+
29
+ ## Canonical Commands
30
+
31
+ ```bash
32
+ ./scripts/worktree_uv.sh sync --all-packages
33
+ ./scripts/worktree_uv.sh run --project audit_orchestrator vds-audit --help
34
+ ./scripts/worktree_uv.sh run --project spec_orchestrator vds-spec --help
35
+ ./scripts/worktree_uv.sh run --project vds_cli vds-cli --help
36
+ ```
37
+
38
+ ## Required Validation
39
+
40
+ ```bash
41
+ ./scripts/worktree_uv.sh run --project spec_orchestrator vds-spec validate audit-orchestrator
42
+ ./scripts/worktree_uv.sh run --project spec_orchestrator vds-spec check-alignment audit-orchestrator
43
+ ./scripts/worktree_uv.sh run --project spec_orchestrator vds-spec validate-sync audit-orchestrator --agents-file AGENTS.md --agents-label 'Audit orchestrator' --json-only
44
+ ```
45
+
46
+ ## References
47
+
48
+ - Root policy: `../../AGENTS.md`
49
+ - WHO router: `../AGENTS.md`
50
+ - Docs: `docs/agents/`
51
+
52
+ <!-- gitnexus:start -->
53
+ # GitNexus — Code Intelligence
54
+
55
+ This project is indexed by GitNexus as **phase150-eval-timeout-resilience** (38818 symbols, 99103 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
56
+
57
+ > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first.
58
+
59
+ ## Always Do
60
+
61
+ - **MUST run impact analysis before editing any symbol.** Before modifying a function, class, or method, run `gitnexus_impact({target: "symbolName", direction: "upstream"})` and report the blast radius (direct callers, affected processes, risk level) to the user.
62
+ - **MUST run `gitnexus_detect_changes()` before committing** to verify your changes only affect expected symbols and execution flows.
63
+ - **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
64
+ - When exploring unfamiliar code, use `gitnexus_query({query: "concept"})` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
65
+ - When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use `gitnexus_context({name: "symbolName"})`.
66
+
67
+ ## When Debugging
68
+
69
+ 1. `gitnexus_query({query: "<error or symptom>"})` — find execution flows related to the issue
70
+ 2. `gitnexus_context({name: "<suspect function>"})` — see all callers, callees, and process participation
71
+ 3. `READ gitnexus://repo/phase150-eval-timeout-resilience/process/{processName}` — trace the full execution flow step by step
72
+ 4. For regressions: `gitnexus_detect_changes({scope: "compare", base_ref: "main"})` — see what your branch changed
73
+
74
+ ## When Refactoring
75
+
76
+ - **Renaming**: MUST use `gitnexus_rename({symbol_name: "old", new_name: "new", dry_run: true})` first. Review the preview — graph edits are safe, text_search edits need manual review. Then run with `dry_run: false`.
77
+ - **Extracting/Splitting**: MUST run `gitnexus_context({name: "target"})` to see all incoming/outgoing refs, then `gitnexus_impact({target: "target", direction: "upstream"})` to find all external callers before moving code.
78
+ - After any refactor: run `gitnexus_detect_changes({scope: "all"})` to verify only expected files changed.
79
+
80
+ ## Never Do
81
+
82
+ - NEVER edit a function, class, or method without first running `gitnexus_impact` on it.
83
+ - NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
84
+ - NEVER rename symbols with find-and-replace — use `gitnexus_rename` which understands the call graph.
85
+ - NEVER commit changes without running `gitnexus_detect_changes()` to check affected scope.
86
+
87
+ ## Tools Quick Reference
88
+
89
+ | Tool | When to use | Command |
90
+ |------|-------------|---------|
91
+ | `query` | Find code by concept | `gitnexus_query({query: "auth validation"})` |
92
+ | `context` | 360-degree view of one symbol | `gitnexus_context({name: "validateUser"})` |
93
+ | `impact` | Blast radius before editing | `gitnexus_impact({target: "X", direction: "upstream"})` |
94
+ | `detect_changes` | Pre-commit scope check | `gitnexus_detect_changes({scope: "staged"})` |
95
+ | `rename` | Safe multi-file rename | `gitnexus_rename({symbol_name: "old", new_name: "new", dry_run: true})` |
96
+ | `cypher` | Custom graph queries | `gitnexus_cypher({query: "MATCH ..."})` |
97
+
98
+ ## Impact Risk Levels
99
+
100
+ | Depth | Meaning | Action |
101
+ |-------|---------|--------|
102
+ | d=1 | WILL BREAK — direct callers/importers | MUST update these |
103
+ | d=2 | LIKELY AFFECTED — indirect deps | Should test |
104
+ | d=3 | MAY NEED TESTING — transitive | Test if critical path |
105
+
106
+ ## Resources
107
+
108
+ | Resource | Use for |
109
+ |----------|---------|
110
+ | `gitnexus://repo/phase150-eval-timeout-resilience/context` | Codebase overview, check index freshness |
111
+ | `gitnexus://repo/phase150-eval-timeout-resilience/clusters` | All functional areas |
112
+ | `gitnexus://repo/phase150-eval-timeout-resilience/processes` | All execution flows |
113
+ | `gitnexus://repo/phase150-eval-timeout-resilience/process/{name}` | Step-by-step execution trace |
114
+
115
+ ## Self-Check Before Finishing
116
+
117
+ Before completing any code modification task, verify:
118
+ 1. `gitnexus_impact` was run for all modified symbols
119
+ 2. No HIGH/CRITICAL risk warnings were ignored
120
+ 3. `gitnexus_detect_changes()` confirms changes match expected scope
121
+ 4. All d=1 (WILL BREAK) dependents were updated
122
+
123
+ ## Keeping the Index Fresh
124
+
125
+ After committing code changes, the GitNexus index becomes stale. Re-run analyze to update it:
126
+
127
+ ```bash
128
+ npx gitnexus analyze
129
+ ```
130
+
131
+ If the index previously included embeddings, preserve them by adding `--embeddings`:
132
+
133
+ ```bash
134
+ npx gitnexus analyze --embeddings
135
+ ```
136
+
137
+ To check whether embeddings exist, inspect `.gitnexus/meta.json` — the `stats.embeddings` field shows the count (0 means no embeddings). **Running analyze without `--embeddings` will delete any previously generated embeddings.**
138
+
139
+ > Claude Code users: A PostToolUse hook handles this automatically after `git commit` and `git merge`.
140
+
141
+ ## CLI
142
+
143
+ | Task | Read this skill file |
144
+ |------|---------------------|
145
+ | Understand architecture / "How does X work?" | `.claude/skills/gitnexus/gitnexus-exploring/SKILL.md` |
146
+ | Blast radius / "What breaks if I change X?" | `.claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md` |
147
+ | Trace bugs / "Why is X failing?" | `.claude/skills/gitnexus/gitnexus-debugging/SKILL.md` |
148
+ | Rename / extract / split / refactor | `.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md` |
149
+ | Tools, resources, schema reference | `.claude/skills/gitnexus/gitnexus-guide/SKILL.md` |
150
+ | Index, status, clean, wiki CLI commands | `.claude/skills/gitnexus/gitnexus-cli/SKILL.md` |
151
+
152
+ <!-- gitnexus:end -->
@@ -0,0 +1,101 @@
1
+ <!-- gitnexus:start -->
2
+ # GitNexus — Code Intelligence
3
+
4
+ This project is indexed by GitNexus as **phase150-eval-timeout-resilience** (38818 symbols, 99103 relationships, 300 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
5
+
6
+ > If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first.
7
+
8
+ ## Always Do
9
+
10
+ - **MUST run impact analysis before editing any symbol.** Before modifying a function, class, or method, run `gitnexus_impact({target: "symbolName", direction: "upstream"})` and report the blast radius (direct callers, affected processes, risk level) to the user.
11
+ - **MUST run `gitnexus_detect_changes()` before committing** to verify your changes only affect expected symbols and execution flows.
12
+ - **MUST warn the user** if impact analysis returns HIGH or CRITICAL risk before proceeding with edits.
13
+ - When exploring unfamiliar code, use `gitnexus_query({query: "concept"})` to find execution flows instead of grepping. It returns process-grouped results ranked by relevance.
14
+ - When you need full context on a specific symbol — callers, callees, which execution flows it participates in — use `gitnexus_context({name: "symbolName"})`.
15
+
16
+ ## When Debugging
17
+
18
+ 1. `gitnexus_query({query: "<error or symptom>"})` — find execution flows related to the issue
19
+ 2. `gitnexus_context({name: "<suspect function>"})` — see all callers, callees, and process participation
20
+ 3. `READ gitnexus://repo/phase150-eval-timeout-resilience/process/{processName}` — trace the full execution flow step by step
21
+ 4. For regressions: `gitnexus_detect_changes({scope: "compare", base_ref: "main"})` — see what your branch changed
22
+
23
+ ## When Refactoring
24
+
25
+ - **Renaming**: MUST use `gitnexus_rename({symbol_name: "old", new_name: "new", dry_run: true})` first. Review the preview — graph edits are safe, text_search edits need manual review. Then run with `dry_run: false`.
26
+ - **Extracting/Splitting**: MUST run `gitnexus_context({name: "target"})` to see all incoming/outgoing refs, then `gitnexus_impact({target: "target", direction: "upstream"})` to find all external callers before moving code.
27
+ - After any refactor: run `gitnexus_detect_changes({scope: "all"})` to verify only expected files changed.
28
+
29
+ ## Never Do
30
+
31
+ - NEVER edit a function, class, or method without first running `gitnexus_impact` on it.
32
+ - NEVER ignore HIGH or CRITICAL risk warnings from impact analysis.
33
+ - NEVER rename symbols with find-and-replace — use `gitnexus_rename` which understands the call graph.
34
+ - NEVER commit changes without running `gitnexus_detect_changes()` to check affected scope.
35
+
36
+ ## Tools Quick Reference
37
+
38
+ | Tool | When to use | Command |
39
+ |------|-------------|---------|
40
+ | `query` | Find code by concept | `gitnexus_query({query: "auth validation"})` |
41
+ | `context` | 360-degree view of one symbol | `gitnexus_context({name: "validateUser"})` |
42
+ | `impact` | Blast radius before editing | `gitnexus_impact({target: "X", direction: "upstream"})` |
43
+ | `detect_changes` | Pre-commit scope check | `gitnexus_detect_changes({scope: "staged"})` |
44
+ | `rename` | Safe multi-file rename | `gitnexus_rename({symbol_name: "old", new_name: "new", dry_run: true})` |
45
+ | `cypher` | Custom graph queries | `gitnexus_cypher({query: "MATCH ..."})` |
46
+
47
+ ## Impact Risk Levels
48
+
49
+ | Depth | Meaning | Action |
50
+ |-------|---------|--------|
51
+ | d=1 | WILL BREAK — direct callers/importers | MUST update these |
52
+ | d=2 | LIKELY AFFECTED — indirect deps | Should test |
53
+ | d=3 | MAY NEED TESTING — transitive | Test if critical path |
54
+
55
+ ## Resources
56
+
57
+ | Resource | Use for |
58
+ |----------|---------|
59
+ | `gitnexus://repo/phase150-eval-timeout-resilience/context` | Codebase overview, check index freshness |
60
+ | `gitnexus://repo/phase150-eval-timeout-resilience/clusters` | All functional areas |
61
+ | `gitnexus://repo/phase150-eval-timeout-resilience/processes` | All execution flows |
62
+ | `gitnexus://repo/phase150-eval-timeout-resilience/process/{name}` | Step-by-step execution trace |
63
+
64
+ ## Self-Check Before Finishing
65
+
66
+ Before completing any code modification task, verify:
67
+ 1. `gitnexus_impact` was run for all modified symbols
68
+ 2. No HIGH/CRITICAL risk warnings were ignored
69
+ 3. `gitnexus_detect_changes()` confirms changes match expected scope
70
+ 4. All d=1 (WILL BREAK) dependents were updated
71
+
72
+ ## Keeping the Index Fresh
73
+
74
+ After committing code changes, the GitNexus index becomes stale. Re-run analyze to update it:
75
+
76
+ ```bash
77
+ npx gitnexus analyze
78
+ ```
79
+
80
+ If the index previously included embeddings, preserve them by adding `--embeddings`:
81
+
82
+ ```bash
83
+ npx gitnexus analyze --embeddings
84
+ ```
85
+
86
+ To check whether embeddings exist, inspect `.gitnexus/meta.json` — the `stats.embeddings` field shows the count (0 means no embeddings). **Running analyze without `--embeddings` will delete any previously generated embeddings.**
87
+
88
+ > Claude Code users: A PostToolUse hook handles this automatically after `git commit` and `git merge`.
89
+
90
+ ## CLI
91
+
92
+ | Task | Read this skill file |
93
+ |------|---------------------|
94
+ | Understand architecture / "How does X work?" | `.claude/skills/gitnexus/gitnexus-exploring/SKILL.md` |
95
+ | Blast radius / "What breaks if I change X?" | `.claude/skills/gitnexus/gitnexus-impact-analysis/SKILL.md` |
96
+ | Trace bugs / "Why is X failing?" | `.claude/skills/gitnexus/gitnexus-debugging/SKILL.md` |
97
+ | Rename / extract / split / refactor | `.claude/skills/gitnexus/gitnexus-refactoring/SKILL.md` |
98
+ | Tools, resources, schema reference | `.claude/skills/gitnexus/gitnexus-guide/SKILL.md` |
99
+ | Index, status, clean, wiki CLI commands | `.claude/skills/gitnexus/gitnexus-cli/SKILL.md` |
100
+
101
+ <!-- gitnexus:end -->