claude-dev-env 1.93.1 → 1.94.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 (215) hide show
  1. package/_shared/pr-loop/CLAUDE.md +1 -0
  2. package/_shared/pr-loop/audit-contract.md +1 -1
  3. package/_shared/pr-loop/gh-payloads.md +3 -3
  4. package/_shared/pr-loop/post-audit-thread-contract.md +51 -0
  5. package/_shared/pr-loop/scripts/README.md +2 -2
  6. package/_shared/pr-loop/scripts/fix_hookspath.py +47 -12
  7. package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +0 -69
  8. package/_shared/pr-loop/scripts/tests/test_fix_hookspath.py +497 -374
  9. package/_shared/pr-loop/state-schema.md +3 -22
  10. package/bin/CLAUDE.md +1 -1
  11. package/bin/install.mjs +2 -7
  12. package/bin/install.test.mjs +10 -4
  13. package/hooks/blocking/CLAUDE.md +2 -0
  14. package/hooks/blocking/pii_commit_command.py +398 -0
  15. package/hooks/blocking/pii_payload_scan.py +133 -0
  16. package/hooks/blocking/pii_prevention_blocker.py +151 -449
  17. package/hooks/blocking/test_pii_prevention_blocker.py +299 -0
  18. package/hooks/blocking/test_verdict_directory_write_blocker.py +42 -7
  19. package/hooks/hooks_constants/CLAUDE.md +2 -2
  20. package/hooks/hooks_constants/code_rules_path_utils_constants.py +0 -2
  21. package/hooks/hooks_constants/local_identity.py +65 -15
  22. package/hooks/hooks_constants/pii_prevention_constants.py +16 -0
  23. package/hooks/hooks_constants/pr_description_enforcer_constants.py +1 -1
  24. package/hooks/hooks_constants/test_local_identity.py +68 -0
  25. package/package.json +1 -1
  26. package/scripts/CLAUDE.md +10 -1
  27. package/scripts/Get-SessionAccount.ps1 +210 -0
  28. package/scripts/tests/CLAUDE.md +15 -1
  29. package/scripts/tests/Get-SessionAccount.Tests.ps1 +350 -0
  30. package/skills/CLAUDE.md +3 -25
  31. package/skills/anthropic-plan/SKILL.md +1 -13
  32. package/skills/autoconverge/CLAUDE.md +5 -2
  33. package/skills/autoconverge/SKILL.md +112 -387
  34. package/skills/autoconverge/reference/CLAUDE.md +4 -1
  35. package/skills/autoconverge/reference/closing-report.md +9 -2
  36. package/skills/autoconverge/reference/convergence.md +26 -22
  37. package/skills/autoconverge/reference/headless-safety.md +44 -0
  38. package/skills/autoconverge/reference/multi-pr.md +88 -0
  39. package/skills/autoconverge/reference/self-closing-loop.md +84 -0
  40. package/skills/autoconverge/reference/stop-conditions.md +21 -13
  41. package/skills/autoconverge/workflow/converge.clean-audit.test.mjs +87 -27
  42. package/skills/autoconverge/workflow/converge.contract.test.mjs +40 -10
  43. package/skills/autoconverge/workflow/converge.copilot-gate.test.mjs +179 -47
  44. package/skills/autoconverge/workflow/converge.fix-progress.test.mjs +1 -1
  45. package/skills/autoconverge/workflow/converge.mjs +284 -94
  46. package/skills/bugteam/CLAUDE.md +1 -1
  47. package/skills/bugteam/CONSTRAINTS.md +3 -3
  48. package/skills/bugteam/PROMPTS.md +8 -19
  49. package/skills/bugteam/SKILL.md +13 -14
  50. package/skills/bugteam/reference/CLAUDE.md +1 -1
  51. package/skills/bugteam/reference/audit-and-teammates.md +2 -2
  52. package/skills/bugteam/reference/copilot-gap-analysis.md +2 -0
  53. package/skills/bugteam/reference/github-pr-reviews.md +56 -38
  54. package/skills/bugteam/reference/team-setup.md +11 -11
  55. package/skills/bugteam/scripts/CLAUDE.md +6 -6
  56. package/skills/bugteam/scripts/README.md +20 -8
  57. package/skills/bugteam/scripts/bugteam_code_rules_gate.py +13 -1463
  58. package/skills/bugteam/scripts/bugteam_fix_hookspath.py +23 -358
  59. package/skills/bugteam/scripts/bugteam_preflight.py +13 -315
  60. package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +2 -3
  61. package/skills/bugteam/scripts/test_bugteam_code_rules_gate.py +34 -1053
  62. package/skills/bugteam/scripts/test_bugteam_fix_hookspath.py +30 -347
  63. package/skills/bugteam/scripts/test_bugteam_preflight.py +30 -305
  64. package/skills/copilot-finding-triage/SKILL.md +80 -28
  65. package/skills/copilot-finding-triage/reference/tier-rubric.md +70 -11
  66. package/skills/copilot-finding-triage/templates/notification.md +8 -3
  67. package/skills/everything-search/SKILL.md +1 -2
  68. package/skills/grokify/SKILL.md +58 -0
  69. package/skills/grokify/templates/handoff-template.md +92 -0
  70. package/skills/orchestrator/SKILL.md +12 -8
  71. package/skills/orchestrator-refresh/SKILL.md +3 -3
  72. package/skills/pr-converge/SKILL.md +132 -233
  73. package/skills/pr-converge/reference/convergence-gates.md +102 -66
  74. package/skills/pr-converge/reference/examples.md +37 -25
  75. package/skills/pr-converge/reference/fix-protocol.md +7 -7
  76. package/skills/pr-converge/reference/multi-pr-orchestration.md +10 -4
  77. package/skills/pr-converge/reference/per-tick.md +64 -41
  78. package/skills/pr-converge/reference/state-schema.md +27 -2
  79. package/skills/pr-converge/scripts/CLAUDE.md +8 -0
  80. package/skills/pr-converge/scripts/README.md +4 -3
  81. package/skills/pr-converge/scripts/_pr_converge_path_setup.py +23 -0
  82. package/skills/pr-converge/scripts/check_convergence.py +189 -645
  83. package/skills/pr-converge/scripts/check_convergence_gates.py +235 -0
  84. package/skills/pr-converge/scripts/check_convergence_thread_gates.py +219 -0
  85. package/skills/pr-converge/scripts/conftest.py +8 -0
  86. package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +1 -0
  87. package/skills/pr-converge/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +36 -0
  88. package/skills/pr-converge/scripts/test__pr_converge_path_setup.py +26 -0
  89. package/skills/pr-converge/scripts/test_check_convergence.py +73 -228
  90. package/skills/pr-converge/scripts/test_check_convergence_contract.py +321 -0
  91. package/skills/pr-converge/scripts/test_check_convergence_gates.py +68 -0
  92. package/skills/pr-converge/scripts/test_check_convergence_thread_gates.py +75 -0
  93. package/skills/privacy-hygiene/SKILL.md +4 -3
  94. package/skills/reviewer-gates/SKILL.md +26 -8
  95. package/skills/session-log/SKILL.md +11 -12
  96. package/skills/session-tidy/SKILL.md +40 -30
  97. package/skills/skill-builder/CLAUDE.md +13 -10
  98. package/skills/skill-builder/SKILL.md +31 -31
  99. package/skills/skill-builder/references/CLAUDE.md +10 -6
  100. package/skills/skill-builder/references/delegation-map.md +13 -4
  101. package/skills/skill-builder/references/description-field.md +113 -0
  102. package/skills/skill-builder/references/self-audit-checklist.md +21 -4
  103. package/skills/skill-builder/references/skill-modularity.md +113 -0
  104. package/skills/skill-builder/references/skill-types.md +4 -0
  105. package/skills/skill-builder/templates/CLAUDE.md +4 -4
  106. package/skills/skill-builder/templates/gap-analysis.md +25 -1
  107. package/skills/skill-builder/workflows/CLAUDE.md +6 -4
  108. package/skills/skill-builder/workflows/improve-skill.md +17 -16
  109. package/skills/skill-builder/workflows/new-skill.md +34 -10
  110. package/skills/skill-builder/workflows/polish-skill.md +59 -43
  111. package/skills/usage-pause/SKILL.md +10 -14
  112. package/skills/bdd-protocol/CLAUDE.md +0 -26
  113. package/skills/bdd-protocol/SKILL.md +0 -30
  114. package/skills/bdd-protocol/references/CLAUDE.md +0 -10
  115. package/skills/bdd-protocol/references/anti-patterns.md +0 -26
  116. package/skills/bdd-protocol/references/example-mapping.md +0 -23
  117. package/skills/bg-agent/CLAUDE.md +0 -17
  118. package/skills/bg-agent/SKILL.md +0 -69
  119. package/skills/bugteam/scripts/bugteam_scripts_constants/bugteam_code_rules_gate_constants.py +0 -55
  120. package/skills/bugteam/scripts/bugteam_scripts_constants/bugteam_fix_hookspath_constants.py +0 -26
  121. package/skills/bugteam/scripts/bugteam_scripts_constants/bugteam_preflight_constants.py +0 -35
  122. package/skills/caveman/CLAUDE.md +0 -15
  123. package/skills/caveman/SKILL.md +0 -38
  124. package/skills/code/CLAUDE.md +0 -17
  125. package/skills/code/SKILL.md +0 -178
  126. package/skills/deep-research/CLAUDE.md +0 -17
  127. package/skills/deep-research/SKILL.md +0 -80
  128. package/skills/findbugs/CLAUDE.md +0 -20
  129. package/skills/findbugs/SKILL.md +0 -241
  130. package/skills/fixbugs/CLAUDE.md +0 -19
  131. package/skills/fixbugs/SKILL.md +0 -142
  132. package/skills/gh-paginate/CLAUDE.md +0 -18
  133. package/skills/gh-paginate/SKILL.md +0 -84
  134. package/skills/gotcha/CLAUDE.md +0 -33
  135. package/skills/gotcha/SKILL.md +0 -73
  136. package/skills/implement/CLAUDE.md +0 -27
  137. package/skills/implement/SKILL.md +0 -66
  138. package/skills/implement/scripts/CLAUDE.md +0 -22
  139. package/skills/implement/scripts/append_note.py +0 -133
  140. package/skills/implement/scripts/implement_scripts_constants/CLAUDE.md +0 -22
  141. package/skills/implement/scripts/implement_scripts_constants/__init__.py +0 -0
  142. package/skills/implement/scripts/implement_scripts_constants/notes_constants.py +0 -12
  143. package/skills/implement/scripts/test_append_note.py +0 -191
  144. package/skills/log-audit/CLAUDE.md +0 -20
  145. package/skills/log-audit/SKILL.md +0 -66
  146. package/skills/log-audit/reference/CLAUDE.md +0 -9
  147. package/skills/log-audit/reference/charter.md +0 -52
  148. package/skills/log-audit/scripts/CLAUDE.md +0 -27
  149. package/skills/log-audit/scripts/cluster_recurrences.py +0 -261
  150. package/skills/log-audit/scripts/collect_log_window.py +0 -199
  151. package/skills/log-audit/scripts/log_audit_constants/CLAUDE.md +0 -12
  152. package/skills/log-audit/scripts/log_audit_constants/__init__.py +0 -0
  153. package/skills/log-audit/scripts/log_audit_constants/cluster_recurrences_constants.py +0 -23
  154. package/skills/log-audit/scripts/log_audit_constants/collect_log_window_constants.py +0 -24
  155. package/skills/log-audit/scripts/log_audit_constants/mine_copilot_findings_constants.py +0 -49
  156. package/skills/log-audit/scripts/mine_copilot_findings.py +0 -302
  157. package/skills/log-audit/scripts/test_cluster_recurrences.py +0 -160
  158. package/skills/log-audit/scripts/test_collect_log_window.py +0 -111
  159. package/skills/log-audit/scripts/test_mine_copilot_findings.py +0 -126
  160. package/skills/logifix/CLAUDE.md +0 -36
  161. package/skills/logifix/SKILL.md +0 -69
  162. package/skills/logifix/scripts/CLAUDE.md +0 -16
  163. package/skills/logifix/scripts/logifix.ps1 +0 -205
  164. package/skills/monitor-open-prs/CLAUDE.md +0 -34
  165. package/skills/monitor-open-prs/SKILL.md +0 -88
  166. package/skills/monitor-open-prs/scripts/CLAUDE.md +0 -17
  167. package/skills/monitor-open-prs/scripts/discover_open_prs.py +0 -69
  168. package/skills/monitor-open-prs/scripts/test_discover_open_prs.py +0 -149
  169. package/skills/monitor-open-prs/test_skill_contract.py +0 -27
  170. package/skills/post-audit-findings/SKILL.md +0 -80
  171. package/skills/pr-consistency-audit/CLAUDE.md +0 -34
  172. package/skills/pr-consistency-audit/SKILL.md +0 -116
  173. package/skills/pr-consistency-audit/reference/CLAUDE.md +0 -16
  174. package/skills/pr-consistency-audit/reference/detection-rules.md +0 -96
  175. package/skills/pr-consistency-audit/reference/illustrations.md +0 -78
  176. package/skills/pr-fix-protocol/SKILL.md +0 -65
  177. package/skills/pr-review-responder/CLAUDE.md +0 -35
  178. package/skills/pr-review-responder/EXAMPLES.md +0 -590
  179. package/skills/pr-review-responder/PRINCIPLES.md +0 -533
  180. package/skills/pr-review-responder/README.md +0 -168
  181. package/skills/pr-review-responder/SKILL.md +0 -203
  182. package/skills/pr-review-responder/TESTING.md +0 -350
  183. package/skills/pr-scope-resolve/SKILL.md +0 -45
  184. package/skills/pre-compact/CLAUDE.md +0 -24
  185. package/skills/pre-compact/SKILL.md +0 -134
  186. package/skills/qbug/CLAUDE.md +0 -40
  187. package/skills/qbug/SKILL.md +0 -387
  188. package/skills/qbug/test_qbug_skill_audit_schema.py +0 -152
  189. package/skills/qbug/test_qbug_skill_post_fix_audit.py +0 -103
  190. package/skills/refine/CLAUDE.md +0 -44
  191. package/skills/refine/SKILL.md +0 -262
  192. package/skills/refine/templates/CLAUDE.md +0 -17
  193. package/skills/refine/templates/implementation-notes-template.html +0 -56
  194. package/skills/refine/templates/plan-template.md +0 -60
  195. package/skills/research-mode/CLAUDE.md +0 -35
  196. package/skills/research-mode/SKILL.md +0 -53
  197. package/skills/structure-prompt/CLAUDE.md +0 -42
  198. package/skills/structure-prompt/SKILL.md +0 -44
  199. package/skills/structure-prompt/reference/CLAUDE.md +0 -28
  200. package/skills/structure-prompt/reference/adversarial-tuning.md +0 -62
  201. package/skills/structure-prompt/reference/block-classification.md +0 -27
  202. package/skills/structure-prompt/reference/canonical-case.md +0 -48
  203. package/skills/structure-prompt/reference/citation-depth.md +0 -70
  204. package/skills/structure-prompt/reference/cleanup.md +0 -33
  205. package/skills/structure-prompt/reference/constraints.md +0 -33
  206. package/skills/structure-prompt/reference/directives.md +0 -37
  207. package/skills/structure-prompt/reference/examples.md +0 -72
  208. package/skills/structure-prompt/reference/instantiation.md +0 -51
  209. package/skills/structure-prompt/reference/output-contract.md +0 -72
  210. package/skills/structure-prompt/reference/per-category.md +0 -23
  211. package/skills/structure-prompt/reference/persona.md +0 -38
  212. package/skills/structure-prompt/reference/research.md +0 -33
  213. package/skills/structure-prompt/reference/structure.md +0 -28
  214. package/skills/verified-build/CLAUDE.md +0 -33
  215. package/skills/verified-build/SKILL.md +0 -33
@@ -1,6 +1,15 @@
1
1
  # State across ticks
2
2
 
3
- **Dual persistence:** Single-PR `/pr-converge` writes loop state to
3
+ ## Contents
4
+
5
+ - [Dual persistence](#dual-persistence)
6
+ - [Fields](#fields)
7
+ - [Read/write lifecycle](#readwrite-lifecycle)
8
+ - [Handoff files](#handoff-files)
9
+
10
+ ## Dual persistence
11
+
12
+ Single-PR `/pr-converge` writes loop state to
4
13
  `$CLAUDE_JOB_DIR/pr-converge-state.json`; that file is the source of truth
5
14
  for `phase`, heads, counters, status. Multi-PR mode additionally maintains
6
15
  `<TMPDIR>/pr-converge-<session_id>/state.json` for orchestrator coordination
@@ -9,6 +18,8 @@ across PRs. Both files share most of the fields below; the
9
18
  live ONLY in the single-PR `$CLAUDE_JOB_DIR/pr-converge-state.json` file
10
19
  (see those field entries below for details).
11
20
 
21
+ ## Fields
22
+
12
23
  - `phase`: `BUGBOT`, `CODE_REVIEW`, `BUGTEAM`, or `COPILOT_WAIT`. Start
13
24
  `CODE_REVIEW` on first tick. `BUGBOT` is the terminal external-confirmation
14
25
  phase reached after BUGTEAM converges; the internal `CODE_REVIEW` and
@@ -18,8 +29,20 @@ live ONLY in the single-PR `$CLAUDE_JOB_DIR/pr-converge-state.json` file
18
29
  - `code_review_clean_at`: HEAD SHA where the `/code-review` pass last
19
30
  reported clean (no validated findings), or `null`. Reset to `null` on
20
31
  every push.
32
+ - `bugteam_clean_at`: HEAD SHA where bugteam last reported clean, or `null`.
33
+ Reset to `null` on every push.
21
34
  - `copilot_clean_at`: HEAD SHA where Copilot last reported clean, or `null`.
22
35
  Reset to `null` on every push.
36
+ - `merge_state_status`: last-observed `mergeable_state` from
37
+ `pull_request_read(method="get")` (e.g. `clean`, `dirty`, `blocked`,
38
+ `behind`, `unknown`, `unstable`), or `null` before the first check. Reset
39
+ to `null` on every push. Gate (c) in [convergence-gates.md](convergence-gates.md)
40
+ invokes rebase on `dirty`; other non-`clean` values (`blocked`, `behind`,
41
+ `unknown`, `unstable`) are hard blockers.
42
+ - `current_head`: SHA of the last-known PR HEAD. Each tick refreshes it from
43
+ `pull_request_read(method="get")` → `.head.sha`, and again after any push
44
+ that moves HEAD. Clean-at stamps, wait counters, and phase gates compare
45
+ against this value.
23
46
  - `copilot_wait_count`: integer, init `0`. Consecutive COPILOT_WAIT ticks
24
47
  with no Copilot review surfaced at `current_head`. Escalate as hard blocker
25
48
  at `>= 3`. Reset to `0` when a Copilot review surfaces at `current_head`
@@ -95,11 +118,13 @@ live ONLY in the single-PR `$CLAUDE_JOB_DIR/pr-converge-state.json` file
95
118
  `{agent_id, created_tick, last_used_tick}` for the persistent per-step
96
119
  agents the loop resumes across ticks. Exactly three step keys:
97
120
  `fix_executor` (the clean-coder that applies findings in Step 4 dirty,
98
- Step 6 findings, gates (a)/(d), and Step 7a), `thread_sweep`, and
121
+ Step 6 findings, gates (a)/(b)/(e), and Step 7a), `thread_sweep`, and
99
122
  `copilot_watch`. `agent_id` is the id the `Agent` tool returned at spawn;
100
123
  `created_tick` is the `tick_count` at spawn; `last_used_tick` is bumped
101
124
  on every `SendMessage` resume.
102
125
 
126
+ ## Read/write lifecycle
127
+
103
128
  Single-PR tick begins by reading `$CLAUDE_JOB_DIR/pr-converge-state.json`
104
129
  if it exists and ends by writing the updated state back to that same file
105
130
  before scheduling the next wakeup. Multi-PR mode additionally coordinates
@@ -8,13 +8,21 @@ Python helper scripts for the `pr-converge` skill, plus their tests and a PowerS
8
8
  |---|---|
9
9
  | `check_bugbot_ci.py` | Checks bugbot CI check-run status on a given SHA |
10
10
  | `check_convergence.py` | Evaluates whether all convergence gates pass on the current HEAD |
11
+ | `check_convergence_gates.py` | GitHub REST leaf checks (review and Bugbot) the convergence gates call |
12
+ | `check_convergence_thread_gates.py` | GitHub GraphQL and REST leaf checks (review threads and pending reviewers) the convergence gates call |
11
13
  | `check_pending_reviews.py` | Fetches pending review requests and reviewer states |
12
14
  | `fetch_copilot_reviews.py` | Fetches Copilot reviewer reviews filtered to the current HEAD |
13
15
  | `post_fix_reply.py` | Posts an inline reply to a review comment thread |
14
16
  | `reflow_skill_md.py` | Reformats `SKILL.md` to enforce a line width limit |
15
17
  | `README.md` | MCP tool reference for PR operations used by the scripts |
18
+ | `_pr_converge_path_setup.py` | Adds the scripts directory to `sys.path` for direct script imports |
19
+ | `conftest.py` | Puts the scripts directory on `sys.path` so pytest collects the suite |
16
20
  | `test_check_bugbot_ci.py` | Tests for `check_bugbot_ci.py` |
17
21
  | `test_check_convergence.py` | Tests for `check_convergence.py` |
22
+ | `test_check_convergence_contract.py` | Contract pins for `check_convergence.py` gate wiring |
23
+ | `test_check_convergence_gates.py` | Tests for `check_convergence_gates.py` |
24
+ | `test_check_convergence_thread_gates.py` | Tests for `check_convergence_thread_gates.py` |
25
+ | `test__pr_converge_path_setup.py` | Tests for `_pr_converge_path_setup.py` |
18
26
  | `test_cursor_agents_continue.py` | Tests for the cursor-agents-continue toolset |
19
27
  | `test_reflow_skill_md.py` | Tests for `reflow_skill_md.py` |
20
28
  | `caller-window-pid.ps1` | Gets the PID of the calling terminal window |
@@ -84,8 +84,7 @@ Fetch via MCP:
84
84
  pull_request_read(method="get_review_comments", pullNumber=NUMBER, owner=OWNER, repo=REPO)
85
85
  → filter threads where `is_resolved == false`
86
86
 
87
- Sweep semantics and per-thread handling live in the `pr-fix-protocol`
88
- skill's unresolved-thread sweep (`../../pr-fix-protocol/SKILL.md`).
87
+ Sweep semantics and per-thread handling live in the shared fix protocol ([`../../../_shared/pr-loop/fix-protocol.md`](../../../_shared/pr-loop/fix-protocol.md) step 12; skill deltas in [`../reference/fix-protocol.md`](../reference/fix-protocol.md)).
89
88
 
90
89
  ### Request Copilot review: `gh api` REST endpoint
91
90
 
@@ -99,7 +98,9 @@ Check for an existing pending review first with
99
98
 
100
99
  ## Shared modules
101
100
 
102
- Shared Python utilities live under `_shared/pr-loop/scripts/` — `_xml_utils.py` for XML serialization, `_cli_utils.py` for CLI guards, `_path_resolver.py` for canonical path resolution. These serve `/bugteam`, `/qbug`, `/findbugs`, and `/fixbugs` equally.
101
+ Shared Python utilities live under `skills/_shared/pr-loop/scripts/` —
102
+ `_xml_utils.py` for XML serialization, `_cli_utils.py` for CLI guards,
103
+ `_path_resolver.py` for canonical path resolution.
103
104
 
104
105
  ## Tests
105
106
 
@@ -0,0 +1,23 @@
1
+ """Put the pr-converge script directories on sys.path for standalone runs.
2
+
3
+ Importing this module makes the skill's constants package and the shared
4
+ ``reviews_disabled`` module resolvable when a script in this directory runs
5
+ as ``__main__``. Each directory is added once, guarded against duplicates.
6
+ """
7
+
8
+ import sys
9
+ from pathlib import Path
10
+
11
+ _scripts_directory = Path(__file__).resolve().parent
12
+ _skill_directory = _scripts_directory.parent
13
+ _claude_dev_env_directory = _scripts_directory.parent.parent.parent
14
+ _shared_pr_loop_scripts_directory = (
15
+ _claude_dev_env_directory / "_shared" / "pr-loop" / "scripts"
16
+ )
17
+
18
+ if str(_scripts_directory) not in sys.path:
19
+ sys.path.insert(0, str(_scripts_directory))
20
+ if str(_skill_directory) not in sys.path:
21
+ sys.path.insert(0, str(_skill_directory))
22
+ if str(_shared_pr_loop_scripts_directory) not in sys.path:
23
+ sys.path.insert(0, str(_shared_pr_loop_scripts_directory))