@codyswann/lisa 1.56.0 → 1.56.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.
- package/.claude-plugin/marketplace.json +11 -5
- package/all/merge/.claude/settings.json +7 -0
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +148 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +3 -159
- package/plugins/lisa-expo/.claude-plugin/plugin.json +2 -146
- package/plugins/lisa-expo/commands/jira/add-journey.md +1 -1
- package/plugins/lisa-expo/commands/jira/create.md +1 -1
- package/plugins/lisa-expo/commands/jira/evidence.md +1 -1
- package/plugins/lisa-expo/commands/jira/journey.md +1 -1
- package/plugins/lisa-expo/commands/jira/verify.md +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +3 -159
- package/plugins/lisa-rails/.claude-plugin/plugin.json +2 -120
- package/plugins/lisa-rails/commands/jira/add-journey.md +1 -1
- package/plugins/lisa-rails/commands/jira/create.md +1 -1
- package/plugins/lisa-rails/commands/jira/evidence.md +1 -1
- package/plugins/lisa-rails/commands/jira/journey.md +1 -1
- package/plugins/lisa-rails/commands/jira/verify.md +1 -1
- package/plugins/lisa-rails/commands/plan/add-test-coverage.md +1 -1
- package/plugins/lisa-rails/commands/plan/fix-linter-error.md +1 -1
- package/plugins/lisa-rails/commands/plan/lower-code-complexity.md +1 -1
- package/plugins/lisa-rails/commands/plan/reduce-max-lines-per-function.md +1 -1
- package/plugins/lisa-rails/commands/plan/reduce-max-lines.md +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +2 -127
- package/plugins/src/base/.claude-plugin/plugin.json +78 -0
- package/plugins/src/cdk/.claude-plugin/plugin.json +2 -81
- package/plugins/src/expo/.claude-plugin/plugin.json +1 -68
- package/plugins/{lisa-typescript → src/expo}/commands/jira/add-journey.md +1 -1
- package/plugins/{lisa-nestjs → src/expo}/commands/jira/create.md +1 -1
- package/plugins/{lisa-nestjs → src/expo}/commands/jira/evidence.md +1 -1
- package/plugins/{lisa-nestjs → src/expo}/commands/jira/journey.md +1 -1
- package/plugins/{lisa-nestjs → src/expo}/commands/jira/verify.md +1 -1
- package/plugins/src/nestjs/.claude-plugin/plugin.json +2 -81
- package/plugins/src/rails/.claude-plugin/plugin.json +1 -59
- package/plugins/{lisa-nestjs → src/rails}/commands/jira/add-journey.md +1 -1
- package/plugins/{lisa-typescript → src/rails}/commands/jira/create.md +1 -1
- package/plugins/{lisa-typescript → src/rails}/commands/jira/evidence.md +1 -1
- package/plugins/{lisa-typescript → src/rails}/commands/jira/journey.md +1 -1
- package/plugins/{lisa-typescript → src/rails}/commands/jira/verify.md +1 -1
- package/plugins/{lisa-expo → src/rails}/commands/plan/add-test-coverage.md +1 -1
- package/plugins/{lisa-expo → src/rails}/commands/plan/fix-linter-error.md +1 -1
- package/plugins/{lisa-expo → src/rails}/commands/plan/lower-code-complexity.md +1 -1
- package/plugins/{lisa-expo → src/rails}/commands/plan/reduce-max-lines-per-function.md +1 -1
- package/plugins/{lisa-expo → src/rails}/commands/plan/reduce-max-lines.md +1 -1
- package/plugins/src/typescript/.claude-plugin/plugin.json +1 -58
- package/scripts/build-plugins.sh +30 -17
- package/scripts/install-claude-plugins.sh +28 -11
- package/typescript/merge/.claude/settings.json +2 -2
- package/typescript/package-lisa/package.lisa.json +2 -1
- package/plugins/lisa-expo/agents/agent-architect.md +0 -310
- package/plugins/lisa-expo/agents/architecture-specialist.md +0 -53
- package/plugins/lisa-expo/agents/debug-specialist.md +0 -204
- package/plugins/lisa-expo/agents/git-history-analyzer.md +0 -183
- package/plugins/lisa-expo/agents/hooks-expert.md +0 -74
- package/plugins/lisa-expo/agents/implementer.md +0 -54
- package/plugins/lisa-expo/agents/learner.md +0 -44
- package/plugins/lisa-expo/agents/performance-specialist.md +0 -95
- package/plugins/lisa-expo/agents/product-specialist.md +0 -72
- package/plugins/lisa-expo/agents/quality-specialist.md +0 -55
- package/plugins/lisa-expo/agents/security-specialist.md +0 -58
- package/plugins/lisa-expo/agents/skill-evaluator.md +0 -246
- package/plugins/lisa-expo/agents/slash-command-architect.md +0 -87
- package/plugins/lisa-expo/agents/test-specialist.md +0 -64
- package/plugins/lisa-expo/agents/verification-specialist.md +0 -189
- package/plugins/lisa-expo/agents/web-search-researcher.md +0 -112
- package/plugins/lisa-expo/commands/git/commit-and-submit-pr.md +0 -7
- package/plugins/lisa-expo/commands/git/commit-submit-pr-and-verify.md +0 -7
- package/plugins/lisa-expo/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
- package/plugins/lisa-expo/commands/git/commit.md +0 -7
- package/plugins/lisa-expo/commands/git/prune.md +0 -6
- package/plugins/lisa-expo/commands/git/submit-pr.md +0 -7
- package/plugins/lisa-expo/commands/jira/fix.md +0 -7
- package/plugins/lisa-expo/commands/jira/implement.md +0 -7
- package/plugins/lisa-expo/commands/jira/sync.md +0 -7
- package/plugins/lisa-expo/commands/plan/create.md +0 -6
- package/plugins/lisa-expo/commands/plan/execute.md +0 -7
- package/plugins/lisa-expo/commands/plan/local-code-review.md +0 -6
- package/plugins/lisa-expo/commands/pull-request/review.md +0 -7
- package/plugins/lisa-expo/commands/review/implementation.md +0 -7
- package/plugins/lisa-expo/commands/security/zap-scan.md +0 -6
- package/plugins/lisa-expo/commands/sonarqube/check.md +0 -6
- package/plugins/lisa-expo/commands/sonarqube/fix.md +0 -6
- package/plugins/lisa-expo/commands/tasks/load.md +0 -7
- package/plugins/lisa-expo/commands/tasks/sync.md +0 -7
- package/plugins/lisa-expo/hooks/debug-hook.sh +0 -47
- package/plugins/lisa-expo/hooks/enforce-plan-rules.sh +0 -15
- package/plugins/lisa-expo/hooks/format-on-edit.sh +0 -76
- package/plugins/lisa-expo/hooks/install-pkgs.sh +0 -64
- package/plugins/lisa-expo/hooks/lint-on-edit.sh +0 -81
- package/plugins/lisa-expo/hooks/notify-ntfy.sh +0 -183
- package/plugins/lisa-expo/hooks/setup-jira-cli.sh +0 -52
- package/plugins/lisa-expo/hooks/sg-scan-on-edit.sh +0 -68
- package/plugins/lisa-expo/hooks/sync-tasks.sh +0 -107
- package/plugins/lisa-expo/hooks/ticket-sync-reminder.sh +0 -23
- package/plugins/lisa-expo/hooks/track-plan-sessions.sh +0 -164
- package/plugins/lisa-expo/hooks/verify-completion.sh +0 -77
- package/plugins/lisa-expo/rules/README.md +0 -240
- package/plugins/lisa-expo/rules/coding-philosophy.md +0 -428
- package/plugins/lisa-expo/rules/lisa.md +0 -37
- package/plugins/lisa-expo/rules/verfication.md +0 -596
- package/plugins/lisa-expo/skills/agent-design-best-practices/SKILL.md +0 -219
- package/plugins/lisa-expo/skills/git-commit/SKILL.md +0 -48
- package/plugins/lisa-expo/skills/git-commit-and-submit-pr/SKILL.md +0 -8
- package/plugins/lisa-expo/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
- package/plugins/lisa-expo/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
- package/plugins/lisa-expo/skills/git-prune/SKILL.md +0 -35
- package/plugins/lisa-expo/skills/git-submit-pr/SKILL.md +0 -44
- package/plugins/lisa-expo/skills/jira-fix/SKILL.md +0 -16
- package/plugins/lisa-expo/skills/jira-implement/SKILL.md +0 -18
- package/plugins/lisa-expo/skills/jira-sync/SKILL.md +0 -63
- package/plugins/lisa-expo/skills/jsdoc-best-practices/SKILL.md +0 -432
- package/plugins/lisa-expo/skills/lisa-review-implementation/SKILL.md +0 -209
- package/plugins/lisa-expo/skills/plan-add-test-coverage/SKILL.md +0 -44
- package/plugins/lisa-expo/skills/plan-execute/SKILL.md +0 -89
- package/plugins/lisa-expo/skills/plan-fix-linter-error/SKILL.md +0 -45
- package/plugins/lisa-expo/skills/plan-local-code-review/SKILL.md +0 -88
- package/plugins/lisa-expo/skills/plan-lower-code-complexity/SKILL.md +0 -44
- package/plugins/lisa-expo/skills/plan-reduce-max-lines/SKILL.md +0 -45
- package/plugins/lisa-expo/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
- package/plugins/lisa-expo/skills/pull-request-review/SKILL.md +0 -68
- package/plugins/lisa-expo/skills/security-zap-scan/SKILL.md +0 -33
- package/plugins/lisa-expo/skills/sonarqube-check/SKILL.md +0 -11
- package/plugins/lisa-expo/skills/sonarqube-fix/SKILL.md +0 -8
- package/plugins/lisa-expo/skills/tasks-load/SKILL.md +0 -88
- package/plugins/lisa-expo/skills/tasks-sync/SKILL.md +0 -108
- package/plugins/lisa-nestjs/agents/agent-architect.md +0 -310
- package/plugins/lisa-nestjs/agents/architecture-specialist.md +0 -53
- package/plugins/lisa-nestjs/agents/debug-specialist.md +0 -204
- package/plugins/lisa-nestjs/agents/git-history-analyzer.md +0 -183
- package/plugins/lisa-nestjs/agents/hooks-expert.md +0 -74
- package/plugins/lisa-nestjs/agents/implementer.md +0 -54
- package/plugins/lisa-nestjs/agents/learner.md +0 -44
- package/plugins/lisa-nestjs/agents/performance-specialist.md +0 -95
- package/plugins/lisa-nestjs/agents/product-specialist.md +0 -72
- package/plugins/lisa-nestjs/agents/quality-specialist.md +0 -55
- package/plugins/lisa-nestjs/agents/security-specialist.md +0 -58
- package/plugins/lisa-nestjs/agents/skill-evaluator.md +0 -246
- package/plugins/lisa-nestjs/agents/slash-command-architect.md +0 -87
- package/plugins/lisa-nestjs/agents/test-specialist.md +0 -64
- package/plugins/lisa-nestjs/agents/verification-specialist.md +0 -189
- package/plugins/lisa-nestjs/agents/web-search-researcher.md +0 -112
- package/plugins/lisa-nestjs/commands/git/commit-and-submit-pr.md +0 -7
- package/plugins/lisa-nestjs/commands/git/commit-submit-pr-and-verify.md +0 -7
- package/plugins/lisa-nestjs/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
- package/plugins/lisa-nestjs/commands/git/commit.md +0 -7
- package/plugins/lisa-nestjs/commands/git/prune.md +0 -6
- package/plugins/lisa-nestjs/commands/git/submit-pr.md +0 -7
- package/plugins/lisa-nestjs/commands/jira/fix.md +0 -7
- package/plugins/lisa-nestjs/commands/jira/implement.md +0 -7
- package/plugins/lisa-nestjs/commands/jira/sync.md +0 -7
- package/plugins/lisa-nestjs/commands/plan/add-test-coverage.md +0 -7
- package/plugins/lisa-nestjs/commands/plan/create.md +0 -6
- package/plugins/lisa-nestjs/commands/plan/execute.md +0 -7
- package/plugins/lisa-nestjs/commands/plan/fix-linter-error.md +0 -7
- package/plugins/lisa-nestjs/commands/plan/local-code-review.md +0 -6
- package/plugins/lisa-nestjs/commands/plan/lower-code-complexity.md +0 -6
- package/plugins/lisa-nestjs/commands/plan/reduce-max-lines-per-function.md +0 -7
- package/plugins/lisa-nestjs/commands/plan/reduce-max-lines.md +0 -7
- package/plugins/lisa-nestjs/commands/pull-request/review.md +0 -7
- package/plugins/lisa-nestjs/commands/review/implementation.md +0 -7
- package/plugins/lisa-nestjs/commands/security/zap-scan.md +0 -6
- package/plugins/lisa-nestjs/commands/sonarqube/check.md +0 -6
- package/plugins/lisa-nestjs/commands/sonarqube/fix.md +0 -6
- package/plugins/lisa-nestjs/commands/tasks/load.md +0 -7
- package/plugins/lisa-nestjs/commands/tasks/sync.md +0 -7
- package/plugins/lisa-nestjs/hooks/debug-hook.sh +0 -47
- package/plugins/lisa-nestjs/hooks/enforce-plan-rules.sh +0 -15
- package/plugins/lisa-nestjs/hooks/format-on-edit.sh +0 -76
- package/plugins/lisa-nestjs/hooks/install-pkgs.sh +0 -64
- package/plugins/lisa-nestjs/hooks/lint-on-edit.sh +0 -81
- package/plugins/lisa-nestjs/hooks/notify-ntfy.sh +0 -183
- package/plugins/lisa-nestjs/hooks/setup-jira-cli.sh +0 -52
- package/plugins/lisa-nestjs/hooks/sg-scan-on-edit.sh +0 -68
- package/plugins/lisa-nestjs/hooks/sync-tasks.sh +0 -107
- package/plugins/lisa-nestjs/hooks/ticket-sync-reminder.sh +0 -23
- package/plugins/lisa-nestjs/hooks/track-plan-sessions.sh +0 -164
- package/plugins/lisa-nestjs/hooks/verify-completion.sh +0 -77
- package/plugins/lisa-nestjs/rules/README.md +0 -240
- package/plugins/lisa-nestjs/rules/coding-philosophy.md +0 -428
- package/plugins/lisa-nestjs/rules/lisa.md +0 -37
- package/plugins/lisa-nestjs/rules/verfication.md +0 -596
- package/plugins/lisa-nestjs/skills/agent-design-best-practices/SKILL.md +0 -219
- package/plugins/lisa-nestjs/skills/git-commit/SKILL.md +0 -48
- package/plugins/lisa-nestjs/skills/git-commit-and-submit-pr/SKILL.md +0 -8
- package/plugins/lisa-nestjs/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
- package/plugins/lisa-nestjs/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
- package/plugins/lisa-nestjs/skills/git-prune/SKILL.md +0 -35
- package/plugins/lisa-nestjs/skills/git-submit-pr/SKILL.md +0 -44
- package/plugins/lisa-nestjs/skills/jira-add-journey/SKILL.md +0 -120
- package/plugins/lisa-nestjs/skills/jira-create/SKILL.md +0 -95
- package/plugins/lisa-nestjs/skills/jira-evidence/SKILL.md +0 -73
- package/plugins/lisa-nestjs/skills/jira-evidence/scripts/post-evidence.sh +0 -163
- package/plugins/lisa-nestjs/skills/jira-fix/SKILL.md +0 -16
- package/plugins/lisa-nestjs/skills/jira-implement/SKILL.md +0 -18
- package/plugins/lisa-nestjs/skills/jira-journey/SKILL.md +0 -125
- package/plugins/lisa-nestjs/skills/jira-journey/scripts/generate-templates.py +0 -233
- package/plugins/lisa-nestjs/skills/jira-journey/scripts/parse-plan.py +0 -368
- package/plugins/lisa-nestjs/skills/jira-sync/SKILL.md +0 -63
- package/plugins/lisa-nestjs/skills/jira-verify/SKILL.md +0 -48
- package/plugins/lisa-nestjs/skills/jsdoc-best-practices/SKILL.md +0 -432
- package/plugins/lisa-nestjs/skills/lisa-review-implementation/SKILL.md +0 -209
- package/plugins/lisa-nestjs/skills/plan-add-test-coverage/SKILL.md +0 -44
- package/plugins/lisa-nestjs/skills/plan-execute/SKILL.md +0 -89
- package/plugins/lisa-nestjs/skills/plan-fix-linter-error/SKILL.md +0 -45
- package/plugins/lisa-nestjs/skills/plan-local-code-review/SKILL.md +0 -88
- package/plugins/lisa-nestjs/skills/plan-lower-code-complexity/SKILL.md +0 -44
- package/plugins/lisa-nestjs/skills/plan-reduce-max-lines/SKILL.md +0 -45
- package/plugins/lisa-nestjs/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
- package/plugins/lisa-nestjs/skills/pull-request-review/SKILL.md +0 -68
- package/plugins/lisa-nestjs/skills/security-zap-scan/SKILL.md +0 -33
- package/plugins/lisa-nestjs/skills/sonarqube-check/SKILL.md +0 -11
- package/plugins/lisa-nestjs/skills/sonarqube-fix/SKILL.md +0 -8
- package/plugins/lisa-nestjs/skills/tasks-load/SKILL.md +0 -88
- package/plugins/lisa-nestjs/skills/tasks-sync/SKILL.md +0 -108
- package/plugins/lisa-rails/agents/agent-architect.md +0 -310
- package/plugins/lisa-rails/agents/architecture-specialist.md +0 -53
- package/plugins/lisa-rails/agents/debug-specialist.md +0 -204
- package/plugins/lisa-rails/agents/git-history-analyzer.md +0 -183
- package/plugins/lisa-rails/agents/hooks-expert.md +0 -74
- package/plugins/lisa-rails/agents/implementer.md +0 -54
- package/plugins/lisa-rails/agents/learner.md +0 -44
- package/plugins/lisa-rails/agents/performance-specialist.md +0 -95
- package/plugins/lisa-rails/agents/product-specialist.md +0 -72
- package/plugins/lisa-rails/agents/quality-specialist.md +0 -55
- package/plugins/lisa-rails/agents/security-specialist.md +0 -58
- package/plugins/lisa-rails/agents/skill-evaluator.md +0 -246
- package/plugins/lisa-rails/agents/slash-command-architect.md +0 -87
- package/plugins/lisa-rails/agents/test-specialist.md +0 -64
- package/plugins/lisa-rails/agents/verification-specialist.md +0 -189
- package/plugins/lisa-rails/agents/web-search-researcher.md +0 -112
- package/plugins/lisa-rails/commands/git/commit-and-submit-pr.md +0 -7
- package/plugins/lisa-rails/commands/git/commit-submit-pr-and-verify.md +0 -7
- package/plugins/lisa-rails/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
- package/plugins/lisa-rails/commands/git/commit.md +0 -7
- package/plugins/lisa-rails/commands/git/prune.md +0 -6
- package/plugins/lisa-rails/commands/git/submit-pr.md +0 -7
- package/plugins/lisa-rails/commands/jira/fix.md +0 -7
- package/plugins/lisa-rails/commands/jira/implement.md +0 -7
- package/plugins/lisa-rails/commands/jira/sync.md +0 -7
- package/plugins/lisa-rails/commands/plan/create.md +0 -6
- package/plugins/lisa-rails/commands/plan/execute.md +0 -7
- package/plugins/lisa-rails/commands/plan/local-code-review.md +0 -6
- package/plugins/lisa-rails/commands/pull-request/review.md +0 -7
- package/plugins/lisa-rails/commands/review/implementation.md +0 -7
- package/plugins/lisa-rails/commands/security/zap-scan.md +0 -6
- package/plugins/lisa-rails/commands/sonarqube/check.md +0 -6
- package/plugins/lisa-rails/commands/sonarqube/fix.md +0 -6
- package/plugins/lisa-rails/commands/tasks/load.md +0 -7
- package/plugins/lisa-rails/commands/tasks/sync.md +0 -7
- package/plugins/lisa-rails/hooks/debug-hook.sh +0 -47
- package/plugins/lisa-rails/hooks/enforce-plan-rules.sh +0 -15
- package/plugins/lisa-rails/hooks/format-on-edit.sh +0 -76
- package/plugins/lisa-rails/hooks/install-pkgs.sh +0 -64
- package/plugins/lisa-rails/hooks/lint-on-edit.sh +0 -81
- package/plugins/lisa-rails/hooks/notify-ntfy.sh +0 -183
- package/plugins/lisa-rails/hooks/setup-jira-cli.sh +0 -52
- package/plugins/lisa-rails/hooks/sg-scan-on-edit.sh +0 -68
- package/plugins/lisa-rails/hooks/sync-tasks.sh +0 -107
- package/plugins/lisa-rails/hooks/ticket-sync-reminder.sh +0 -23
- package/plugins/lisa-rails/hooks/track-plan-sessions.sh +0 -164
- package/plugins/lisa-rails/hooks/verify-completion.sh +0 -77
- package/plugins/lisa-rails/rules/README.md +0 -240
- package/plugins/lisa-rails/rules/coding-philosophy.md +0 -428
- package/plugins/lisa-rails/rules/verfication.md +0 -596
- package/plugins/lisa-rails/skills/agent-design-best-practices/SKILL.md +0 -219
- package/plugins/lisa-rails/skills/git-commit/SKILL.md +0 -48
- package/plugins/lisa-rails/skills/git-commit-and-submit-pr/SKILL.md +0 -8
- package/plugins/lisa-rails/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
- package/plugins/lisa-rails/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
- package/plugins/lisa-rails/skills/git-prune/SKILL.md +0 -35
- package/plugins/lisa-rails/skills/git-submit-pr/SKILL.md +0 -44
- package/plugins/lisa-rails/skills/jira-fix/SKILL.md +0 -16
- package/plugins/lisa-rails/skills/jira-implement/SKILL.md +0 -18
- package/plugins/lisa-rails/skills/jira-journey/scripts/generate-templates.py +0 -233
- package/plugins/lisa-rails/skills/jira-journey/scripts/parse-plan.py +0 -368
- package/plugins/lisa-rails/skills/jira-sync/SKILL.md +0 -63
- package/plugins/lisa-rails/skills/jsdoc-best-practices/SKILL.md +0 -432
- package/plugins/lisa-rails/skills/lisa-review-implementation/SKILL.md +0 -209
- package/plugins/lisa-rails/skills/plan-execute/SKILL.md +0 -89
- package/plugins/lisa-rails/skills/plan-local-code-review/SKILL.md +0 -88
- package/plugins/lisa-rails/skills/pull-request-review/SKILL.md +0 -68
- package/plugins/lisa-rails/skills/security-zap-scan/SKILL.md +0 -33
- package/plugins/lisa-rails/skills/sonarqube-check/SKILL.md +0 -11
- package/plugins/lisa-rails/skills/sonarqube-fix/SKILL.md +0 -8
- package/plugins/lisa-rails/skills/tasks-load/SKILL.md +0 -88
- package/plugins/lisa-rails/skills/tasks-sync/SKILL.md +0 -108
- package/plugins/lisa-typescript/agents/agent-architect.md +0 -310
- package/plugins/lisa-typescript/agents/architecture-specialist.md +0 -53
- package/plugins/lisa-typescript/agents/debug-specialist.md +0 -204
- package/plugins/lisa-typescript/agents/git-history-analyzer.md +0 -183
- package/plugins/lisa-typescript/agents/hooks-expert.md +0 -74
- package/plugins/lisa-typescript/agents/implementer.md +0 -54
- package/plugins/lisa-typescript/agents/learner.md +0 -44
- package/plugins/lisa-typescript/agents/performance-specialist.md +0 -95
- package/plugins/lisa-typescript/agents/product-specialist.md +0 -72
- package/plugins/lisa-typescript/agents/quality-specialist.md +0 -55
- package/plugins/lisa-typescript/agents/security-specialist.md +0 -58
- package/plugins/lisa-typescript/agents/skill-evaluator.md +0 -246
- package/plugins/lisa-typescript/agents/slash-command-architect.md +0 -87
- package/plugins/lisa-typescript/agents/test-specialist.md +0 -64
- package/plugins/lisa-typescript/agents/verification-specialist.md +0 -189
- package/plugins/lisa-typescript/agents/web-search-researcher.md +0 -112
- package/plugins/lisa-typescript/commands/git/commit-and-submit-pr.md +0 -7
- package/plugins/lisa-typescript/commands/git/commit-submit-pr-and-verify.md +0 -7
- package/plugins/lisa-typescript/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
- package/plugins/lisa-typescript/commands/git/commit.md +0 -7
- package/plugins/lisa-typescript/commands/git/prune.md +0 -6
- package/plugins/lisa-typescript/commands/git/submit-pr.md +0 -7
- package/plugins/lisa-typescript/commands/jira/fix.md +0 -7
- package/plugins/lisa-typescript/commands/jira/implement.md +0 -7
- package/plugins/lisa-typescript/commands/jira/sync.md +0 -7
- package/plugins/lisa-typescript/commands/plan/add-test-coverage.md +0 -7
- package/plugins/lisa-typescript/commands/plan/create.md +0 -6
- package/plugins/lisa-typescript/commands/plan/execute.md +0 -7
- package/plugins/lisa-typescript/commands/plan/fix-linter-error.md +0 -7
- package/plugins/lisa-typescript/commands/plan/local-code-review.md +0 -6
- package/plugins/lisa-typescript/commands/plan/lower-code-complexity.md +0 -6
- package/plugins/lisa-typescript/commands/plan/reduce-max-lines-per-function.md +0 -7
- package/plugins/lisa-typescript/commands/plan/reduce-max-lines.md +0 -7
- package/plugins/lisa-typescript/commands/pull-request/review.md +0 -7
- package/plugins/lisa-typescript/commands/review/implementation.md +0 -7
- package/plugins/lisa-typescript/commands/security/zap-scan.md +0 -6
- package/plugins/lisa-typescript/commands/sonarqube/check.md +0 -6
- package/plugins/lisa-typescript/commands/sonarqube/fix.md +0 -6
- package/plugins/lisa-typescript/commands/tasks/load.md +0 -7
- package/plugins/lisa-typescript/commands/tasks/sync.md +0 -7
- package/plugins/lisa-typescript/hooks/debug-hook.sh +0 -47
- package/plugins/lisa-typescript/hooks/enforce-plan-rules.sh +0 -15
- package/plugins/lisa-typescript/hooks/install-pkgs.sh +0 -64
- package/plugins/lisa-typescript/hooks/notify-ntfy.sh +0 -183
- package/plugins/lisa-typescript/hooks/setup-jira-cli.sh +0 -52
- package/plugins/lisa-typescript/hooks/sync-tasks.sh +0 -107
- package/plugins/lisa-typescript/hooks/ticket-sync-reminder.sh +0 -23
- package/plugins/lisa-typescript/hooks/track-plan-sessions.sh +0 -164
- package/plugins/lisa-typescript/hooks/verify-completion.sh +0 -77
- package/plugins/lisa-typescript/rules/README.md +0 -240
- package/plugins/lisa-typescript/rules/coding-philosophy.md +0 -428
- package/plugins/lisa-typescript/rules/verfication.md +0 -596
- package/plugins/lisa-typescript/skills/agent-design-best-practices/SKILL.md +0 -219
- package/plugins/lisa-typescript/skills/git-commit/SKILL.md +0 -48
- package/plugins/lisa-typescript/skills/git-commit-and-submit-pr/SKILL.md +0 -8
- package/plugins/lisa-typescript/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
- package/plugins/lisa-typescript/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
- package/plugins/lisa-typescript/skills/git-prune/SKILL.md +0 -35
- package/plugins/lisa-typescript/skills/git-submit-pr/SKILL.md +0 -44
- package/plugins/lisa-typescript/skills/jira-add-journey/SKILL.md +0 -120
- package/plugins/lisa-typescript/skills/jira-create/SKILL.md +0 -95
- package/plugins/lisa-typescript/skills/jira-evidence/SKILL.md +0 -73
- package/plugins/lisa-typescript/skills/jira-evidence/scripts/post-evidence.sh +0 -163
- package/plugins/lisa-typescript/skills/jira-fix/SKILL.md +0 -16
- package/plugins/lisa-typescript/skills/jira-implement/SKILL.md +0 -18
- package/plugins/lisa-typescript/skills/jira-journey/SKILL.md +0 -125
- package/plugins/lisa-typescript/skills/jira-journey/scripts/generate-templates.py +0 -233
- package/plugins/lisa-typescript/skills/jira-journey/scripts/parse-plan.py +0 -368
- package/plugins/lisa-typescript/skills/jira-sync/SKILL.md +0 -63
- package/plugins/lisa-typescript/skills/jira-verify/SKILL.md +0 -48
- package/plugins/lisa-typescript/skills/jsdoc-best-practices/SKILL.md +0 -432
- package/plugins/lisa-typescript/skills/lisa-review-implementation/SKILL.md +0 -209
- package/plugins/lisa-typescript/skills/plan-add-test-coverage/SKILL.md +0 -44
- package/plugins/lisa-typescript/skills/plan-execute/SKILL.md +0 -89
- package/plugins/lisa-typescript/skills/plan-fix-linter-error/SKILL.md +0 -45
- package/plugins/lisa-typescript/skills/plan-local-code-review/SKILL.md +0 -88
- package/plugins/lisa-typescript/skills/plan-lower-code-complexity/SKILL.md +0 -44
- package/plugins/lisa-typescript/skills/plan-reduce-max-lines/SKILL.md +0 -45
- package/plugins/lisa-typescript/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
- package/plugins/lisa-typescript/skills/pull-request-review/SKILL.md +0 -68
- package/plugins/lisa-typescript/skills/security-zap-scan/SKILL.md +0 -33
- package/plugins/lisa-typescript/skills/sonarqube-check/SKILL.md +0 -11
- package/plugins/lisa-typescript/skills/sonarqube-fix/SKILL.md +0 -8
- package/plugins/lisa-typescript/skills/tasks-load/SKILL.md +0 -88
- package/plugins/lisa-typescript/skills/tasks-sync/SKILL.md +0 -108
- package/plugins/src/base/hooks/format-on-edit.sh +0 -76
- package/plugins/src/base/hooks/lint-on-edit.sh +0 -81
- package/plugins/src/base/hooks/sg-scan-on-edit.sh +0 -68
- package/plugins/src/base/rules/lisa.md +0 -37
- /package/plugins/{lisa-cdk → lisa}/agents/agent-architect.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/architecture-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/debug-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/git-history-analyzer.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/hooks-expert.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/implementer.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/learner.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/performance-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/product-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/quality-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/security-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/skill-evaluator.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/slash-command-architect.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/test-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/verification-specialist.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/agents/web-search-researcher.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/commit-and-submit-pr.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-and-verify.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-deploy-and-verify.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/commit.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/prune.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/git/submit-pr.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/add-journey.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/create.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/evidence.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/fix.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/implement.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/journey.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/sync.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/jira/verify.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/add-test-coverage.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/create.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/execute.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/fix-linter-error.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/local-code-review.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/lower-code-complexity.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines-per-function.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/pull-request/review.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/review/implementation.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/security/zap-scan.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/check.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/fix.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/tasks/load.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/commands/tasks/sync.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/debug-hook.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/enforce-plan-rules.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/install-pkgs.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/notify-ntfy.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/setup-jira-cli.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/sync-tasks.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/ticket-sync-reminder.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/track-plan-sessions.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/hooks/verify-completion.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/rules/README.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/rules/coding-philosophy.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/rules/verfication.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/agent-design-best-practices/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-commit/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-commit-and-submit-pr/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-prune/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/git-submit-pr/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-add-journey/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-create/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/scripts/post-evidence.sh +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-fix/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-implement/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/generate-templates.py +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/parse-plan.py +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-sync/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jira-verify/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/jsdoc-best-practices/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/lisa-review-implementation/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-add-test-coverage/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-execute/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-fix-linter-error/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-local-code-review/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-lower-code-complexity/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/pull-request-review/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/security-zap-scan/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-check/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-fix/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/tasks-load/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → lisa}/skills/tasks-sync/SKILL.md +0 -0
- /package/plugins/{lisa-cdk → src/typescript}/hooks/format-on-edit.sh +0 -0
- /package/plugins/{lisa-cdk → src/typescript}/hooks/lint-on-edit.sh +0 -0
- /package/plugins/{lisa-cdk → src/typescript}/hooks/sg-scan-on-edit.sh +0 -0
- /package/plugins/{lisa-cdk → src/typescript}/rules/lisa.md +0 -0
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# post-evidence.sh — Upload evidence and post to JIRA + GitHub PR description
|
|
3
|
-
#
|
|
4
|
-
# Usage:
|
|
5
|
-
# bash post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>
|
|
6
|
-
#
|
|
7
|
-
# Prerequisites:
|
|
8
|
-
# - JIRA_API_TOKEN env var set
|
|
9
|
-
# - jira-cli configured (~/.config/.jira/.config.yml)
|
|
10
|
-
# - gh CLI authenticated
|
|
11
|
-
#
|
|
12
|
-
# What it does:
|
|
13
|
-
# 1. Uploads evidence files to the 'pr-assets' GitHub release
|
|
14
|
-
# 2. Updates the GitHub PR description with evidence/comment.md
|
|
15
|
-
# 3. Uploads image evidence as JIRA attachments
|
|
16
|
-
# 4. Posts/updates the JIRA comment with evidence/comment.txt
|
|
17
|
-
# 5. Moves the JIRA ticket to "Code Review"
|
|
18
|
-
|
|
19
|
-
set -euo pipefail
|
|
20
|
-
|
|
21
|
-
TICKET_ID="${1:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
|
|
22
|
-
EVIDENCE_DIR="${2:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
|
|
23
|
-
PR_NUMBER="${3:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
|
|
24
|
-
|
|
25
|
-
JIRA_CONFIG="${HOME}/.config/.jira/.config.yml"
|
|
26
|
-
if [[ ! -f "$JIRA_CONFIG" ]]; then
|
|
27
|
-
echo "ERROR: jira-cli config not found at $JIRA_CONFIG — run 'jira init' first" >&2
|
|
28
|
-
exit 1
|
|
29
|
-
fi
|
|
30
|
-
JIRA_SERVER=$(grep '^server:' "$JIRA_CONFIG" | awk '{print $2}')
|
|
31
|
-
JIRA_USER=$(grep '^login:' "$JIRA_CONFIG" | awk '{print $2}')
|
|
32
|
-
GH_REPO=$(gh repo view --json nameWithOwner --jq '.nameWithOwner')
|
|
33
|
-
RELEASE_TAG="pr-assets"
|
|
34
|
-
|
|
35
|
-
if [[ -z "${JIRA_API_TOKEN:-}" ]]; then
|
|
36
|
-
echo "ERROR: JIRA_API_TOKEN environment variable is not set" >&2
|
|
37
|
-
exit 1
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
# Collect numbered evidence files (images + text)
|
|
41
|
-
SCREENSHOTS=()
|
|
42
|
-
while IFS= read -r -d '' f; do
|
|
43
|
-
SCREENSHOTS+=("$f")
|
|
44
|
-
done < <(find "$EVIDENCE_DIR" -maxdepth 1 -name '[0-9][0-9]-*.png' -print0 | sort -z)
|
|
45
|
-
|
|
46
|
-
TEXT_EVIDENCE=()
|
|
47
|
-
while IFS= read -r -d '' f; do
|
|
48
|
-
TEXT_EVIDENCE+=("$f")
|
|
49
|
-
done < <(find "$EVIDENCE_DIR" -maxdepth 1 \( -name '[0-9][0-9]-*.txt' -o -name '[0-9][0-9]-*.json' \) ! -name 'comment.txt' -print0 | sort -z)
|
|
50
|
-
|
|
51
|
-
ALL_EVIDENCE=("${SCREENSHOTS[@]}" "${TEXT_EVIDENCE[@]}")
|
|
52
|
-
|
|
53
|
-
if [[ ${#ALL_EVIDENCE[@]} -eq 0 ]]; then
|
|
54
|
-
echo "ERROR: No numbered evidence files found in $EVIDENCE_DIR (expected NN-*.png, NN-*.txt, or NN-*.json)" >&2
|
|
55
|
-
exit 1
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
echo "Found ${#SCREENSHOTS[@]} screenshots and ${#TEXT_EVIDENCE[@]} text evidence files to upload"
|
|
59
|
-
|
|
60
|
-
# Compute JIRA auth early (used in steps 3 and 4)
|
|
61
|
-
JIRA_AUTH=$(echo -n "$JIRA_USER:$JIRA_API_TOKEN" | base64)
|
|
62
|
-
|
|
63
|
-
# ── Step 1: Upload to GitHub pr-assets release ──────────────────────────────
|
|
64
|
-
echo ""
|
|
65
|
-
echo "==> Uploading to GitHub release '$RELEASE_TAG'..."
|
|
66
|
-
|
|
67
|
-
for FILE in "${ALL_EVIDENCE[@]}"; do
|
|
68
|
-
FILENAME=$(basename "$FILE")
|
|
69
|
-
echo " ↑ $FILENAME"
|
|
70
|
-
gh release upload "$RELEASE_TAG" "$FILE" --repo "$GH_REPO" --clobber
|
|
71
|
-
done
|
|
72
|
-
|
|
73
|
-
echo " ✓ GitHub release assets uploaded"
|
|
74
|
-
|
|
75
|
-
# ── Step 2: Update GitHub PR description with evidence ──────────────────────
|
|
76
|
-
COMMENT_MD="$EVIDENCE_DIR/comment.md"
|
|
77
|
-
if [[ ! -f "$COMMENT_MD" ]]; then
|
|
78
|
-
echo "ERROR: $COMMENT_MD not found — run generate-templates.py first" >&2
|
|
79
|
-
exit 1
|
|
80
|
-
fi
|
|
81
|
-
|
|
82
|
-
echo ""
|
|
83
|
-
echo "==> Updating GitHub PR #$PR_NUMBER description..."
|
|
84
|
-
|
|
85
|
-
CURRENT_BODY=$(gh pr view "$PR_NUMBER" --json body --jq '.body')
|
|
86
|
-
|
|
87
|
-
# Replace or append the Evidence section
|
|
88
|
-
if echo "$CURRENT_BODY" | grep -q "^## Evidence"; then
|
|
89
|
-
# Replace from "## Evidence" to end of file
|
|
90
|
-
NEW_BODY=$(echo "$CURRENT_BODY" | sed '/^## Evidence/,$d')
|
|
91
|
-
EVIDENCE_SECTION=$(cat "$COMMENT_MD")
|
|
92
|
-
UPDATED_BODY="${NEW_BODY}
|
|
93
|
-
${EVIDENCE_SECTION}"
|
|
94
|
-
else
|
|
95
|
-
EVIDENCE_SECTION=$(cat "$COMMENT_MD")
|
|
96
|
-
UPDATED_BODY="${CURRENT_BODY}
|
|
97
|
-
|
|
98
|
-
${EVIDENCE_SECTION}"
|
|
99
|
-
fi
|
|
100
|
-
|
|
101
|
-
gh pr edit "$PR_NUMBER" --body "$UPDATED_BODY"
|
|
102
|
-
echo " ✓ PR description updated with evidence"
|
|
103
|
-
|
|
104
|
-
# ── Step 3: Upload image evidence as JIRA attachments ───────────────────────
|
|
105
|
-
if [[ ${#SCREENSHOTS[@]} -gt 0 ]]; then
|
|
106
|
-
echo ""
|
|
107
|
-
echo "==> Uploading image attachments to JIRA $TICKET_ID..."
|
|
108
|
-
|
|
109
|
-
for IMG in "${SCREENSHOTS[@]}"; do
|
|
110
|
-
FILENAME=$(basename "$IMG")
|
|
111
|
-
echo " ↑ $FILENAME"
|
|
112
|
-
RESP=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
|
|
113
|
-
-X POST \
|
|
114
|
-
-H "Authorization: Basic $JIRA_AUTH" \
|
|
115
|
-
-H "X-Atlassian-Token: no-check" \
|
|
116
|
-
-F "file=@$IMG" \
|
|
117
|
-
"$JIRA_SERVER/rest/api/3/issue/$TICKET_ID/attachments")
|
|
118
|
-
HTTP_CODE=$(echo "$RESP" | grep "HTTP_CODE:" | cut -d: -f2)
|
|
119
|
-
if [[ "$HTTP_CODE" != "200" ]]; then
|
|
120
|
-
echo " WARNING: Failed to upload $FILENAME (HTTP $HTTP_CODE)" >&2
|
|
121
|
-
fi
|
|
122
|
-
done
|
|
123
|
-
|
|
124
|
-
echo " ✓ JIRA attachments uploaded"
|
|
125
|
-
fi
|
|
126
|
-
|
|
127
|
-
# ── Step 4: Post JIRA comment ────────────────────────────────────────────────
|
|
128
|
-
COMMENT_TXT="$EVIDENCE_DIR/comment.txt"
|
|
129
|
-
if [[ ! -f "$COMMENT_TXT" ]]; then
|
|
130
|
-
echo "ERROR: $COMMENT_TXT not found — run generate-templates.py first" >&2
|
|
131
|
-
exit 1
|
|
132
|
-
fi
|
|
133
|
-
|
|
134
|
-
echo ""
|
|
135
|
-
echo "==> Posting JIRA comment on $TICKET_ID..."
|
|
136
|
-
|
|
137
|
-
COMMENT_BODY=$(cat "$COMMENT_TXT")
|
|
138
|
-
COMMENT_JSON=$(python3 -c "import sys, json; print(json.dumps(sys.stdin.read()))" <<< "$COMMENT_BODY")
|
|
139
|
-
|
|
140
|
-
RESP=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
|
|
141
|
-
-X POST \
|
|
142
|
-
-H "Authorization: Basic $JIRA_AUTH" \
|
|
143
|
-
-H "Content-Type: application/json" \
|
|
144
|
-
"$JIRA_SERVER/rest/api/2/issue/$TICKET_ID/comment" \
|
|
145
|
-
-d "{\"body\": $COMMENT_JSON}")
|
|
146
|
-
HTTP_CODE=$(echo "$RESP" | grep "HTTP_CODE:" | cut -d: -f2)
|
|
147
|
-
|
|
148
|
-
if [[ "$HTTP_CODE" == "201" ]]; then
|
|
149
|
-
echo " ✓ JIRA comment posted"
|
|
150
|
-
else
|
|
151
|
-
echo " WARNING: JIRA comment returned HTTP $HTTP_CODE" >&2
|
|
152
|
-
echo "$RESP" | grep -v "HTTP_CODE:" | head -3
|
|
153
|
-
fi
|
|
154
|
-
|
|
155
|
-
# ── Step 5: Move ticket to Code Review ──────────────────────────────────────
|
|
156
|
-
echo ""
|
|
157
|
-
echo "==> Moving $TICKET_ID to Code Review..."
|
|
158
|
-
jira issue move "$TICKET_ID" "Code Review" 2>&1 && echo " ✓ Ticket moved to Code Review" || echo " WARNING: Could not move ticket" >&2
|
|
159
|
-
|
|
160
|
-
echo ""
|
|
161
|
-
echo "==> Done!"
|
|
162
|
-
echo " JIRA: $JIRA_SERVER/browse/$TICKET_ID"
|
|
163
|
-
echo " GitHub: https://github.com/$GH_REPO/pull/$PR_NUMBER"
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jira-fix
|
|
3
|
-
description: This skill should be used when fixing a bug ticket in JIRA
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
1. Use the JIRA/Atlassian MCP or CLI to fully read this issue, including comments and attachments: $ARGUMENTS
|
|
7
|
-
2. Extract sign-in information if available from the ticket (e.g., test credentials, OTP codes)
|
|
8
|
-
3. Use the project's verification method to attempt to reproduce the bug:
|
|
9
|
-
- For UI projects: Use Playwright MCP browser tools to record a replication
|
|
10
|
-
- For API projects: Use curl or test commands to reproduce the error
|
|
11
|
-
- For library projects: Write a minimal reproduction test
|
|
12
|
-
4. If you cannot reproduce the issue, upload the evidence to the JIRA ticket explaining that you can't replicate it and skip the remaining steps
|
|
13
|
-
5. If there have already been attempts to fix this bug, understand the previous attempts by looking for pull requests and git commits related to it
|
|
14
|
-
6. Fix the bug
|
|
15
|
-
7. Verify the fix using the same verification method used in step 3
|
|
16
|
-
8. Upload the evidence to the JIRA ticket and explain the fix
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jira-implement
|
|
3
|
-
description: This skill should be used when implementing the requirements in a JIRA ticket.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Use either the Atlassian MCP or CLI to examine the contents of the JIRA ticket: $ARGUMENTS
|
|
7
|
-
|
|
8
|
-
If neither is available, stop and report that you cannot access the ticket.
|
|
9
|
-
|
|
10
|
-
Read all the details in the ticket, including any URLs and attachments.
|
|
11
|
-
|
|
12
|
-
Make a plan to fulfill the requirements of the ticket.
|
|
13
|
-
|
|
14
|
-
Important: If this involves UI changes, use Playwright MCP browser tools to access the app and get a better understanding of what needs to be done. Create a verification task using browser tools to confirm the implementation.
|
|
15
|
-
|
|
16
|
-
Important: If this involves API or backend changes, use curl or test commands to understand current behavior. Create a verification task to confirm the implementation.
|
|
17
|
-
|
|
18
|
-
If you don't know how to access the app or service, clarify when making the plan.
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jira-journey
|
|
3
|
-
description: "Parse a JIRA ticket's Validation Journey section, execute the verification steps using appropriate tools (curl, test commands, database queries), capture evidence, and post to JIRA + GitHub PR using the jira-evidence skill."
|
|
4
|
-
allowed-tools: ["Bash", "Read", "Glob", "Grep", "Skill", "mcp__atlassian__getJiraIssue", "mcp__atlassian__updateJiraIssue"]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# JIRA Validation Journey (TypeScript)
|
|
8
|
-
|
|
9
|
-
Parse a JIRA ticket's Validation Journey, execute the verification steps using the appropriate tools for the change type, capture evidence at each `[EVIDENCE: name]` marker, and post to JIRA + GitHub PR.
|
|
10
|
-
|
|
11
|
-
## Arguments
|
|
12
|
-
|
|
13
|
-
`$ARGUMENTS`: `<TICKET_ID> [PR_NUMBER]`
|
|
14
|
-
|
|
15
|
-
- `TICKET_ID` (required): JIRA ticket key (e.g., `PROJ-123`)
|
|
16
|
-
- `PR_NUMBER` (optional): GitHub PR number to update description
|
|
17
|
-
|
|
18
|
-
## Prerequisites
|
|
19
|
-
|
|
20
|
-
- `JIRA_API_TOKEN` environment variable set
|
|
21
|
-
- `jira-cli` configured (`~/.config/.jira/.config.yml`)
|
|
22
|
-
- `gh` CLI authenticated
|
|
23
|
-
- Appropriate services running for the verification type (dev server, database, etc.)
|
|
24
|
-
|
|
25
|
-
## Workflow
|
|
26
|
-
|
|
27
|
-
### Step 1: Parse the Validation Journey
|
|
28
|
-
|
|
29
|
-
Run the parser script to extract the Validation Journey from the JIRA ticket description:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
The script outputs JSON with: `ticket`, `prerequisites`, `steps`, `viewports`, `assertions`.
|
|
36
|
-
|
|
37
|
-
Note: `viewports` may be empty for TypeScript tickets — that is expected.
|
|
38
|
-
|
|
39
|
-
### Step 2: Satisfy Prerequisites
|
|
40
|
-
|
|
41
|
-
Before starting the journey, verify each prerequisite:
|
|
42
|
-
|
|
43
|
-
1. Check if required services are running
|
|
44
|
-
2. Verify database connectivity if needed
|
|
45
|
-
3. Ensure environment variables are set
|
|
46
|
-
4. Run any setup commands mentioned in prerequisites
|
|
47
|
-
|
|
48
|
-
### Step 3: Execute Steps and Capture Evidence
|
|
49
|
-
|
|
50
|
-
Execute each step sequentially. For each step, determine the verification approach based on the step text and change type:
|
|
51
|
-
|
|
52
|
-
- **API endpoints** → Run curl commands, capture HTTP response to `evidence/NN-name.txt`
|
|
53
|
-
- **Database changes** → Run psql/migration commands, capture schema output to `evidence/NN-name.txt`
|
|
54
|
-
- **Background jobs** → Trigger the job, check queue/state, capture logs to `evidence/NN-name.txt`
|
|
55
|
-
- **Library/utility changes** → Run tests, capture output to `evidence/NN-name.txt`
|
|
56
|
-
- **Security fixes** → Reproduce exploit attempt, verify fix, capture output to `evidence/NN-name.txt`
|
|
57
|
-
|
|
58
|
-
At each `[EVIDENCE: name]` marker, capture stdout/stderr to a numbered file:
|
|
59
|
-
|
|
60
|
-
#### Evidence Naming Convention
|
|
61
|
-
|
|
62
|
-
Evidence files are named: `{NN}-{evidence-name}.txt` (or `.json` for structured data)
|
|
63
|
-
|
|
64
|
-
- `NN`: zero-padded sequential number (01, 02, 03...)
|
|
65
|
-
- `evidence-name`: the value from `[EVIDENCE: name]` in the JIRA step
|
|
66
|
-
|
|
67
|
-
Example:
|
|
68
|
-
|
|
69
|
-
```text
|
|
70
|
-
evidence/
|
|
71
|
-
01-health-check.json
|
|
72
|
-
02-schema-after-migration.txt
|
|
73
|
-
03-rate-limit-response.txt
|
|
74
|
-
comment.txt
|
|
75
|
-
comment.md
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Step 4: Generate Evidence Templates
|
|
79
|
-
|
|
80
|
-
After capturing all evidence, run the template generator:
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
python3 .claude/skills/jira-journey/scripts/generate-templates.py \
|
|
84
|
-
<TICKET_ID> \
|
|
85
|
-
<PR_NUMBER> \
|
|
86
|
-
<BRANCH_NAME> \
|
|
87
|
-
./evidence
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
This generates `evidence/comment.txt` (JIRA wiki markup) and `evidence/comment.md` (GitHub markdown) with evidence formatted as code blocks.
|
|
91
|
-
|
|
92
|
-
### Step 5: Post Evidence
|
|
93
|
-
|
|
94
|
-
Use the jira-evidence skill to post everything:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
bash .claude/skills/jira-evidence/scripts/post-evidence.sh <TICKET_ID> ./evidence <PR_NUMBER>
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Step 6: Verify
|
|
101
|
-
|
|
102
|
-
Confirm evidence is posted to both the JIRA ticket and GitHub PR.
|
|
103
|
-
|
|
104
|
-
## Verification Patterns Reference
|
|
105
|
-
|
|
106
|
-
The agent should use patterns from the project's `verfication.md` when executing steps:
|
|
107
|
-
|
|
108
|
-
| Change Type | Verification Method | Evidence Format |
|
|
109
|
-
|---|---|---|
|
|
110
|
-
| API endpoint | `curl -s localhost:PORT/endpoint` | JSON response |
|
|
111
|
-
| Database migration | `psql -c "\d table"` or migration output | Schema text |
|
|
112
|
-
| Background job | Trigger + check state | Log output |
|
|
113
|
-
| Library/utility | `bun run test -- path/to/test` | Test output |
|
|
114
|
-
| Security fix | Reproduce + verify fix | Request/response |
|
|
115
|
-
| Auth/authz | Multi-role verification | Status codes per role |
|
|
116
|
-
|
|
117
|
-
## Troubleshooting
|
|
118
|
-
|
|
119
|
-
### Evidence file is empty
|
|
120
|
-
|
|
121
|
-
Ensure the command succeeded and produced output. Use `2>&1` to capture both stdout and stderr.
|
|
122
|
-
|
|
123
|
-
### Parser returns no steps
|
|
124
|
-
|
|
125
|
-
The ticket may not have a Validation Journey section. Use `/jira-add-journey <TICKET_ID>` to add one.
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""Generate evidence comment templates from captured text evidence.
|
|
3
|
-
|
|
4
|
-
Scans an evidence directory for text/JSON evidence files, reads the journey JSON,
|
|
5
|
-
and produces comment.txt (JIRA wiki markup) and comment.md (GitHub markdown).
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
python3 generate-templates.py <TICKET_ID> <PR_NUMBER> <BRANCH_NAME> <EVIDENCE_DIR> [JOURNEY_JSON]
|
|
9
|
-
|
|
10
|
-
Example:
|
|
11
|
-
python3 generate-templates.py PROJ-123 42 fix/PROJ-123-api ./evidence journey.json
|
|
12
|
-
|
|
13
|
-
If JOURNEY_JSON is not provided, reads from stdin.
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
import json
|
|
17
|
-
import os
|
|
18
|
-
import re
|
|
19
|
-
import subprocess
|
|
20
|
-
import sys
|
|
21
|
-
from pathlib import Path
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def get_jira_server():
|
|
25
|
-
"""Read JIRA server URL from jira-cli config."""
|
|
26
|
-
config_path = Path.home() / ".config" / ".jira" / ".config.yml"
|
|
27
|
-
if not config_path.exists():
|
|
28
|
-
return ""
|
|
29
|
-
with open(config_path) as f:
|
|
30
|
-
for line in f:
|
|
31
|
-
if line.startswith("server:"):
|
|
32
|
-
return line.split(":", 1)[1].strip()
|
|
33
|
-
return ""
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def get_github_repo():
|
|
37
|
-
"""Detect GitHub repo from gh CLI."""
|
|
38
|
-
try:
|
|
39
|
-
result = subprocess.run(
|
|
40
|
-
["gh", "repo", "view", "--json", "nameWithOwner", "--jq", ".nameWithOwner"],
|
|
41
|
-
capture_output=True, text=True, timeout=10,
|
|
42
|
-
)
|
|
43
|
-
return result.stdout.strip()
|
|
44
|
-
except (subprocess.SubprocessError, FileNotFoundError):
|
|
45
|
-
return ""
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def collect_evidence(evidence_dir):
|
|
49
|
-
"""Collect evidence files (text, JSON, and images) sorted by name."""
|
|
50
|
-
evidence_path = Path(evidence_dir)
|
|
51
|
-
files = []
|
|
52
|
-
for pattern in ("[0-9][0-9]-*.txt", "[0-9][0-9]-*.json", "[0-9][0-9]-*.png"):
|
|
53
|
-
files.extend(evidence_path.glob(pattern))
|
|
54
|
-
# Exclude comment.txt
|
|
55
|
-
files = [f for f in files if f.name != "comment.txt"]
|
|
56
|
-
return sorted(files, key=lambda p: p.name)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def detect_language(filename, content):
|
|
60
|
-
"""Detect code block language from filename extension and content."""
|
|
61
|
-
if filename.endswith(".json"):
|
|
62
|
-
return "json"
|
|
63
|
-
if "HTTP/" in content or "curl" in content.lower():
|
|
64
|
-
return "http"
|
|
65
|
-
if "CREATE TABLE" in content or "ALTER TABLE" in content or "\\d " in content:
|
|
66
|
-
return "sql"
|
|
67
|
-
return "text"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def generate_jira_wiki(ticket_id, pr_number, branch, evidence_files, journey, gh_repo):
|
|
71
|
-
"""Generate JIRA wiki markup comment with code block evidence."""
|
|
72
|
-
lines = []
|
|
73
|
-
lines.append(f"h2. Evidence — PR #{pr_number}")
|
|
74
|
-
lines.append("")
|
|
75
|
-
lines.append(f"*Branch:* {{{{{branch}}}}}")
|
|
76
|
-
lines.append(f"*PR:* [PR #{pr_number}|https://github.com/{gh_repo}/pull/{pr_number}]")
|
|
77
|
-
lines.append("")
|
|
78
|
-
|
|
79
|
-
# Verification Results from assertions
|
|
80
|
-
if journey.get("assertions"):
|
|
81
|
-
lines.append("h3. Verification Results")
|
|
82
|
-
lines.append("")
|
|
83
|
-
for assertion in journey["assertions"]:
|
|
84
|
-
lines.append(f"* {assertion}")
|
|
85
|
-
lines.append("")
|
|
86
|
-
|
|
87
|
-
# Evidence
|
|
88
|
-
lines.append("h3. Evidence")
|
|
89
|
-
lines.append("")
|
|
90
|
-
|
|
91
|
-
for evidence_path in evidence_files:
|
|
92
|
-
filename = evidence_path.name
|
|
93
|
-
stem = evidence_path.stem
|
|
94
|
-
# Extract readable label: remove NN- prefix
|
|
95
|
-
label_parts = stem.split("-")[1:]
|
|
96
|
-
label = " ".join(label_parts).title() if label_parts else stem
|
|
97
|
-
|
|
98
|
-
if filename.endswith(".png"):
|
|
99
|
-
display_width = 700
|
|
100
|
-
lines.append(f"*{label}:*")
|
|
101
|
-
lines.append(f"!{filename}|width={display_width}!")
|
|
102
|
-
lines.append("")
|
|
103
|
-
else:
|
|
104
|
-
content = evidence_path.read_text().strip()
|
|
105
|
-
lang = detect_language(filename, content)
|
|
106
|
-
lines.append(f"*{label}:*")
|
|
107
|
-
lines.append(f"{{code:{lang}}}")
|
|
108
|
-
lines.append(content)
|
|
109
|
-
lines.append("{code}")
|
|
110
|
-
lines.append("")
|
|
111
|
-
|
|
112
|
-
# Verification Journey steps
|
|
113
|
-
if journey.get("steps"):
|
|
114
|
-
lines.append("h3. Verification Journey")
|
|
115
|
-
lines.append("")
|
|
116
|
-
for step in journey["steps"]:
|
|
117
|
-
text = step["text"]
|
|
118
|
-
clean_text = re.sub(r'\s*\[(SCREENSHOT|EVIDENCE):\s*[^\]]+\]', '', text).strip()
|
|
119
|
-
lines.append(f"# {clean_text}")
|
|
120
|
-
lines.append("")
|
|
121
|
-
|
|
122
|
-
return "\n".join(lines)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
def generate_github_md(ticket_id, pr_number, branch, evidence_files, journey, gh_repo, jira_server):
|
|
126
|
-
"""Generate GitHub markdown comment with code block evidence."""
|
|
127
|
-
release_base = f"https://github.com/{gh_repo}/releases/download/pr-assets"
|
|
128
|
-
|
|
129
|
-
lines = []
|
|
130
|
-
lines.append(f"## Evidence — PR #{pr_number}")
|
|
131
|
-
lines.append("")
|
|
132
|
-
lines.append(f"**Branch:** `{branch}`")
|
|
133
|
-
if jira_server:
|
|
134
|
-
lines.append(f"**Ticket:** [{ticket_id}]({jira_server}/browse/{ticket_id})")
|
|
135
|
-
else:
|
|
136
|
-
lines.append(f"**Ticket:** {ticket_id}")
|
|
137
|
-
lines.append("")
|
|
138
|
-
|
|
139
|
-
# Verification Results
|
|
140
|
-
if journey.get("assertions"):
|
|
141
|
-
lines.append("### Verification Results")
|
|
142
|
-
lines.append("")
|
|
143
|
-
for assertion in journey["assertions"]:
|
|
144
|
-
lines.append(f"- {assertion}")
|
|
145
|
-
lines.append("")
|
|
146
|
-
|
|
147
|
-
# Evidence
|
|
148
|
-
lines.append("### Evidence")
|
|
149
|
-
lines.append("")
|
|
150
|
-
|
|
151
|
-
for evidence_path in evidence_files:
|
|
152
|
-
filename = evidence_path.name
|
|
153
|
-
stem = evidence_path.stem
|
|
154
|
-
label_parts = stem.split("-")[1:]
|
|
155
|
-
label = " ".join(label_parts).title() if label_parts else stem
|
|
156
|
-
|
|
157
|
-
if filename.endswith(".png"):
|
|
158
|
-
lines.append(f"**{label}:**")
|
|
159
|
-
lines.append("")
|
|
160
|
-
lines.append(f"")
|
|
161
|
-
lines.append("")
|
|
162
|
-
else:
|
|
163
|
-
content = evidence_path.read_text().strip()
|
|
164
|
-
lang = detect_language(filename, content)
|
|
165
|
-
lines.append(f"**{label}:**")
|
|
166
|
-
lines.append("")
|
|
167
|
-
lines.append(f"```{lang}")
|
|
168
|
-
lines.append(content)
|
|
169
|
-
lines.append("```")
|
|
170
|
-
lines.append("")
|
|
171
|
-
|
|
172
|
-
# Verification Journey
|
|
173
|
-
if journey.get("steps"):
|
|
174
|
-
lines.append("### Verification Journey")
|
|
175
|
-
lines.append("")
|
|
176
|
-
for step in journey["steps"]:
|
|
177
|
-
text = step["text"]
|
|
178
|
-
clean_text = re.sub(r'\s*\[(SCREENSHOT|EVIDENCE):\s*[^\]]+\]', '', text).strip()
|
|
179
|
-
lines.append(f"{step['number']}. {clean_text}")
|
|
180
|
-
lines.append("")
|
|
181
|
-
|
|
182
|
-
return "\n".join(lines)
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
def main():
|
|
186
|
-
if len(sys.argv) < 5:
|
|
187
|
-
print(
|
|
188
|
-
"Usage: generate-templates.py <TICKET_ID> <PR_NUMBER> <BRANCH_NAME> <EVIDENCE_DIR> [JOURNEY_JSON]",
|
|
189
|
-
file=sys.stderr,
|
|
190
|
-
)
|
|
191
|
-
sys.exit(1)
|
|
192
|
-
|
|
193
|
-
ticket_id = sys.argv[1]
|
|
194
|
-
pr_number = sys.argv[2]
|
|
195
|
-
branch = sys.argv[3]
|
|
196
|
-
evidence_dir = sys.argv[4]
|
|
197
|
-
journey_file = sys.argv[5] if len(sys.argv) > 5 else None
|
|
198
|
-
|
|
199
|
-
# Read journey JSON
|
|
200
|
-
if journey_file:
|
|
201
|
-
with open(journey_file) as f:
|
|
202
|
-
journey = json.load(f)
|
|
203
|
-
else:
|
|
204
|
-
journey = json.load(sys.stdin)
|
|
205
|
-
|
|
206
|
-
gh_repo = get_github_repo()
|
|
207
|
-
if not gh_repo:
|
|
208
|
-
print("ERROR: Could not detect GitHub repo — ensure gh CLI is authenticated", file=sys.stderr)
|
|
209
|
-
sys.exit(1)
|
|
210
|
-
|
|
211
|
-
jira_server = get_jira_server()
|
|
212
|
-
|
|
213
|
-
evidence_files = collect_evidence(evidence_dir)
|
|
214
|
-
if not evidence_files:
|
|
215
|
-
print(f"ERROR: No evidence files found in {evidence_dir}", file=sys.stderr)
|
|
216
|
-
sys.exit(1)
|
|
217
|
-
|
|
218
|
-
# Generate templates
|
|
219
|
-
jira_wiki = generate_jira_wiki(ticket_id, pr_number, branch, evidence_files, journey, gh_repo)
|
|
220
|
-
github_md = generate_github_md(ticket_id, pr_number, branch, evidence_files, journey, gh_repo, jira_server)
|
|
221
|
-
|
|
222
|
-
# Write templates
|
|
223
|
-
evidence_path = Path(evidence_dir)
|
|
224
|
-
(evidence_path / "comment.txt").write_text(jira_wiki)
|
|
225
|
-
(evidence_path / "comment.md").write_text(github_md)
|
|
226
|
-
|
|
227
|
-
print(f"Generated {evidence_path / 'comment.txt'} ({len(jira_wiki)} bytes)")
|
|
228
|
-
print(f"Generated {evidence_path / 'comment.md'} ({len(github_md)} bytes)")
|
|
229
|
-
print(f"Evidence files: {len(evidence_files)}")
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if __name__ == "__main__":
|
|
233
|
-
main()
|