@kolatts/pncli 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/copilot-instructions.md +34 -1
  2. package/dist/{chunk-O3LWAWSN.js → chunk-AWSXVWRN.js} +2 -1
  3. package/dist/{chunk-O3LWAWSN.js.map → chunk-AWSXVWRN.js.map} +1 -1
  4. package/dist/{chunk-3XHTRFRX.js → chunk-VPUWMP2M.js} +3 -2
  5. package/dist/chunk-VPUWMP2M.js.map +1 -0
  6. package/dist/cli.js +410 -36
  7. package/dist/cli.js.map +1 -1
  8. package/dist/{config-NCI2BTQG.js → config-OFLPO5DN.js} +4 -2
  9. package/dist/{http-L2P23H2D.js → http-LNDRNPP7.js} +2 -2
  10. package/package.json +1 -1
  11. package/skills/pncli/SKILL.md +92 -0
  12. package/skills/pncli/ado.md +33 -0
  13. package/skills/pncli/artifactory.md +35 -0
  14. package/skills/pncli/bitbucket.md +30 -0
  15. package/skills/pncli/checkmarx.md +31 -0
  16. package/skills/pncli/confluence.md +24 -0
  17. package/skills/pncli/contrast.md +39 -0
  18. package/skills/pncli/jenkins.md +29 -0
  19. package/skills/pncli/jira.md +35 -0
  20. package/skills/pncli/marketplace.md +41 -0
  21. package/skills/pncli/sde.md +29 -0
  22. package/skills/pncli/servicenow.md +33 -0
  23. package/skills/pncli/sonarqube.md +30 -0
  24. package/skills/pncli/sonatypeiq.md +39 -0
  25. package/skills/pncli/udeploy.md +48 -0
  26. package/dist/chunk-3XHTRFRX.js.map +0 -1
  27. package/skills/address-pr-feedback/SKILL.md +0 -87
  28. package/skills/code-review/SKILL.md +0 -82
  29. package/skills/local-setup/SKILL.md +0 -225
  30. package/skills/plan/SKILL.md +0 -120
  31. package/skills/security-review/SKILL.md +0 -108
  32. package/skills/ship/SKILL.md +0 -170
  33. /package/dist/{config-NCI2BTQG.js.map → config-OFLPO5DN.js.map} +0 -0
  34. /package/dist/{http-L2P23H2D.js.map → http-LNDRNPP7.js.map} +0 -0
@@ -1,120 +0,0 @@
1
- ---
2
- name: plan
3
- description: Turn a feature description, goal, or problem statement into a structured backlog in Jira or ADO. Explores the codebase with parallel subagents before generating the breakdown; shows the plan to the user for confirmation before creating any work items. Use when asked to plan a feature, break down a problem, or create backlog items from a description.
4
- compatibility: Designed for Claude Code. Requires pncli configured with Jira or Azure DevOps.
5
- user-invocable: true
6
- metadata:
7
- category: planning
8
- providers: both
9
- services: git, jira, ado
10
- ---
11
-
12
- ## Step 1 — Get the feature description
13
-
14
- Ask the user: "What are you planning? Describe the feature, goal, or problem in as much detail as you have."
15
-
16
- Wait for their response before proceeding.
17
-
18
- ## Step 2 — Detect ticket provider
19
-
20
- Run `pncli config show`.
21
- - `jira.baseUrl` present → Jira. Note the default project key from `defaults.jira.project`.
22
- - `ado.baseUrl` present → ADO. Note the default project from `defaults.ado.project`.
23
-
24
- ## Step 3 — RESEARCH: Explore the codebase (parallel)
25
-
26
- Launch three agents based on the feature description:
27
-
28
- **Agent A — Relevant files and patterns**
29
- Search the codebase for files related to the described feature area (grep for key terms, check likely directories).
30
- Read the most relevant source files in full.
31
- Note: existing patterns, data models, API contracts, naming conventions used in this area.
32
-
33
- **Agent B — Dependencies and integration points**
34
- Identify external services, APIs, or packages the feature will touch.
35
- Read any relevant config files and interface/type definitions.
36
- Check for existing tests that cover adjacent code — note what's already tested.
37
-
38
- **Agent C — Scope and constraints**
39
- Read `CLAUDE.md` (or any architecture decision records present).
40
- Identify stable contracts or public APIs that should NOT change.
41
- Note any known tech debt or open issues in the affected area that could affect scope.
42
-
43
- Wait for all three agents.
44
-
45
- ## Step 4 — PLAN: Produce a story breakdown
46
-
47
- Using the research output, generate a structured plan:
48
-
49
- ```
50
- Epic: "<Feature name>" — one-sentence description
51
-
52
- Story 1: <title>
53
- Acceptance criteria:
54
- - <testable criterion>
55
- - <testable criterion>
56
- Size: S / M / L
57
- Depends on: (none | Story N)
58
-
59
- Story 2: ...
60
-
61
- Tasks under Story 1:
62
- - <specific implementation step> (<file(s) that will change>)
63
- - ...
64
- ```
65
-
66
- Show the complete breakdown to the user and ask:
67
- "Does this plan look right? Say 'looks good' to create the work items, or describe any changes."
68
-
69
- **Wait for explicit user confirmation before Step 5.** Do not create any tickets until confirmed.
70
-
71
- ## Step 5 — IMPLEMENT: Create work items
72
-
73
- Only create an Epic if there are more than 2 stories.
74
-
75
- **Jira:**
76
- ```
77
- # Epic (if >2 stories)
78
- pncli jira create-issue --project <key> --type Epic \
79
- --summary "<epic title>" --description "<description>"
80
-
81
- # Per story
82
- pncli jira create-issue --project <key> --type Story \
83
- --summary "<story title>" \
84
- --description "<acceptance criteria>" \
85
- --labels <feature-label>
86
-
87
- # Per task
88
- pncli jira create-issue --project <key> --type Task \
89
- --summary "<task title>" --description "<details>"
90
-
91
- # Link story → epic
92
- pncli jira link-issue --key <story> --link-type "is child of" --target <epic>
93
-
94
- # Link task → story
95
- pncli jira link-issue --key <task> --link-type "is child of" --target <story>
96
- ```
97
-
98
- **ADO:**
99
- ```
100
- # Epic (if >2 stories)
101
- pncli ado work create --type Epic --title "<epic title>" --description "<description>"
102
-
103
- # Per story
104
- pncli ado work create --type "User Story" \
105
- --title "<story title>" --description "<acceptance criteria>"
106
-
107
- # Per task
108
- pncli ado work create --type Task --title "<task title>" --description "<details>"
109
-
110
- # Link story → epic
111
- pncli ado work link --id <story> --to <epic> --type parent
112
-
113
- # Link task → story
114
- pncli ado work link --id <task> --to <story> --type parent
115
- ```
116
-
117
- ## Step 6 — Report
118
-
119
- Print: Epic key/id (if created), each story with its key/id, total tasks created.
120
- Ask: "Want me to open the Epic in the browser?"
@@ -1,108 +0,0 @@
1
- ---
2
- name: security-review
3
- description: Scan all security sources (dependency CVEs, SonarQube vulnerabilities, SonarQube hotspots, optionally SDElements threats), triage by severity, then create Jira or ADO tickets — Bug for critical/blocking findings, Task for others, grouped under an Epic when more than 3 tickets are created. Use when asked to do a security review, scan for vulnerabilities, or triage security findings into the backlog.
4
- compatibility: Designed for Claude Code. Requires pncli configured with deps scanning and optionally SonarQube and SDElements.
5
- user-invocable: true
6
- metadata:
7
- category: security
8
- providers: both
9
- services: deps, sonar, sde, jira, ado
10
- ---
11
-
12
- ## Step 1 — RESEARCH: Gather all findings (parallel)
13
-
14
- Get current branch: `git rev-parse --abbrev-ref HEAD`
15
-
16
- Launch four agents simultaneously:
17
-
18
- **Agent A — Dependency CVEs**
19
- `pncli deps frisk`
20
- Report: package name, CVE id, severity (CRITICAL/HIGH/MEDIUM/LOW), fixed-in version if known.
21
-
22
- **Agent B — SonarQube vulnerabilities**
23
- `pncli sonar issues --types VULNERABILITY --statuses OPEN --branch <branch>`
24
- Report: rule key, severity, file, line, message.
25
-
26
- **Agent C — SonarQube hotspots**
27
- `pncli sonar hotspots --status TO_REVIEW --branch <branch>`
28
- Report: securityCategory, vulnerabilityProbability (HIGH/MEDIUM/LOW), file, line, message.
29
-
30
- **Agent D — SDElements threats (conditional)**
31
- First check: `pncli config show` — only run this agent if `sde.connection` is present in the output.
32
- If present: `pncli sde threats`
33
- Report: threat title, risk rating, phase (requirements/design/development/testing).
34
-
35
- Wait for all agents.
36
-
37
- ## Step 2 — PLAN: Triage and prioritize
38
-
39
- Consolidate all findings into a single prioritized list:
40
- 1. Critical CVEs + Blocker SonarQube vulnerabilities
41
- 2. High CVEs + Critical SonarQube vulnerabilities + High hotspots
42
- 3. Medium findings
43
- 4. Drop low/info findings unless the user explicitly requested them
44
-
45
- **Deduplicate:** if the same file+line or the same package appears across multiple sources, merge into one finding and note all source references.
46
-
47
- **Assign ticket type:**
48
- - Critical or Blocker severity → **Bug**
49
- - All others → **Task**
50
-
51
- ## Step 3 — Detect ticket provider
52
-
53
- Run `pncli config show`.
54
- - `jira.baseUrl` present → Jira
55
- - `ado.baseUrl` present → ADO
56
-
57
- ## Step 4 — IMPLEMENT: Create tickets (highest severity first)
58
-
59
- **Jira:**
60
- ```
61
- pncli jira create-issue \
62
- --project <default-project-key> \
63
- --type <Bug|Task> \
64
- --summary "Security: <description>" \
65
- --description "<source>: <severity>\nRule/CVE: <id>\nFile: <path>:<line>\nFix: <guidance>" \
66
- --priority <Critical|High|Medium> \
67
- --labels security,<source-tag>
68
- ```
69
- Source tags: `cve-remediation`, `sonar-vulnerability`, `sonar-hotspot`, `threat-model`
70
-
71
- **ADO:**
72
- ```
73
- pncli ado work create \
74
- --type <Bug|Task> \
75
- --title "Security: <description>" \
76
- --description "<details>" \
77
- --priority <1|2|3>
78
- ```
79
-
80
- Link related findings (same component or same CVE chain):
81
- - Jira: `pncli jira link-issue --key <new> --link-type "relates to" --target <related>`
82
- - ADO: `pncli ado work link --id <new> --to <related> --type related`
83
-
84
- ## Step 5 — Group under Epic if more than 3 tickets
85
-
86
- **Jira:**
87
- ```
88
- pncli jira create-issue --project <key> --type Epic \
89
- --summary "Security Review <YYYY-MM-DD>" \
90
- --description "Critical: <n>, High: <n>, Medium: <n>. Sources: <list>"
91
- ```
92
- Then for each ticket: `pncli jira link-issue --key <ticket> --link-type "is child of" --target <epic>`
93
-
94
- **ADO:**
95
- ```
96
- pncli ado work create --type Epic \
97
- --title "Security Review <YYYY-MM-DD>" \
98
- --description "<breakdown>"
99
- ```
100
- Then: `pncli ado work link --id <ticket> --to <epic> --type parent`
101
-
102
- ## Step 6 — Report summary
103
-
104
- Print:
105
- - Sources scanned
106
- - Total raw findings, deduplicated count
107
- - Tickets created (with keys/ids)
108
- - Epic key/id if created
@@ -1,170 +0,0 @@
1
- ---
2
- name: ship
3
- description: Open a PR for the current branch on Bitbucket or Azure DevOps. Runs the full pre-PR gate (build, lint, typecheck, tests, code review, docs) using parallel subagents before opening the PR. For GitHub repos, use the repo-scoped /ship skill instead. Use whenever the user says "open a PR", "create a PR", "ship this", "pull request", or "/ship".
4
- compatibility: Designed for Claude Code. Requires pncli configured with Bitbucket or Azure DevOps.
5
- user-invocable: true
6
- metadata:
7
- category: pr-workflow
8
- providers: both
9
- services: git, bitbucket, ado
10
- ---
11
-
12
- Run the full pre-PR gate and open the PR. Parallelize as much as possible.
13
-
14
- Make sure there are no outstanding untracked changes before starting.
15
-
16
- Detect provider once up front: run `git remote -v`. `/_git/` → Azure DevOps. `/scm/` → Bitbucket. Use this throughout every phase.
17
-
18
- ## Phase 0 — Issue check + build command setup
19
-
20
- **Issue:** Parse the current branch name for an issue key:
21
- - Jira key pattern: `[A-Z]+-\d+` (e.g., `PROJ-42`)
22
- - ADO work item id: a plain integer after a hyphen (e.g., `feature/1234-add-widget` → `#1234`)
23
-
24
- If a key is found, note it for use in the PR body (`Closes <key>`). If none is found, proceed without one.
25
-
26
- **Build commands (one-time setup):** Check if Phase 2 in this file already has real commands filled in (i.e., not the placeholder text `<build-command>`). If it does, skip this step.
27
-
28
- If placeholders are still present, ask the user:
29
- - "What command do you use to build?" (e.g., `npm run build`, `dotnet build`, `gradle build`)
30
- - "What command do you use to lint or typecheck?" (e.g., `npm run lint`, `dotnet format --verify-no-changes`)
31
- - "What command do you use to run tests?" (e.g., `npm test`, `dotnet test`, `./gradlew test`)
32
-
33
- Once answered, edit this SKILL.md file directly — replace the `<build-command>`, `<lint-command>`, and `<test-command>` placeholders in Phase 2 below with the actual commands. Save the file before proceeding.
34
-
35
- ## Phase 1 — Gather context (parallel)
36
-
37
- Launch two subagents simultaneously:
38
-
39
- **Agent A — Diff + branch info**
40
- - Run `git log origin/<target-branch>..HEAD --oneline`
41
- - Run `git diff origin/<target-branch>..HEAD --stat`
42
- - Run `git diff origin/<target-branch>..HEAD --name-only`
43
- - Bitbucket: `pncli bitbucket list-prs --state OPEN` filtered to current branch
44
- - ADO: `pncli ado repo list-prs --state active` filtered to sourceRefName matching current branch
45
- - Report: branch name, commit list, changed files, existing PR URL if any
46
-
47
- **Agent B — Docs audit**
48
- - Run `git diff origin/<target-branch>..HEAD --name-only`
49
- - Read every file in `docs/` and every `README.md` in the repo
50
- - Read `CLAUDE.md` sections relevant to the changed files
51
- - Check for any docs or site pages that reference changed commands or features — flag anything stale
52
- - Report: stale docs/README sections, new or updated commands with full signatures
53
-
54
- Wait for both agents.
55
-
56
- ## Phase 2 — Pre-PR gate (parallel)
57
-
58
- If a PR already exists (Agent A found one), skip straight to Phase 3.
59
-
60
- Launch three subagents simultaneously:
61
-
62
- **Agent C — Build + lint**
63
- 1. Run `<build-command>` — must succeed.
64
- 2. Run `<lint-command>` — report errors or warnings.
65
- - Report: build result, lint issues
66
-
67
- **Agent D — Code review**
68
- - Run `git diff origin/<target-branch>..HEAD` to get the full diff
69
- - Read each changed file in full
70
- - Review for correctness, quality, and consistency with any `CLAUDE.md` conventions
71
- - Rate each issue: Major (blocks merge), Minor (should fix), Nit (optional)
72
- - Report: overall decision (Approve / Request Changes), all issues with file + line + severity
73
-
74
- **Agent E — Tests**
75
- - Run `<test-command>` and report pass/fail/counts
76
- - If no tests exist, report that and note which changed files could benefit from coverage
77
- - Report: test result summary
78
-
79
- Wait for all three agents.
80
-
81
- ## Phase 3 — Fix loop
82
-
83
- Collect all issues from Phase 2:
84
- - Build errors → fix them
85
- - Lint errors → fix them (warnings: fix if trivial)
86
- - Code review issues rated Major or Minor → fix them; skip Nits unless trivial
87
- - Failing tests → fix them
88
- - Stale docs or README sections (from Agent B) → update them
89
-
90
- After fixing, re-run Agent C to confirm build + lint pass. Re-run Agent E if any source files changed.
91
-
92
- ## Phase 4 — Commit fixes (if any)
93
-
94
- If Phase 3 produced any changes:
95
- - `git add` the changed files
96
- - Show the staged diff and confirm with the user before committing
97
- - Commit: `fix(pre-pr): address review feedback`
98
-
99
- ## Phase 5 — PR preview
100
-
101
- Construct the PR title and body (do not open the PR yet):
102
-
103
- **Title:** strip the `<username>/` prefix and any leading issue number from the branch name, convert to Conventional Commit format:
104
- - `type(scope): description`
105
- - Example: branch `alice/PROJ-42-add-widget` → `feat(widget): add widget`
106
-
107
- **Body:**
108
- ```
109
- ## Summary
110
- <bullet points from commit list>
111
-
112
- ## Issue
113
- Closes <issue-key>
114
- (omit this section entirely if no issue was found in Phase 0)
115
-
116
- ## Pre-PR gate
117
- - Build: passed
118
- - Lint: <clean / N warnings>
119
- - Code review: <Approve / issues fixed>
120
- - Tests: <N passed / no tests>
121
- - Docs: <updated / no changes needed>
122
- ```
123
-
124
- Show the formatted title and body to the user, then immediately proceed to open the PR without waiting for confirmation.
125
-
126
- ## Phase 6 — Open PR
127
-
128
- **Bitbucket:**
129
- ```
130
- pncli bitbucket create-pr \
131
- --title "<title>" \
132
- --body "<body>" \
133
- --source <current-branch> \
134
- --target <target-branch>
135
- ```
136
-
137
- **ADO:**
138
- ```
139
- pncli ado repo create-pr \
140
- --title "<title>" \
141
- --body "<body>" \
142
- --source <current-branch> \
143
- --target <target-branch>
144
- ```
145
-
146
- Report the PR URL to the user.
147
-
148
- ## Phase 7 — Post-open watch loop
149
-
150
- After opening the PR, immediately invoke `/loop 10m` with the following recurring task:
151
-
152
- > Poll PR status:
153
- >
154
- > **Bitbucket:** `pncli bitbucket get-pr --id <id>` — check `state` field.
155
- > **ADO:** `pncli ado repo get-pr --id <id>` — check `status` field.
156
- >
157
- > **If MERGED / completed:** Report "PR merged" and stop the loop.
158
- >
159
- > **If CONFLICTING (Bitbucket state=OPEN with conflicts) or ADO merge conflicts indicated:**
160
- > `git fetch origin <target-branch> && git merge origin/<target-branch>`
161
- > Fix any conflicts, `git add`, `git commit -m "fix(merge): resolve conflicts"`, push.
162
- > Report what was resolved.
163
- >
164
- > **If reviewer voted CHANGES_REQUESTED / needs-work:**
165
- > Re-run Phases 2–4 (gate, fix all issues, commit). Push.
166
- > Report what was fixed.
167
- >
168
- > **If OPEN / active, no issues:** Report "PR open, checks running — nothing to do yet."
169
- >
170
- > **If DECLINED / abandoned:** Report "PR closed without merging" and stop the loop.