advisor-agent 0.5.1__tar.gz

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 (235) hide show
  1. advisor_agent-0.5.1/.github/ISSUE_TEMPLATE/bug_report.md +45 -0
  2. advisor_agent-0.5.1/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. advisor_agent-0.5.1/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  4. advisor_agent-0.5.1/.github/dependabot.yml +32 -0
  5. advisor_agent-0.5.1/.github/pull_request_template.md +32 -0
  6. advisor_agent-0.5.1/.github/workflows/advisor.yml +110 -0
  7. advisor_agent-0.5.1/.github/workflows/ci.yml +57 -0
  8. advisor_agent-0.5.1/.github/workflows/release.yml +77 -0
  9. advisor_agent-0.5.1/.gitignore +12 -0
  10. advisor_agent-0.5.1/.hypothesis/.gitignore +9 -0
  11. advisor_agent-0.5.1/.hypothesis/constants/02df3b1f02d5f584 +4 -0
  12. advisor_agent-0.5.1/.hypothesis/constants/06076a4d7656dc3c +4 -0
  13. advisor_agent-0.5.1/.hypothesis/constants/063686655a894fc6 +4 -0
  14. advisor_agent-0.5.1/.hypothesis/constants/06b3700476df4603 +4 -0
  15. advisor_agent-0.5.1/.hypothesis/constants/0701d15237a0b096 +4 -0
  16. advisor_agent-0.5.1/.hypothesis/constants/0760a5e3fa9b2b62 +4 -0
  17. advisor_agent-0.5.1/.hypothesis/constants/085b239982333a24 +4 -0
  18. advisor_agent-0.5.1/.hypothesis/constants/0c2679aa6f5e35c1 +4 -0
  19. advisor_agent-0.5.1/.hypothesis/constants/0d1c1b2669c39f60 +4 -0
  20. advisor_agent-0.5.1/.hypothesis/constants/0dc34d4bc4d2fecc +4 -0
  21. advisor_agent-0.5.1/.hypothesis/constants/10c050cdc8c03d3f +4 -0
  22. advisor_agent-0.5.1/.hypothesis/constants/1145072e4da8b906 +4 -0
  23. advisor_agent-0.5.1/.hypothesis/constants/18e3c4298885073b +4 -0
  24. advisor_agent-0.5.1/.hypothesis/constants/1c1a649592eefab4 +4 -0
  25. advisor_agent-0.5.1/.hypothesis/constants/1c687ed11af4df8c +4 -0
  26. advisor_agent-0.5.1/.hypothesis/constants/1e27dc57d284f5b1 +4 -0
  27. advisor_agent-0.5.1/.hypothesis/constants/1e85c6b0d718922c +4 -0
  28. advisor_agent-0.5.1/.hypothesis/constants/286494617035f126 +4 -0
  29. advisor_agent-0.5.1/.hypothesis/constants/297ae4942a5204bf +4 -0
  30. advisor_agent-0.5.1/.hypothesis/constants/2f1af13a0e2833d6 +4 -0
  31. advisor_agent-0.5.1/.hypothesis/constants/2fe60a55377fcf4f +4 -0
  32. advisor_agent-0.5.1/.hypothesis/constants/30ec650fbf291447 +4 -0
  33. advisor_agent-0.5.1/.hypothesis/constants/3370c9075aa4daa4 +4 -0
  34. advisor_agent-0.5.1/.hypothesis/constants/3458afd5d3f4d142 +4 -0
  35. advisor_agent-0.5.1/.hypothesis/constants/3bf53518fcd29dbd +4 -0
  36. advisor_agent-0.5.1/.hypothesis/constants/3c6d9492d6557929 +4 -0
  37. advisor_agent-0.5.1/.hypothesis/constants/3eefd0d8c8519f8a +4 -0
  38. advisor_agent-0.5.1/.hypothesis/constants/3fd75112578e5055 +4 -0
  39. advisor_agent-0.5.1/.hypothesis/constants/441bae8a35705863 +4 -0
  40. advisor_agent-0.5.1/.hypothesis/constants/47025cdef4c4b511 +4 -0
  41. advisor_agent-0.5.1/.hypothesis/constants/4a13c6ca387e7054 +4 -0
  42. advisor_agent-0.5.1/.hypothesis/constants/4d9803c08095f682 +4 -0
  43. advisor_agent-0.5.1/.hypothesis/constants/4e88a9da7c97dab4 +4 -0
  44. advisor_agent-0.5.1/.hypothesis/constants/50322ba99d70985e +4 -0
  45. advisor_agent-0.5.1/.hypothesis/constants/50fd2723294b6a99 +4 -0
  46. advisor_agent-0.5.1/.hypothesis/constants/51e6f0ab19f3bf49 +4 -0
  47. advisor_agent-0.5.1/.hypothesis/constants/56e602a3b4185cfd +4 -0
  48. advisor_agent-0.5.1/.hypothesis/constants/5b58d8c397b4c7db +4 -0
  49. advisor_agent-0.5.1/.hypothesis/constants/61a08432791621b2 +4 -0
  50. advisor_agent-0.5.1/.hypothesis/constants/652a2b09307f2690 +4 -0
  51. advisor_agent-0.5.1/.hypothesis/constants/6603b4198548df1d +4 -0
  52. advisor_agent-0.5.1/.hypothesis/constants/681e06b0d7929aa0 +4 -0
  53. advisor_agent-0.5.1/.hypothesis/constants/7060134e0c48f565 +4 -0
  54. advisor_agent-0.5.1/.hypothesis/constants/73a5b83f672bd780 +4 -0
  55. advisor_agent-0.5.1/.hypothesis/constants/750a1b8e8e28b8c4 +4 -0
  56. advisor_agent-0.5.1/.hypothesis/constants/789a1b287f10d758 +4 -0
  57. advisor_agent-0.5.1/.hypothesis/constants/78d9735903207930 +4 -0
  58. advisor_agent-0.5.1/.hypothesis/constants/79a67a5a183f2259 +4 -0
  59. advisor_agent-0.5.1/.hypothesis/constants/7aaedd606b84c5a0 +4 -0
  60. advisor_agent-0.5.1/.hypothesis/constants/7ae077f87693a4d9 +4 -0
  61. advisor_agent-0.5.1/.hypothesis/constants/7de2ab5537c1188e +4 -0
  62. advisor_agent-0.5.1/.hypothesis/constants/7eaa073b09cb35af +4 -0
  63. advisor_agent-0.5.1/.hypothesis/constants/8103da59911f481e +4 -0
  64. advisor_agent-0.5.1/.hypothesis/constants/83daa98cd946c997 +4 -0
  65. advisor_agent-0.5.1/.hypothesis/constants/8461d43756ef403e +4 -0
  66. advisor_agent-0.5.1/.hypothesis/constants/873df6f76df3891c +4 -0
  67. advisor_agent-0.5.1/.hypothesis/constants/8a3da6a61a5e19c2 +4 -0
  68. advisor_agent-0.5.1/.hypothesis/constants/8bb1cd4bca0bd79a +4 -0
  69. advisor_agent-0.5.1/.hypothesis/constants/8c9ee977da6447de +4 -0
  70. advisor_agent-0.5.1/.hypothesis/constants/950d85a94ad5de4f +4 -0
  71. advisor_agent-0.5.1/.hypothesis/constants/96f1b0ebdcaafff4 +4 -0
  72. advisor_agent-0.5.1/.hypothesis/constants/98181f13fe854c7a +4 -0
  73. advisor_agent-0.5.1/.hypothesis/constants/9b176283850c5d6c +4 -0
  74. advisor_agent-0.5.1/.hypothesis/constants/9b97c82663afc596 +4 -0
  75. advisor_agent-0.5.1/.hypothesis/constants/9d7358978830ee55 +4 -0
  76. advisor_agent-0.5.1/.hypothesis/constants/9efafafa39428edf +4 -0
  77. advisor_agent-0.5.1/.hypothesis/constants/a1b06be05c6910ae +4 -0
  78. advisor_agent-0.5.1/.hypothesis/constants/a1c3624e24a837f5 +4 -0
  79. advisor_agent-0.5.1/.hypothesis/constants/a7b4e25136a01dc5 +4 -0
  80. advisor_agent-0.5.1/.hypothesis/constants/a87ee88109dea5d3 +4 -0
  81. advisor_agent-0.5.1/.hypothesis/constants/a989e306c2f3feab +4 -0
  82. advisor_agent-0.5.1/.hypothesis/constants/ae1cf3c7c5784c95 +4 -0
  83. advisor_agent-0.5.1/.hypothesis/constants/b098ee5f9580bd01 +4 -0
  84. advisor_agent-0.5.1/.hypothesis/constants/b437c5249ee4733a +4 -0
  85. advisor_agent-0.5.1/.hypothesis/constants/b50b92c04e054a7e +4 -0
  86. advisor_agent-0.5.1/.hypothesis/constants/b5a16050800d73ed +4 -0
  87. advisor_agent-0.5.1/.hypothesis/constants/b603bd677417ac46 +4 -0
  88. advisor_agent-0.5.1/.hypothesis/constants/b92719c3b19dc400 +4 -0
  89. advisor_agent-0.5.1/.hypothesis/constants/b9b3da0828c5d7c8 +4 -0
  90. advisor_agent-0.5.1/.hypothesis/constants/ba618e70bc2d8c64 +4 -0
  91. advisor_agent-0.5.1/.hypothesis/constants/bcbfdcc9ee6647c3 +4 -0
  92. advisor_agent-0.5.1/.hypothesis/constants/bf00e7889d63cc1e +4 -0
  93. advisor_agent-0.5.1/.hypothesis/constants/c4d332861b1baa46 +4 -0
  94. advisor_agent-0.5.1/.hypothesis/constants/c5af724d02a6d60f +4 -0
  95. advisor_agent-0.5.1/.hypothesis/constants/c689cd76b376991f +4 -0
  96. advisor_agent-0.5.1/.hypothesis/constants/c8d3e7050d191127 +4 -0
  97. advisor_agent-0.5.1/.hypothesis/constants/d0ffbb211d1b8def +4 -0
  98. advisor_agent-0.5.1/.hypothesis/constants/d31dcc53636a55bf +4 -0
  99. advisor_agent-0.5.1/.hypothesis/constants/d4a47d2e26d14537 +4 -0
  100. advisor_agent-0.5.1/.hypothesis/constants/d594d2ce497d8629 +4 -0
  101. advisor_agent-0.5.1/.hypothesis/constants/d5c33140087c259c +4 -0
  102. advisor_agent-0.5.1/.hypothesis/constants/d9d282772ceef9b5 +4 -0
  103. advisor_agent-0.5.1/.hypothesis/constants/db71665170566b29 +4 -0
  104. advisor_agent-0.5.1/.hypothesis/constants/df8ebeb008bcd2e3 +4 -0
  105. advisor_agent-0.5.1/.hypothesis/constants/e1c7930ee790f2f7 +4 -0
  106. advisor_agent-0.5.1/.hypothesis/constants/e3ac28e5b30ae3f9 +4 -0
  107. advisor_agent-0.5.1/.hypothesis/constants/ecb500dd5d2cafe3 +4 -0
  108. advisor_agent-0.5.1/.hypothesis/constants/efc98000c03c9fa9 +4 -0
  109. advisor_agent-0.5.1/.hypothesis/constants/f453778b978de124 +4 -0
  110. advisor_agent-0.5.1/.hypothesis/constants/f714bbc4a47cf118 +4 -0
  111. advisor_agent-0.5.1/.hypothesis/constants/fc7a1712e43c2de6 +4 -0
  112. advisor_agent-0.5.1/.hypothesis/constants/fddc731febb0748b +4 -0
  113. advisor_agent-0.5.1/.hypothesis/constants/ffbfcef8e39a26dc +4 -0
  114. advisor_agent-0.5.1/.hypothesis/unicode_data/16.0.0/charmap.json.gz +0 -0
  115. advisor_agent-0.5.1/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz +0 -0
  116. advisor_agent-0.5.1/.pre-commit-config.yaml +28 -0
  117. advisor_agent-0.5.1/.remember/.gitignore +1 -0
  118. advisor_agent-0.5.1/.remember/archive.md +2 -0
  119. advisor_agent-0.5.1/.remember/logs/autonomous/save-192144.log +0 -0
  120. advisor_agent-0.5.1/.remember/logs/autonomous/save-192150.log +0 -0
  121. advisor_agent-0.5.1/.remember/logs/autonomous/save-192206.log +0 -0
  122. advisor_agent-0.5.1/.remember/logs/autonomous/save-192221.log +0 -0
  123. advisor_agent-0.5.1/.remember/logs/autonomous/save-192240.log +0 -0
  124. advisor_agent-0.5.1/.remember/logs/autonomous/save-192246.log +0 -0
  125. advisor_agent-0.5.1/.remember/logs/autonomous/save-192252.log +0 -0
  126. advisor_agent-0.5.1/.remember/logs/autonomous/save-192257.log +0 -0
  127. advisor_agent-0.5.1/.remember/logs/autonomous/save-192302.log +0 -0
  128. advisor_agent-0.5.1/.remember/logs/autonomous/save-192309.log +0 -0
  129. advisor_agent-0.5.1/.remember/logs/autonomous/save-192326.log +0 -0
  130. advisor_agent-0.5.1/.remember/logs/autonomous/save-192334.log +0 -0
  131. advisor_agent-0.5.1/.remember/logs/autonomous/save-192343.log +0 -0
  132. advisor_agent-0.5.1/.remember/logs/autonomous/save-192351.log +0 -0
  133. advisor_agent-0.5.1/.remember/logs/autonomous/save-192357.log +0 -0
  134. advisor_agent-0.5.1/.remember/logs/autonomous/save-192406.log +0 -0
  135. advisor_agent-0.5.1/.remember/logs/autonomous/save-192415.log +0 -0
  136. advisor_agent-0.5.1/.remember/logs/autonomous/save-192421.log +0 -0
  137. advisor_agent-0.5.1/.remember/logs/autonomous/save-192427.log +0 -0
  138. advisor_agent-0.5.1/.remember/logs/autonomous/save-192436.log +0 -0
  139. advisor_agent-0.5.1/.remember/logs/autonomous/save-192503.log +0 -0
  140. advisor_agent-0.5.1/.remember/logs/autonomous/save-192504.log +0 -0
  141. advisor_agent-0.5.1/.remember/logs/autonomous/save-192511.log +0 -0
  142. advisor_agent-0.5.1/.remember/logs/autonomous/save-192519.log +0 -0
  143. advisor_agent-0.5.1/.remember/logs/autonomous/save-192549.log +0 -0
  144. advisor_agent-0.5.1/.remember/logs/autonomous/save-192557.log +0 -0
  145. advisor_agent-0.5.1/.remember/logs/autonomous/save-192611.log +0 -0
  146. advisor_agent-0.5.1/.remember/logs/autonomous/save-192732.log +0 -0
  147. advisor_agent-0.5.1/.remember/logs/hook-errors.log +0 -0
  148. advisor_agent-0.5.1/.remember/logs/memory-2026-04-22.log +3990 -0
  149. advisor_agent-0.5.1/.remember/logs/memory-2026-04-23.log +2058 -0
  150. advisor_agent-0.5.1/.remember/logs/memory-2026-04-24.log +566 -0
  151. advisor_agent-0.5.1/.remember/logs/memory-2026-04-25.log +327 -0
  152. advisor_agent-0.5.1/.remember/now.md +3 -0
  153. advisor_agent-0.5.1/.remember/recent.md +17 -0
  154. advisor_agent-0.5.1/.remember/tmp/last-ndc.ts +1 -0
  155. advisor_agent-0.5.1/.remember/tmp/last-save-ts +1 -0
  156. advisor_agent-0.5.1/.remember/tmp/last-save.json +1 -0
  157. advisor_agent-0.5.1/.remember/tmp/save-session.pid +1 -0
  158. advisor_agent-0.5.1/.remember/today-2026-04-22.done.md +29 -0
  159. advisor_agent-0.5.1/.remember/today-2026-04-23.done.md +18 -0
  160. advisor_agent-0.5.1/.remember/today-2026-04-24.done.md +5 -0
  161. advisor_agent-0.5.1/.remember/today-2026-04-25.md +13 -0
  162. advisor_agent-0.5.1/CHANGELOG.md +405 -0
  163. advisor_agent-0.5.1/CLAUDE.md +137 -0
  164. advisor_agent-0.5.1/CONTRIBUTING.md +108 -0
  165. advisor_agent-0.5.1/Makefile +81 -0
  166. advisor_agent-0.5.1/PKG-INFO +322 -0
  167. advisor_agent-0.5.1/README.md +286 -0
  168. advisor_agent-0.5.1/SECURITY.md +114 -0
  169. advisor_agent-0.5.1/advisor/__init__.py +293 -0
  170. advisor_agent-0.5.1/advisor/__main__.py +2543 -0
  171. advisor_agent-0.5.1/advisor/_fs.py +167 -0
  172. advisor_agent-0.5.1/advisor/_style.py +324 -0
  173. advisor_agent-0.5.1/advisor/audit.py +380 -0
  174. advisor_agent-0.5.1/advisor/baseline.py +250 -0
  175. advisor_agent-0.5.1/advisor/checkpoint.py +203 -0
  176. advisor_agent-0.5.1/advisor/cost.py +276 -0
  177. advisor_agent-0.5.1/advisor/doctor.py +254 -0
  178. advisor_agent-0.5.1/advisor/focus.py +264 -0
  179. advisor_agent-0.5.1/advisor/git_scope.py +177 -0
  180. advisor_agent-0.5.1/advisor/history.py +405 -0
  181. advisor_agent-0.5.1/advisor/install.py +470 -0
  182. advisor_agent-0.5.1/advisor/orchestrate/__init__.py +62 -0
  183. advisor_agent-0.5.1/advisor/orchestrate/_fence.py +29 -0
  184. advisor_agent-0.5.1/advisor/orchestrate/_prompts/__init__.py +6 -0
  185. advisor_agent-0.5.1/advisor/orchestrate/_prompts/advisor.txt +182 -0
  186. advisor_agent-0.5.1/advisor/orchestrate/_schema.py +10 -0
  187. advisor_agent-0.5.1/advisor/orchestrate/advisor_prompt.py +117 -0
  188. advisor_agent-0.5.1/advisor/orchestrate/config.py +244 -0
  189. advisor_agent-0.5.1/advisor/orchestrate/pipeline.py +71 -0
  190. advisor_agent-0.5.1/advisor/orchestrate/runner_prompts.py +658 -0
  191. advisor_agent-0.5.1/advisor/orchestrate/verify_dispatch.py +52 -0
  192. advisor_agent-0.5.1/advisor/pr_comment.py +130 -0
  193. advisor_agent-0.5.1/advisor/presets.py +146 -0
  194. advisor_agent-0.5.1/advisor/py.typed +0 -0
  195. advisor_agent-0.5.1/advisor/rank.py +826 -0
  196. advisor_agent-0.5.1/advisor/runner_budget.py +312 -0
  197. advisor_agent-0.5.1/advisor/sarif.py +254 -0
  198. advisor_agent-0.5.1/advisor/skill_asset.py +345 -0
  199. advisor_agent-0.5.1/advisor/suppressions.py +273 -0
  200. advisor_agent-0.5.1/advisor/verify.py +357 -0
  201. advisor_agent-0.5.1/advisor/web/__init__.py +18 -0
  202. advisor_agent-0.5.1/advisor/web/assets.py +716 -0
  203. advisor_agent-0.5.1/advisor/web/server.py +459 -0
  204. advisor_agent-0.5.1/docs/architecture.md +148 -0
  205. advisor_agent-0.5.1/docs/codebase_review.md +121 -0
  206. advisor_agent-0.5.1/docs/prompts.md +143 -0
  207. advisor_agent-0.5.1/pyproject.toml +117 -0
  208. advisor_agent-0.5.1/tests/__init__.py +0 -0
  209. advisor_agent-0.5.1/tests/conftest.py +53 -0
  210. advisor_agent-0.5.1/tests/test_audit.py +328 -0
  211. advisor_agent-0.5.1/tests/test_baseline.py +91 -0
  212. advisor_agent-0.5.1/tests/test_checkpoint.py +150 -0
  213. advisor_agent-0.5.1/tests/test_cost.py +198 -0
  214. advisor_agent-0.5.1/tests/test_doctor.py +70 -0
  215. advisor_agent-0.5.1/tests/test_fail_on.py +46 -0
  216. advisor_agent-0.5.1/tests/test_fence.py +71 -0
  217. advisor_agent-0.5.1/tests/test_focus.py +240 -0
  218. advisor_agent-0.5.1/tests/test_git_scope.py +65 -0
  219. advisor_agent-0.5.1/tests/test_history.py +117 -0
  220. advisor_agent-0.5.1/tests/test_history_ranking.py +272 -0
  221. advisor_agent-0.5.1/tests/test_install.py +502 -0
  222. advisor_agent-0.5.1/tests/test_main.py +1207 -0
  223. advisor_agent-0.5.1/tests/test_orchestrate.py +776 -0
  224. advisor_agent-0.5.1/tests/test_pr_comment.py +56 -0
  225. advisor_agent-0.5.1/tests/test_presets.py +137 -0
  226. advisor_agent-0.5.1/tests/test_public_api.py +41 -0
  227. advisor_agent-0.5.1/tests/test_rank.py +333 -0
  228. advisor_agent-0.5.1/tests/test_rank_php_superglobal_match.py +55 -0
  229. advisor_agent-0.5.1/tests/test_runner_budget.py +331 -0
  230. advisor_agent-0.5.1/tests/test_sarif.py +220 -0
  231. advisor_agent-0.5.1/tests/test_style.py +316 -0
  232. advisor_agent-0.5.1/tests/test_suppressions.py +192 -0
  233. advisor_agent-0.5.1/tests/test_verify.py +389 -0
  234. advisor_agent-0.5.1/tests/test_web.py +633 -0
  235. advisor_agent-0.5.1/uv.lock +687 -0
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: Bug report
3
+ about: Something doesn't work the way the docs say it should
4
+ labels: [bug]
5
+ ---
6
+
7
+ ## What happened
8
+
9
+ <!-- A clear, concise description of the bug. -->
10
+
11
+ ## What did you expect to happen?
12
+
13
+ <!-- e.g. "advisor plan should print the ranking" -->
14
+
15
+ ## Reproduction
16
+
17
+ ```bash
18
+ # paste the exact command(s)
19
+ advisor <subcommand> <args>
20
+ ```
21
+
22
+ ## Environment
23
+
24
+ - advisor version: `<output of advisor --version>`
25
+ - Python: `<output of python --version>`
26
+ - OS: macOS / Linux / Windows (specify distro/version)
27
+ - Terminal: (iTerm2 / Terminal.app / Windows Terminal / VS Code / etc.)
28
+
29
+ ## Relevant logs
30
+
31
+ <details>
32
+ <summary>Click to expand</summary>
33
+
34
+ ```
35
+ <paste stdout + stderr here>
36
+ ```
37
+
38
+ </details>
39
+
40
+ ## Have you checked?
41
+
42
+ - [ ] The bug is reproducible with `NO_COLOR=1` set (rules out an
43
+ ANSI-styling issue)
44
+ - [ ] The bug reproduces after `pip install -U advisor-agent`
45
+ - [ ] I searched existing issues for duplicates
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Security vulnerability
4
+ url: https://github.com/justinadams/advisor/security/advisories/new
5
+ about: Please report security issues privately via GitHub Security Advisories (see SECURITY.md).
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an enhancement or new capability
4
+ labels: [enhancement]
5
+ ---
6
+
7
+ ## Problem
8
+
9
+ <!-- What are you trying to do that's currently awkward or impossible? -->
10
+
11
+ ## Proposed solution
12
+
13
+ <!-- What would the ideal behavior look like? CLI flag? Python API?
14
+ New subcommand? Be concrete. -->
15
+
16
+ ## Alternatives considered
17
+
18
+ <!-- Other approaches you thought about, and why you prefer the proposal. -->
19
+
20
+ ## Additional context
21
+
22
+ <!-- Related issues, prior art in other tools, links to relevant docs. -->
@@ -0,0 +1,32 @@
1
+ version: 2
2
+ # Keep dev-tool pins fresh with weekly PRs. The runtime package itself has
3
+ # zero dependencies, so the surface area here is just GitHub Actions (for CI)
4
+ # and the Python dev extras. Grouped PRs reduce review noise.
5
+
6
+ updates:
7
+ - package-ecosystem: github-actions
8
+ directory: /
9
+ schedule:
10
+ interval: weekly
11
+ groups:
12
+ actions:
13
+ patterns:
14
+ - "*"
15
+
16
+ - package-ecosystem: pip
17
+ directory: /
18
+ schedule:
19
+ interval: weekly
20
+ groups:
21
+ dev-deps:
22
+ patterns:
23
+ - "pytest*"
24
+ - "ruff"
25
+ - "mypy"
26
+ - "hypothesis"
27
+ - "pre-commit"
28
+ - "shtab"
29
+ allow:
30
+ # Only care about optional-dependencies (`[dev]`, `[completion]`) —
31
+ # the core package has no runtime deps.
32
+ - dependency-type: direct
@@ -0,0 +1,32 @@
1
+ ## Summary
2
+
3
+ <!-- One or two sentences: what does this PR change, and why? -->
4
+
5
+ ## Changes
6
+
7
+ <!-- Bullet list of user-visible changes. Reference files with
8
+ `path/to/file.py:NN` where helpful. -->
9
+
10
+ -
11
+ -
12
+ -
13
+
14
+ ## Type of change
15
+
16
+ - [ ] Bug fix (non-breaking)
17
+ - [ ] New feature (non-breaking)
18
+ - [ ] Breaking change (bump major or pre-1.0 minor)
19
+ - [ ] Documentation / tooling only
20
+
21
+ ## Checklist
22
+
23
+ - [ ] `make check` passes locally (ruff + mypy + pytest)
24
+ - [ ] New code has tests (or a justification in the PR description)
25
+ - [ ] `CHANGELOG.md` has an `[Unreleased]` entry describing the change
26
+ - [ ] README / `docs/` updated if user-facing behavior changed
27
+ - [ ] No secrets, tokens, or private paths in the diff
28
+
29
+ ## Linked issues
30
+
31
+ <!-- e.g. "Fixes #123" or "Refs #456". If this is unprompted, explain
32
+ the motivation in Summary above. -->
@@ -0,0 +1,110 @@
1
+ name: Advisor Review
2
+
3
+ # Reusable workflow: `uses: vzwjustin/advisor/.github/workflows/advisor.yml@v0.5.0`
4
+ #
5
+ # Runs `advisor plan` on the caller's repo and uploads the resulting SARIF
6
+ # 2.1.0 document to GitHub Code Scanning. On pull_request events, scope is
7
+ # auto-narrowed to the diff against the base ref unless the caller passes
8
+ # `since:` explicitly.
9
+
10
+ on:
11
+ workflow_call:
12
+ inputs:
13
+ target:
14
+ type: string
15
+ default: "."
16
+ description: "Path to review (default: repo root)"
17
+ min-priority:
18
+ type: number
19
+ default: 3
20
+ description: "Minimum priority tier (1-5). Higher = more selective."
21
+ since:
22
+ type: string
23
+ default: ""
24
+ description: "Git ref to scope to changed files since (e.g. HEAD~5). Overrides auto PR-base inference."
25
+ fail-on:
26
+ type: string
27
+ default: "never"
28
+ description: "Exit non-zero if any finding at/above level (never|low|medium|high|critical)."
29
+ preset:
30
+ type: string
31
+ default: ""
32
+ description: "Rule-pack preset name (python-web|python-cli|node-api|typescript-react|go-service|rust-crate)."
33
+ post-pr-comment:
34
+ type: boolean
35
+ default: false
36
+ description: "On pull_request, post a summary PR comment (pr-comment format)."
37
+
38
+ permissions:
39
+ contents: read
40
+ security-events: write
41
+ pull-requests: write
42
+
43
+ jobs:
44
+ advisor:
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - uses: actions/checkout@v6
48
+ with:
49
+ fetch-depth: 0
50
+
51
+ - uses: actions/setup-python@v6
52
+ with:
53
+ python-version: "3.12"
54
+
55
+ - name: Install advisor
56
+ run: python -m pip install advisor-agent
57
+
58
+ - name: Run advisor plan
59
+ id: plan
60
+ run: |
61
+ SINCE_FLAG=""
62
+ if [ -n "${{ inputs.since }}" ]; then
63
+ SINCE_FLAG="--since ${{ inputs.since }}"
64
+ elif [ "${{ github.event_name }}" = "pull_request" ]; then
65
+ SINCE_FLAG="--since origin/${{ github.base_ref }}"
66
+ fi
67
+ PRESET_FLAG=""
68
+ if [ -n "${{ inputs.preset }}" ]; then
69
+ PRESET_FLAG="--preset ${{ inputs.preset }}"
70
+ fi
71
+ advisor plan "${{ inputs.target }}" \
72
+ $SINCE_FLAG $PRESET_FLAG \
73
+ --min-priority ${{ inputs.min-priority }} \
74
+ --fail-on "${{ inputs.fail-on }}" \
75
+ --sarif advisor.sarif
76
+
77
+ - name: Upload SARIF
78
+ if: always()
79
+ uses: github/codeql-action/upload-sarif@v3
80
+ with:
81
+ sarif_file: advisor.sarif
82
+ category: advisor
83
+
84
+ - name: Post PR comment
85
+ if: ${{ always() && inputs.post-pr-comment && github.event_name == 'pull_request' }}
86
+ uses: actions/github-script@v7
87
+ with:
88
+ script: |
89
+ const fs = require('fs');
90
+ const path = 'advisor.sarif';
91
+ if (!fs.existsSync(path)) return;
92
+ const doc = JSON.parse(fs.readFileSync(path, 'utf8'));
93
+ const results = (doc.runs && doc.runs[0] && doc.runs[0].results) || [];
94
+ if (results.length === 0) return;
95
+ const counts = { error: 0, warning: 0, note: 0 };
96
+ for (const r of results) counts[r.level] = (counts[r.level] || 0) + 1;
97
+ const body = [
98
+ '## Advisor review',
99
+ '',
100
+ `Findings: **${results.length}** ` +
101
+ `(error: ${counts.error}, warning: ${counts.warning}, note: ${counts.note})`,
102
+ '',
103
+ '_See Code Scanning for full detail._',
104
+ ].join('\n');
105
+ await github.rest.issues.createComment({
106
+ owner: context.repo.owner,
107
+ repo: context.repo.repo,
108
+ issue_number: context.issue.number,
109
+ body,
110
+ });
@@ -0,0 +1,57 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ name: test (${{ matrix.os }} / py${{ matrix.python-version }})
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ os: [ubuntu-latest, macos-latest, windows-latest]
17
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
18
+ steps:
19
+ - uses: actions/checkout@v6
20
+
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v6
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+
26
+ - name: Install package + dev extras
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ python -m pip install -e ".[dev]"
30
+
31
+ - name: Run tests with coverage
32
+ run: python -m pytest tests/ --cov=advisor --cov-report=term-missing
33
+
34
+ lint:
35
+ name: lint + typecheck
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v6
39
+
40
+ - name: Set up Python
41
+ uses: actions/setup-python@v6
42
+ with:
43
+ python-version: "3.12"
44
+
45
+ - name: Install package + dev extras
46
+ run: |
47
+ python -m pip install --upgrade pip
48
+ python -m pip install -e ".[dev,completion]"
49
+
50
+ - name: Ruff (lint)
51
+ run: python -m ruff check advisor tests
52
+
53
+ - name: Ruff (format check)
54
+ run: python -m ruff format --check advisor tests
55
+
56
+ - name: Mypy
57
+ run: python -m mypy advisor/
@@ -0,0 +1,77 @@
1
+ name: Release
2
+
3
+ # Tag-triggered validation. Push a tag matching `v<semver>` (e.g. `v0.5.0`)
4
+ # and this workflow will:
5
+ # 1. Verify the tag matches `pyproject.toml` `version`
6
+ # 2. Run the full test suite on the tagged commit
7
+ # 3. Build sdist + wheel with `python -m build`
8
+
9
+ on:
10
+ push:
11
+ tags: ["v*"]
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ verify:
18
+ name: Verify tag matches pyproject version
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+
23
+ - name: Check tag vs. pyproject.toml
24
+ run: |
25
+ tag="${GITHUB_REF#refs/tags/v}"
26
+ pyproject_version=$(
27
+ python -c "import tomllib,sys; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])"
28
+ )
29
+ if [ "$tag" != "$pyproject_version" ]; then
30
+ echo "::error::tag $tag does not match pyproject version $pyproject_version"
31
+ exit 1
32
+ fi
33
+ echo "tag matches pyproject version: $tag"
34
+
35
+ test:
36
+ name: Full test suite on tagged commit
37
+ needs: verify
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v6
41
+
42
+ - name: Set up Python
43
+ uses: actions/setup-python@v6
44
+ with:
45
+ python-version: "3.12"
46
+
47
+ - name: Install + test
48
+ run: |
49
+ python -m pip install --upgrade pip
50
+ python -m pip install -e ".[dev]"
51
+ python -m pytest tests/ -q
52
+
53
+ build:
54
+ name: Build sdist + wheel
55
+ needs: test
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - uses: actions/checkout@v6
59
+
60
+ - name: Set up Python
61
+ uses: actions/setup-python@v6
62
+ with:
63
+ python-version: "3.12"
64
+
65
+ - name: Install build tool
66
+ run: |
67
+ python -m pip install --upgrade pip
68
+ python -m pip install build
69
+
70
+ - name: Build distributions
71
+ run: python -m build
72
+
73
+ - name: Upload dist artifacts
74
+ uses: actions/upload-artifact@v7
75
+ with:
76
+ name: dist
77
+ path: dist/
@@ -0,0 +1,12 @@
1
+ .venv/
2
+ .pytest_cache/
3
+ .vexp/
4
+ __pycache__/
5
+ *.pyc
6
+ .DS_Store
7
+ *.egg-info/
8
+ dist/
9
+ build/
10
+ .coverage
11
+ .advisor/
12
+ .claude/
@@ -0,0 +1,9 @@
1
+ # This .gitignore file was automatically created by Hypothesis. Hypothesis gitignores
2
+ # .hypothesis by default, because we generally recommend that .hypothesis not be checked
3
+ # into version control.
4
+ #
5
+ # If you *would* like to check .hypothesis into version control, you should delete this
6
+ # file. Hypothesis will not re-create this .gitignore unless .hypothesis is deleted (and
7
+ # if it does, that's a bug - please report it!)
8
+
9
+ *
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/suppressions.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['#', '**', '/', '1.0', 'ADVISOR', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '^\\d{4}-\\d{2}-\\d{2}$', 'file', 'file_glob', 'reason', 'rule_id', 'schema_version', 'until', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/web/server.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [15.0, 100, 200, 1000, 8765, 65535, '\x00', '*.py', ',', '..', '/', '/api/cost', '/api/history', '/api/plan', '/api/status', '/api/target', '/index.html', '/static/app.css', '/static/app.js', '127.0.0.1', '; charset=utf-8', 'Cache-Control', 'Content-Length', 'Content-Type', '\\', 'advisor_model', 'count', 'defaults', 'description', 'entries', 'error', 'estimate', 'file_path', 'file_types', 'is_active', 'last_mtime', 'limit', 'max_fixes_per_runner', 'min_priority', 'no-store', 'nosniff', 'open in browser', 'opus', 'press Ctrl-C to stop', 'priority', 'run_id', 'runner_model', 'schema_version', 'severity', 'shutting down', 'sonnet', 'status', 'target', 'task_count', 'tasks', 'text/css', 'text/html', 'timestamp', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/sarif.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [120, '$schema', '%SRCROOT%', '..', '/', '1.0', '2.1.0', ':', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '_', '`', 'advisor', 'advisor finding', 'artifactLocation', 'defaultConfiguration', 'driver', 'error', 'evidence', 'fix', 'fullDescription', 'help', 'id', 'informationUri', 'level', 'locations', 'message', 'name', 'note', 'originalUriBaseIds', 'physicalLocation', 'properties', 'region', 'results', 'ruleId', 'ruleIndex', 'rules', 'runs', 'severity', 'shortDescription', 'startLine', 'text', 'tool', 'uri', 'uriBaseId', 'utf-8', 'version', 'warning', '…']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/orchestrate/config.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [800, 80000, '*.py', 'ADVISOR_FILE_TYPES', 'ADVISOR_MAX_RUNNERS', 'ADVISOR_MIN_PRIORITY', 'ADVISOR_MODEL', 'ADVISOR_RUNNER_MODEL', 'ADVISOR_TEST_COMMAND', 'advisor_model', 'haiku', 'haiku-4', 'haiku-4-5', 'opus', 'opus-4', 'opus-4-5', 'review', 'runner_model', 'sonnet', 'sonnet-4', 'sonnet-4-5']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/__main__.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [0.0, 1.0, 90.0, 500, 800, 1024, 3600, 8765, 65535, 86400, '\x1b[2K\r', ' (expired)', '!', '#', '## Baseline diff', '### New', '*', '*.py', ',', ', ', '-', '--advisor-model', '--baseline', '--batch-size', '--branch', '--check', '--checkpoint', '--clear', '--context', '--estimate', '--exclude', '--expired', '--fail-on', '--file-count', '--file-types', '--format', '--from', '--host', '--json', '--limit', '--list', '--max-runners', '--min-priority', '--no-color', '--no-history', '--output', '--path', '--port', '--preset', '--pricing', '--print-completion', '--quiet', '--resume', '--rm', '--runner-id', '--runner-model', '--sarif', '--since', '--skill-path', '--skip-skill', '--staged', '--strict', '--team', '--test-cmd', '--transcript', '--verbose', '--version', '.', '.advisor', '.advisor/', '.advisor/*', '.advisor/**', '.advisor/**/*', '.gitignore', '/.advisor', '/.advisor/', '/.advisor/**', '/advisor <path>', '1', '1.0', '127.0.0.1', '?', 'ADVISOR_MAX_RUNNERS', 'BASE', 'CMD', 'CRITICAL', 'Extra goal context', 'FILE', 'HIGH', 'LOW', 'MEDIUM', 'NAME', 'NO_COLOR', 'PATH', 'PATTERN', 'REF', 'RUN_ID', 'Suppress CTA line', 'Team name', '[', '__main__', 'action', 'advisor', 'advisor install', 'advisor pipeline .', 'advisor protocol', 'advisor-agent', 'advisor_version', 'append', 'audit', 'baseline', 'baseline.jsonl', 'baseline_path', 'bash', 'batch_id', 'batches', 'bold', 'branch', 'budget_warnings', 'checkpoint', 'checkpoints', 'clear', 'command', 'complexity', 'count', 'create', 'create or diff', 'critical', 'current', 'cyan', 'description', 'diff', 'docs', 'doctor', 'entries', 'estimate', 'evidence', 'exclude', 'expired', 'expired suppressions', 'fail_on', 'file', 'file_glob', 'file_path', 'file_types', 'finding', 'findings', 'findings_in_batch', 'fix', 'fixed', 'format', 'from_file', 'healthy', 'high', 'history', 'install', 'install_path', 'installed', 'installed_version', 'json', 'just now', 'large_file_max_fixes', 'low', 'max_fixes_per_runner', 'medium', 'min_priority', 'missing', 'name', 'never', 'new', 'next', 'no_color', 'no_history', 'notes', 'nudge', 'ok', 'opt_out', 'opus', 'outdated', 'output', 'path', 'persisting_count', 'pipeline', 'plan', 'platform', 'pr-comment', 'present', 'preset', 'presets', 'pretty', 'pricing', 'priority', 'prompt', 'protocol', 'python', 'python_version', 'quiet', 'r', 'reason', 'replace', 'resume', 'resumed', 'review', 'rm', 'rule_id', 'run', 'run_id', 'run_ids', 'runner', 'runner_id', 'sarif', 'schema', 'schema_version', 'severity', 'since', 'skill', 'sonnet', 'staged', 'status', 'step', 'store_true', 'strict', 'suppressions', 'suppressions.jsonl', 'target', 'task_count', 'tasks', 'tcsh', 'test_cmd', 'test_command', 'text', 'timestamp', 'to_dict', 'top_priority', 'ui', 'uninstall', 'until', 'url', 'use', 'utf-8', 'verify', 'version', 'yellow', 'zsh', '{', '⚠']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/pr_comment.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [100, 60000, '## Advisor review', '### Details', "'''", '(no description)', '**Evidence:**', '</details>', '<details>', '<\u200b/details>', '<\u200bdetails>', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '\\|', '`', '```', '|', '| --- | ---: |', '| Severity | Count |', '‘']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/web/server.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [0.0, 15.0, 100, 200, 1000, 8765, 65535, '\x00', '*.py', ',', '..', '/', '/api/cost', '/api/history', '/api/plan', '/api/status', '/api/target', '/index.html', '/static/app.css', '/static/app.js', '127.0.0.1', '; charset=utf-8', 'Cache-Control', 'Content-Length', 'Content-Type', '\\', 'advisor_model', 'count', 'defaults', 'description', 'entries', 'error', 'estimate', 'file_path', 'file_types', 'is_active', 'last_mtime', 'limit', 'max_fixes_per_runner', 'min_priority', 'no-store', 'nosniff', 'open in browser', 'opus', 'press Ctrl-C to stop', 'priority', 'run_id', 'runner_model', 'schema_version', 'severity', 'shutting down', 'sonnet', 'status', 'target', 'task_count', 'tasks', 'text/css', 'text/html', 'timestamp', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/suppressions.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['#', '$', '(?:.*/)?', '*', '**', '.*', '/', '1.0', '?', 'ADVISOR', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '[^/]', '[^/]*', '^', '^\\d{4}-\\d{2}-\\d{2}$', 'file', 'file_glob', 'reason', 'rule_id', 'schema_version', 'until', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/sarif.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [120, '$schema', '%SRCROOT%', '..', '/', '1.0', '2.1.0', ':', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '_', '`', 'advisor', 'advisor finding', 'artifactLocation', 'defaultConfiguration', 'driver', 'error', 'evidence', 'fix', 'fullDescription', 'help', 'id', 'informationUri', 'level', 'locations', 'message', 'name', 'note', 'originalUriBaseIds', 'physicalLocation', 'properties', 'region', 'results', 'ruleId', 'ruleIndex', 'rules', 'runs', 'severity', 'shortDescription', 'startLine', 'text', 'tool', 'uri', 'uriBaseId', 'utf-8', 'version', 'warning', '…']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/orchestrate/pipeline.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/orchestrate/config.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [800, 80000, '*.py', 'ADVISOR_FILE_TYPES', 'ADVISOR_MAX_RUNNERS', 'ADVISOR_MIN_PRIORITY', 'ADVISOR_MODEL', 'ADVISOR_RUNNER_MODEL', 'ADVISOR_TEST_COMMAND', 'advisor_model', 'haiku', 'haiku-4', 'haiku-4-5', 'opus', 'opus-4', 'opus-4-5', 'review', 'runner_model', 'sonnet', 'sonnet-4', 'sonnet-4-5']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/__main__.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [0.0, 1.0, 90.0, 500, 800, 3600, 8765, 65535, 86400, '\x1b[2K\r', ' (expired)', '!', '#', '## Baseline diff', '### New', '*', '*.py', ',', ', ', '-', '--advisor-model', '--baseline', '--batch-size', '--branch', '--check', '--checkpoint', '--clear', '--context', '--estimate', '--exclude', '--expired', '--fail-on', '--file-count', '--file-types', '--format', '--from', '--host', '--json', '--limit', '--list', '--max-runners', '--min-priority', '--no-color', '--no-history', '--output', '--path', '--port', '--preset', '--pricing', '--print-completion', '--quiet', '--resume', '--rm', '--runner-id', '--runner-model', '--sarif', '--since', '--skill-path', '--skip-skill', '--staged', '--strict', '--team', '--test-cmd', '--transcript', '--verbose', '--version', '.', '.advisor', '.advisor/', '.advisor/*', '.advisor/**', '.advisor/**/*', '.gitignore', '/.advisor', '/.advisor/', '/.advisor/**', '/advisor <path>', '1', '1.0', '127.0.0.1', '?', 'ADVISOR_MAX_RUNNERS', 'BASE', 'CMD', 'CRITICAL', 'Extra goal context', 'FILE', 'HIGH', 'LOW', 'MEDIUM', 'NAME', 'NO_COLOR', 'PATH', 'PATTERN', 'REF', 'RUN_ID', 'Suppress CTA line', 'Team name', '[', '__main__', 'action', 'advisor', 'advisor install', 'advisor pipeline .', 'advisor protocol', 'advisor-agent', 'advisor_version', 'append', 'audit', 'baseline', 'baseline.jsonl', 'baseline_path', 'bash', 'batch_id', 'batches', 'bold', 'branch', 'budget_warnings', 'checkpoint', 'checkpoints', 'clear', 'command', 'complexity', 'count', 'create', 'create or diff', 'critical', 'current', 'cyan', 'description', 'diff', 'docs', 'doctor', 'entries', 'estimate', 'evidence', 'exclude', 'expired', 'expired suppressions', 'fail_on', 'file', 'file_glob', 'file_path', 'file_types', 'finding', 'findings', 'findings_in_batch', 'fix', 'fixed', 'format', 'from_file', 'healthy', 'high', 'history', 'install', 'install_path', 'installed', 'installed_version', 'json', 'just now', 'large_file_max_fixes', 'low', 'max_fixes_per_runner', 'medium', 'min_priority', 'missing', 'name', 'never', 'new', 'next', 'no_color', 'no_history', 'notes', 'nudge', 'ok', 'opt_out', 'opus', 'outdated', 'output', 'path', 'persisting_count', 'pipeline', 'plan', 'platform', 'pr-comment', 'present', 'preset', 'presets', 'pretty', 'pricing', 'priority', 'prompt', 'protocol', 'python', 'python_version', 'quiet', 'r', 'reason', 'replace', 'resume', 'resumed', 'review', 'rm', 'rule_id', 'run', 'run_id', 'run_ids', 'runner', 'runner_id', 'sarif', 'schema', 'schema_version', 'severity', 'since', 'skill', 'sonnet', 'staged', 'status', 'step', 'store_true', 'strict', 'suppressions', 'suppressions.jsonl', 'target', 'task_count', 'tasks', 'tcsh', 'test_cmd', 'test_command', 'text', 'timestamp', 'to_dict', 'top_priority', 'ui', 'uninstall', 'until', 'url', 'use', 'utf-8', 'verify', 'version', 'yellow', 'zsh', '{', '⚠']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/web/assets.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/skill_asset.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['0+unknown', '__VERSION_BADGE__', 'advisor-agent']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/skill_asset.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['0+unknown', '__VERSION_BADGE__', 'advisor-agent']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/audit.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [500, 1000, '## Cap overruns', '- (none)', 'CONTEXT_PRESSURE', 'batch_file_count', 'cap_overruns', 'caps', 'context_pressure', 'description', 'evidence', 'file_path', 'findings_in_batch', 'fix', 'fix_counts', 'fix_numbers', 'large_file_max_fixes', 'max_fixes_per_runner', 'protocol_violations', 'rotations', 'run_id', 'runner-(\\d+)', 'runner-?', 'runners', 'severity', 'tasks', 'total_count']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/web/assets.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ []
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/doctor.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['\x1b[2K\r', '.claude', '1', 'ADVISOR_FILE_TYPES', 'ADVISOR_MAX_RUNNERS', 'ADVISOR_MIN_PRIORITY', 'ADVISOR_MODEL', 'ADVISOR_QUIET', 'ADVISOR_RUNNER_MODEL', 'ADVISOR_TEST_COMMAND', 'advisor_version', 'bold', 'checks', 'claude', 'claude-cli', 'claude-home', 'cyan', 'dev', 'env_overrides', 'fail', 'git', 'green', 'healthy', 'ok', 'opt-out', 'platform', 'python', 'python_version', 'red', 'running checks…', 'skill', 'warn']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/orchestrate/_fence.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['`']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/suppressions.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ ['#', '**', '/', '1.0', 'ADVISOR', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '^\\d{4}-\\d{2}-\\d{2}$', 'file', 'file_glob', 'reason', 'rule_id', 'schema_version', 'until', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/__main__.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [0.0, 1.0, 90.0, 500, 800, 3600, 8765, 65535, 86400, '\x1b[2K\r', ' (expired)', '!', '#', '## Baseline diff', '### New', '*', '*.py', ',', ', ', '-', '--advisor-model', '--baseline', '--batch-size', '--branch', '--check', '--checkpoint', '--clear', '--context', '--estimate', '--exclude', '--expired', '--fail-on', '--file-count', '--file-types', '--format', '--from', '--host', '--json', '--limit', '--list', '--max-runners', '--min-priority', '--no-color', '--no-history', '--output', '--path', '--port', '--preset', '--pricing', '--print-completion', '--quiet', '--resume', '--rm', '--runner-id', '--runner-model', '--sarif', '--since', '--skill-path', '--skip-skill', '--staged', '--strict', '--team', '--test-cmd', '--transcript', '--verbose', '--version', '.', '.advisor', '.advisor/', '.advisor/*', '.advisor/**', '.advisor/**/*', '.gitignore', '/.advisor', '/.advisor/', '/.advisor/**', '/advisor <path>', '1', '1.0', '127.0.0.1', '?', 'ADVISOR_MAX_RUNNERS', 'BASE', 'CMD', 'CRITICAL', 'Extra goal context', 'FILE', 'HIGH', 'LOW', 'MEDIUM', 'NAME', 'NO_COLOR', 'PATH', 'PATTERN', 'REF', 'RUN_ID', 'Suppress CTA line', 'Team name', '[', '__main__', 'action', 'advisor', 'advisor install', 'advisor pipeline .', 'advisor protocol', 'advisor-agent', 'advisor_version', 'append', 'audit', 'baseline', 'baseline.jsonl', 'baseline_path', 'bash', 'batch_id', 'batches', 'bold', 'branch', 'budget_warnings', 'checkpoint', 'checkpoints', 'clear', 'command', 'complexity', 'count', 'create', 'create or diff', 'critical', 'current', 'cyan', 'description', 'diff', 'docs', 'doctor', 'entries', 'estimate', 'evidence', 'exclude', 'expired', 'expired suppressions', 'fail_on', 'file', 'file_glob', 'file_path', 'file_types', 'finding', 'findings', 'findings_in_batch', 'fix', 'fixed', 'format', 'from_file', 'healthy', 'high', 'history', 'install', 'install_path', 'installed', 'installed_version', 'json', 'just now', 'large_file_max_fixes', 'low', 'max_fixes_per_runner', 'medium', 'min_priority', 'missing', 'name', 'never', 'new', 'next', 'no_color', 'no_history', 'notes', 'nudge', 'ok', 'opt_out', 'opus', 'outdated', 'output', 'path', 'persisting_count', 'pipeline', 'plan', 'platform', 'pr-comment', 'present', 'preset', 'presets', 'pretty', 'pricing', 'priority', 'prompt', 'protocol', 'python', 'python_version', 'quiet', 'r', 'reason', 'replace', 'resume', 'resumed', 'review', 'rm', 'rule_id', 'run', 'run_id', 'run_ids', 'runner', 'runner_id', 'sarif', 'schema', 'schema_version', 'severity', 'since', 'skill', 'sonnet', 'staged', 'status', 'step', 'store_true', 'strict', 'suppressions', 'suppressions.jsonl', 'target', 'task_count', 'tasks', 'tcsh', 'test_cmd', 'test_command', 'text', 'timestamp', 'to_dict', 'top_priority', 'ui', 'uninstall', 'until', 'url', 'use', 'utf-8', 'verify', 'version', 'yellow', 'zsh', '{', '⚠']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/audit.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [500, '## Cap overruns', '- (none)', 'CONTEXT_PRESSURE', 'batch_file_count', 'cap_overruns', 'caps', 'context_pressure', 'description', 'evidence', 'file_path', 'findings_in_batch', 'fix', 'fix_counts', 'fix_numbers', 'large_file_max_fixes', 'max_fixes_per_runner', 'protocol_violations', 'rotations', 'run_id', 'runner-(\\d+)', 'runner-?', 'runners', 'severity', 'tasks', 'total_count']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/baseline.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [120, '1.0', '__advisor_baseline__', 'count', 'description', 'description_hash', 'file_path', 'rule_id', 'schema_version', 'severity', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/cost.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [3.5, 100, 200, 300, 400, 500, 600, 800, 1500, 2000, 4500, 7500, 1000000, 'advisor_model', 'cost_usd_max', 'cost_usd_min', 'file_count', 'haiku', 'input', 'input_tokens_max', 'input_tokens_min', 'opus', 'output', 'output_tokens_max', 'output_tokens_min', 'runner_count', 'runner_model', 'sonnet', 'utf-8']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/audit.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [500, 1000, '## Cap overruns', '- (none)', 'CONTEXT_PRESSURE', 'batch_file_count', 'cap_overruns', 'caps', 'context_pressure', 'description', 'evidence', 'file_path', 'findings_in_batch', 'fix', 'fix_counts', 'fix_numbers', 'large_file_max_fixes', 'max_fixes_per_runner', 'protocol_violations', 'rotations', 'run_id', 'runner', 'runner-(\\d+)', 'runner-?', 'runners', 'severity', 'tasks', 'total_count']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/sarif.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [120, '$schema', '%SRCROOT%', '..', '/', '1.0', '2.1.0', ':', 'CRITICAL', 'HIGH', 'LOW', 'MEDIUM', '_', '`', 'advisor', 'advisor finding', 'artifactLocation', 'defaultConfiguration', 'driver', 'error', 'evidence', 'fix', 'fullDescription', 'help', 'id', 'informationUri', 'level', 'locations', 'message', 'name', 'note', 'originalUriBaseIds', 'physicalLocation', 'properties', 'region', 'results', 'ruleId', 'ruleIndex', 'rules', 'runs', 'severity', 'shortDescription', 'startLine', 'text', 'tool', 'uri', 'uriBaseId', 'utf-8', 'version', 'warning', '…']
@@ -0,0 +1,4 @@
1
+ # file: /Users/justinadams/Downloads/advisor/advisor/orchestrate/runner_prompts.py
2
+ # hypothesis_version: 6.152.1
3
+
4
+ [')', '- (none yet)', '- (none)', 'cap', 'code-review', 'description', 'empty', 'large-file cap', 'max_fixes_per_runner', 'medium', 'message', 'model', 'name', 'prompt', 'run_in_background', 'subagent_type', 'team_name', 'to']