@ngocsangairvds/vsaf 3.1.27 → 3.2.1
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.
- package/package.json +2 -2
- package/src/global.js +70 -10
- package/tools/skills/vds-scripts-skill/.openskills.json +6 -0
- package/tools/skills/vds-scripts-skill/QUALITY.md +44 -0
- package/tools/skills/vds-scripts-skill/SKILL.md +135 -0
- package/tools/skills/vds-scripts-skill/references/audit-commands.md +171 -0
- package/tools/skills/vds-scripts-skill/references/capability-index.md +34 -0
- package/tools/skills/vds-scripts-skill/references/development-commands.md +12 -0
- package/tools/skills/vds-scripts-skill/references/google-sheets.md +73 -0
- package/tools/skills/vds-scripts-skill/references/integration-commands.md +17 -0
- package/tools/skills/vds-scripts-skill/references/platform-bootstrap.md +31 -0
- package/tools/skills/vds-scripts-skill/references/specialist-routing.md +14 -0
- package/tools/skills/vds-scripts-skill/references/validation-commands.md +15 -0
- package/tools/skills/vsaf-build/SKILL.md +32 -2
- package/tools/skills/vsaf-ship/SKILL.md +41 -10
- package/tools/skills/vsaf-test/SKILL.md +8 -0
- package/tools/vds-scripts/.mcp.json +11 -0
- package/tools/vds-scripts/.secrets.baseline +133 -0
- package/tools/vds-scripts/AGENTS.md +152 -0
- package/tools/vds-scripts/CLAUDE.md +101 -0
- package/tools/vds-scripts/CLI_COMMAND_OPTIMIZATION.md +156 -0
- package/tools/vds-scripts/PACKAGE_P125B_IMPLEMENTATION_SUMMARY.md +131 -0
- package/tools/vds-scripts/PROJECT_COMPLETION_SUMMARY.md +45 -0
- package/tools/vds-scripts/README.md +97 -0
- package/tools/vds-scripts/bitbucket_manifest_mapping.toml +34 -0
- package/tools/vds-scripts/bitbucket_orchestrator/ARCHITECTURE_ANALYSIS.md +258 -0
- package/tools/vds-scripts/bitbucket_orchestrator/BITBUCKET_API_PRACTICES.md +393 -0
- package/tools/vds-scripts/bitbucket_orchestrator/EVALUATION_REPORT.md +61 -0
- package/tools/vds-scripts/bitbucket_orchestrator/FEATURES.md +908 -0
- package/tools/vds-scripts/bitbucket_orchestrator/README.md +687 -0
- package/tools/vds-scripts/bitbucket_orchestrator/pyproject.toml +40 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/async_client.py +657 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/cli.py +2108 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/client.py +2534 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/config.py +171 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/factory.py +185 -0
- package/tools/vds-scripts/bitbucket_orchestrator/src/vds_bitbucket_orchestrator/protocols.py +244 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/__init__.py +8 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/conftest.py +65 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_advanced_search.py +151 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_async_client.py +546 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_branch_permissions.py +145 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_cli.py +115 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client.py +157 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_branch_conditions.py +79 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_advanced.py +163 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_code_file.py +32 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_deployment_environments.py +194 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_issues.py +164 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pipelines_advanced.py +179 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_pr_blockers.py +119 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_client_repository_variables.py +156 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code.py +98 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_advanced.py +282 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_code_insights.py +335 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_conditions.py +147 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_config.py +131 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_deployment_env.py +352 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_factory.py +371 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_fork_operations.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_issue_cli.py +261 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pipeline_advanced.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_pr_blocker.py +204 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_protocols.py +334 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_settings.py +343 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_repo_variables.py +270 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_webhooks.py +189 -0
- package/tools/vds-scripts/bitbucket_orchestrator/tests/test_workspace.py +233 -0
- package/tools/vds-scripts/bitbucket_orchestrator/uv.lock +742 -0
- package/tools/vds-scripts/confluence_orchestrator/Dockerfile +19 -0
- package/tools/vds-scripts/confluence_orchestrator/README.md +412 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_SCRIPTS.md +127 -0
- package/tools/vds-scripts/confluence_orchestrator/SYNC_STANDARDIZATION.md +108 -0
- package/tools/vds-scripts/confluence_orchestrator/pyproject.toml +48 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/__init__.py +20 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/cli.py +2532 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/config.py +175 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content.py +290 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/content_v2.py +94 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/crawl_tree.py +1835 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/errors.py +80 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/eventing.py +109 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/http.py +1114 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/orchestration.py +165 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/reporting.py +78 -0
- package/tools/vds-scripts/confluence_orchestrator/src/confluence_orchestrator/tree.py +121 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_from_markdown.py +213 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_pdfs_to_confluence.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/sync_png_attachments.py +305 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/conftest.py +8 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_content.py +224 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_advanced_search.py +188 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cache_management.py +247 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_cli.py +499 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_config.py +83 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content.py +186 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_content_flags.py +27 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_crawl_tree.py +2250 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_draft_management.py +223 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing.py +71 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_chaos.py +37 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_rate_limit.py +44 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_eventing_timeout.py +49 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_export.py +230 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_history.py +204 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_http.py +117 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_orchestration.py +91 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_reporting.py +24 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_search_cql.py +34 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_management.py +237 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_space_permissions.py +332 -0
- package/tools/vds-scripts/confluence_orchestrator/tests/test_user_group_management.py +388 -0
- package/tools/vds-scripts/confluence_orchestrator/uv.lock +1023 -0
- package/tools/vds-scripts/git_orchestrator/ENHANCEMENT_SUMMARY.md +119 -0
- package/tools/vds-scripts/git_orchestrator/README.md +280 -0
- package/tools/vds-scripts/git_orchestrator/VERIFICATION_REPORT.md +152 -0
- package/tools/vds-scripts/git_orchestrator/pyproject.toml +35 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__init__.py +7 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/__main__.py +4 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/cli.py +847 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/logging_config.py +63 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/manifest.py +129 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/orchestrator.py +819 -0
- package/tools/vds-scripts/git_orchestrator/src/vds_git_orchestrator/reporting.py +53 -0
- package/tools/vds-scripts/git_orchestrator/tests/__init__.py +0 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_cli_settings.py +21 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_integration.py +74 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_manifest.py +79 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_orchestrator.py +204 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_public_api.py +236 -0
- package/tools/vds-scripts/git_orchestrator/tests/test_resilience.py +345 -0
- package/tools/vds-scripts/git_orchestrator/uv.lock +271 -0
- package/tools/vds-scripts/jira_orchestrator/README.md +770 -0
- package/tools/vds-scripts/jira_orchestrator/pyproject.toml +39 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/adapter.py +1320 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/cli.py +2271 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/config.py +138 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/errors.py +67 -0
- package/tools/vds-scripts/jira_orchestrator/src/vds_jira_orchestrator/reporting.py +65 -0
- package/tools/vds-scripts/jira_orchestrator/tests/__init__.py +1 -0
- package/tools/vds-scripts/jira_orchestrator/tests/conftest.py +86 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_agile_list_payloads.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_bulk_operations.py +69 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_components.py +57 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_createmeta.py +45 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_dashboard.py +117 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_issue_properties.py +54 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_permissions_compat.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_reindex.py +42 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_remote_links.py +76 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_transitions.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_user_management.py +110 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_version_management.py +133 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_adapter_watchers.py +41 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_advanced_search.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_agile.py +256 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_application_properties.py +193 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_backlog.py +91 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_bulk_operations.py +277 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_cli.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_components.py +106 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_config.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_dashboard.py +122 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_discover_fields.py +207 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_filter_management.py +333 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_archiving.py +164 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_links.py +257 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_issue_properties.py +171 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_link_types.py +314 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_parse_set.py +37 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_permissions.py +273 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_reindex.py +81 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_remote_links.py +254 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_security_schemes.py +170 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_transitions_changelog.py +114 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_user_management.py +226 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_version_management.py +339 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_watchers.py +101 -0
- package/tools/vds-scripts/jira_orchestrator/tests/test_worklog.py +223 -0
- package/tools/vds-scripts/jira_orchestrator/uv.lock +738 -0
- package/tools/vds-scripts/mcp_server/Dockerfile +34 -0
- package/tools/vds-scripts/mcp_server/README.md +140 -0
- package/tools/vds-scripts/mcp_server/pyproject.toml +42 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/__init__.py +4 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/config.py +36 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/server.py +66 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/__init__.py +14 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/bitbucket_tools.py +47 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/confluence_tools.py +59 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/git_tools.py +71 -0
- package/tools/vds-scripts/mcp_server/src/vds_mcp_server/tools/jira_tools.py +63 -0
- package/tools/vds-scripts/mcp_server/tests/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/conftest.py +29 -0
- package/tools/vds-scripts/mcp_server/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_bitbucket_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_confluence_tools.py +25 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_git_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/unit/test_jira_tools.py +32 -0
- package/tools/vds-scripts/mcp_server/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_confluence_tools.py +40 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_jira_tools.py +37 -0
- package/tools/vds-scripts/mcp_server/tests/verification/test_mcp_tool_registration.py +47 -0
- package/tools/vds-scripts/mcp_server/uv.lock +1032 -0
- package/tools/vds-scripts/mypy.ini +5 -0
- package/tools/vds-scripts/pyproject.toml +29 -0
- package/tools/vds-scripts/repo-manifest.yaml +273 -0
- package/tools/vds-scripts/repo-manifest.yaml.example +25 -0
- package/tools/vds-scripts/scripts/BRD-Validation-API.postman_collection.json +706 -0
- package/tools/vds-scripts/scripts/BRD-Validation-README.md +308 -0
- package/tools/vds-scripts/scripts/README.md +162 -0
- package/tools/vds-scripts/scripts/bootstrap_uv.sh +30 -0
- package/tools/vds-scripts/scripts/brd-validation-environment.json +51 -0
- package/tools/vds-scripts/scripts/brd-validation-test-results.json +13023 -0
- package/tools/vds-scripts/scripts/brd_coverage_report.json +276 -0
- package/tools/vds-scripts/scripts/create_memory_session.py +35 -0
- package/tools/vds-scripts/scripts/deployment/load_docker_images_offline.sh +90 -0
- package/tools/vds-scripts/scripts/final_completion_report.md +139 -0
- package/tools/vds-scripts/scripts/folder_structure_report.json +321 -0
- package/tools/vds-scripts/scripts/generate_completion_report.py +125 -0
- package/tools/vds-scripts/scripts/generate_intellij_modules.py +150 -0
- package/tools/vds-scripts/scripts/link_integrity_report.json +807 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages.py +255 -0
- package/tools/vds-scripts/scripts/move_audit_artifact_pages_rest.py +165 -0
- package/tools/vds-scripts/scripts/move_wrong_dept_pages.py +216 -0
- package/tools/vds-scripts/scripts/save_intellij_memories.py +120 -0
- package/tools/vds-scripts/scripts/save_memories_to_vds_ai.py +83 -0
- package/tools/vds-scripts/scripts/save_memories_vds_style.py +129 -0
- package/tools/vds-scripts/scripts/search_intellij_memories.py +50 -0
- package/tools/vds-scripts/scripts/setup_intellij_workspace.py +65 -0
- package/tools/vds-scripts/scripts/target-state-automation/README.md +89 -0
- package/tools/vds-scripts/scripts/target-state-automation/confluence_sync_coordinator.sh +27 -0
- package/tools/vds-scripts/scripts/target-state-automation/coordination.sh +114 -0
- package/tools/vds-scripts/scripts/target-state-automation/diagram_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/docs_root.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/generate_diagrams.sh +22 -0
- package/tools/vds-scripts/scripts/target-state-automation/markdown_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/progress_dashboard.sh +17 -0
- package/tools/vds-scripts/scripts/target-state-automation/schema_coordinator.sh +25 -0
- package/tools/vds-scripts/scripts/target-state-automation/sync_confluence.sh +30 -0
- package/tools/vds-scripts/scripts/target-state-automation/update_dependencies.sh +19 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_links.sh +86 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_markdown.sh +52 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_schemas.sh +26 -0
- package/tools/vds-scripts/scripts/target-state-automation/validate_structure.sh +98 -0
- package/tools/vds-scripts/scripts/update_modules_xml.py +190 -0
- package/tools/vds-scripts/scripts/uv-workspace-alignment-verification-2026-03-25.md +128 -0
- package/tools/vds-scripts/scripts/validate_brd_coverage.py +179 -0
- package/tools/vds-scripts/scripts/validate_folder_structure.py +240 -0
- package/tools/vds-scripts/scripts/validate_link_integrity.py +272 -0
- package/tools/vds-scripts/scripts/vds_sh_helpers.sh +180 -0
- package/tools/vds-scripts/scripts/verification/phase2_portable_paths_ubuntu_docker.sh +26 -0
- package/tools/vds-scripts/scripts/worktree_uv.sh +48 -0
- package/tools/vds-scripts/uv.lock +8 -0
- package/tools/vds-scripts/vds_cli/README.md +126 -0
- package/tools/vds-scripts/vds_cli/VERIFICATION_REPORT.md +41 -0
- package/tools/vds-scripts/vds_cli/pyproject.toml +38 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/cli.py +173 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/docs_sync.py +1203 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/env.py +41 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/__init__.py +3 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/google_sheets_orchestrator/google_sheets_orchestrator.py +198 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/router.py +93 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_api.py +647 -0
- package/tools/vds-scripts/vds_cli/src/vds_cli/sync_service.py +266 -0
- package/tools/vds-scripts/vds_cli/tests/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/conftest.py +49 -0
- package/tools/vds-scripts/vds_cli/tests/unit/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_cli.py +143 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_docs_sync.py +422 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_env.py +51 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_router.py +72 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_api.py +357 -0
- package/tools/vds-scripts/vds_cli/tests/unit/test_sync_service.py +160 -0
- package/tools/vds-scripts/vds_cli/tests/verification/__init__.py +2 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_bitbucket_real.py +33 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_confluence_real.py +35 -0
- package/tools/vds-scripts/vds_cli/tests/verification/test_jira_real.py +41 -0
- package/tools/vds-scripts/vds_cli/uv.lock +524 -0
- package/tools/vds-scripts/vds_cli_common/README.md +190 -0
- package/tools/vds-scripts/vds_cli_common/pyproject.toml +92 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/__init__.py +34 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/completers.py +139 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/context.py +201 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/env.py +119 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/errors.py +318 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/output.py +284 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/paths.py +78 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/testing.py +213 -0
- package/tools/vds-scripts/vds_cli_common/src/vds_cli_common/version.py +85 -0
- package/tools/vds-scripts/vds_cli_common/tests/__init__.py +1 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_completers.py +148 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_context.py +192 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_env.py +102 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_errors.py +186 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_output.py +229 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_paths.py +61 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_testing.py +138 -0
- package/tools/vds-scripts/vds_cli_common/tests/test_version.py +64 -0
|
@@ -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
|
-
-
|
|
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 —
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,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 -->
|