qaas-python 0.3.1__tar.gz → 0.3.2__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 (166) hide show
  1. {qaas_python-0.3.1 → qaas_python-0.3.2}/PKG-INFO +18 -22
  2. {qaas_python-0.3.1 → qaas_python-0.3.2}/README.md +17 -21
  3. {qaas_python-0.3.1 → qaas_python-0.3.2}/pyproject.toml +1 -1
  4. {qaas_python-0.3.1 → qaas_python-0.3.2}/.gitignore +0 -0
  5. {qaas_python-0.3.1 → qaas_python-0.3.2}/ARCHITECTURE.md +0 -0
  6. {qaas_python-0.3.1 → qaas_python-0.3.2}/BUILD_PLAN.md +0 -0
  7. {qaas_python-0.3.1 → qaas_python-0.3.2}/CLAUDE.md +0 -0
  8. {qaas_python-0.3.1 → qaas_python-0.3.2}/LICENSE +0 -0
  9. {qaas_python-0.3.1 → qaas_python-0.3.2}/config/targets/corvid.yaml +0 -0
  10. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/adapters/__init__.py +0 -0
  11. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/adapters/tracker.py +0 -0
  12. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/adapters/vcs.py +0 -0
  13. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/cli.py +0 -0
  14. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/conductor.py +0 -0
  15. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/config.py +0 -0
  16. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/arbiter.yaml +0 -0
  17. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/cartographer.yaml +0 -0
  18. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/chronicle.yaml +0 -0
  19. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/clerk.yaml +0 -0
  20. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/conduit.yaml +0 -0
  21. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/forge.yaml +0 -0
  22. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/gauge.yaml +0 -0
  23. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/keystone.yaml +0 -0
  24. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/mender.yaml +0 -0
  25. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/proof.yaml +0 -0
  26. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/pulse.yaml +0 -0
  27. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/surface.yaml +0 -0
  28. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/usher.yaml +0 -0
  29. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/vault.yaml +0 -0
  30. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/agents/warden.yaml +0 -0
  31. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/defaults/config/system.yaml +0 -0
  32. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/discover.py +0 -0
  33. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/envelope.py +0 -0
  34. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/guardrails.py +0 -0
  35. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/__init__.py +0 -0
  36. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/context.py +0 -0
  37. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/contract_diff.py +0 -0
  38. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/defect_memory.py +0 -0
  39. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/env_control.py +0 -0
  40. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/envelope_server.py +0 -0
  41. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/test_runner.py +0 -0
  42. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/tracker.py +0 -0
  43. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/mcp/vcs.py +0 -0
  44. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/paths.py +0 -0
  45. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/.claude-plugin/plugin.json +0 -0
  46. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/a11y-audit/SKILL.md +0 -0
  47. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/adversarial-review/SKILL.md +0 -0
  48. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/api-surface-extraction/SKILL.md +0 -0
  49. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/authz-matrix-check/SKILL.md +0 -0
  50. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/console-error-triage/SKILL.md +0 -0
  51. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/contract-test-generation/SKILL.md +0 -0
  52. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/dedupe-strategy/SKILL.md +0 -0
  53. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/environment-pinning/SKILL.md +0 -0
  54. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/error-taxonomy/SKILL.md +0 -0
  55. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/exploratory-ui-walk/SKILL.md +0 -0
  56. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/failing-test-authoring/SKILL.md +0 -0
  57. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/flake-detection/SKILL.md +0 -0
  58. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/form-state-probe/SKILL.md +0 -0
  59. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/minimal-diff-discipline/SKILL.md +0 -0
  60. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/openapi-diff/SKILL.md +0 -0
  61. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/ownership-resolution/SKILL.md +0 -0
  62. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/product-task-graph/SKILL.md +0 -0
  63. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/regression-risk-scoring/SKILL.md +0 -0
  64. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/regression-suite-selection/SKILL.md +0 -0
  65. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/repo-cartography/SKILL.md +0 -0
  66. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/repro-minimisation/SKILL.md +0 -0
  67. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/rollback-plan-authoring/SKILL.md +0 -0
  68. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/root-cause-vs-symptom/SKILL.md +0 -0
  69. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/routing-rules/SKILL.md +0 -0
  70. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/severity-rubric/SKILL.md +0 -0
  71. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/test-first-fix/SKILL.md +0 -0
  72. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/test-quality-audit/SKILL.md +0 -0
  73. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/ticket-writer/SKILL.md +0 -0
  74. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/verdict-reporting/SKILL.md +0 -0
  75. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/plugin/skills/verification-protocol/SKILL.md +0 -0
  76. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/ARBITER.md +0 -0
  77. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/CARTOGRAPHER.md +0 -0
  78. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/CHRONICLE.md +0 -0
  79. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/CLERK.md +0 -0
  80. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/CONDUIT.md +0 -0
  81. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/FORGE.md +0 -0
  82. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/GAUGE.md +0 -0
  83. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/KEYSTONE.md +0 -0
  84. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/MENDER.md +0 -0
  85. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/PROOF.md +0 -0
  86. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/PULSE.md +0 -0
  87. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/SURFACE.md +0 -0
  88. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/USHER.md +0 -0
  89. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/VAULT.md +0 -0
  90. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/WARDEN.md +0 -0
  91. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/prompts/_shared.md +0 -0
  92. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/registry.py +0 -0
  93. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/runner.py +0 -0
  94. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/scorecard.py +0 -0
  95. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/sdk_compat.py +0 -0
  96. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/store.py +0 -0
  97. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/target.py +0 -0
  98. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/tasks.py +0 -0
  99. {qaas_python-0.3.1 → qaas_python-0.3.2}/src/qaas/trace.py +0 -0
  100. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/CODEOWNERS +0 -0
  101. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/Dockerfile +0 -0
  102. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/__init__.py +0 -0
  103. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/auth.py +0 -0
  104. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/config.py +0 -0
  105. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/db.py +0 -0
  106. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/errors.py +0 -0
  107. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/main.py +0 -0
  108. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/models.py +0 -0
  109. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/routes/__init__.py +0 -0
  110. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/routes/auth.py +0 -0
  111. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/routes/invoices.py +0 -0
  112. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/routes/orders.py +0 -0
  113. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/routes/stream.py +0 -0
  114. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/app/schemas.py +0 -0
  115. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/migrations/001_init.sql +0 -0
  116. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/pyproject.toml +0 -0
  117. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/api/seed/fixtures.sql +0 -0
  118. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/defects.yaml +0 -0
  119. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/docker-compose.yml +0 -0
  120. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/openapi.yaml +0 -0
  121. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/.gitignore +0 -0
  122. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/Dockerfile +0 -0
  123. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/index.html +0 -0
  124. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/package-lock.json +0 -0
  125. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/package.json +0 -0
  126. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/api.ts +0 -0
  127. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/components/Button.tsx +0 -0
  128. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/components/Layout.tsx +0 -0
  129. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/components/SearchInput.tsx +0 -0
  130. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/main.tsx +0 -0
  131. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/routes/CheckoutReview.tsx +0 -0
  132. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/routes/Login.tsx +0 -0
  133. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/routes/NewOrder.tsx +0 -0
  134. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/routes/OrderDetail.tsx +0 -0
  135. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/routes/OrdersList.tsx +0 -0
  136. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/src/styles.css +0 -0
  137. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/tsconfig.json +0 -0
  138. {qaas_python-0.3.1 → qaas_python-0.3.2}/target-app/web/vite.config.ts +0 -0
  139. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/adapters/test_github_vcs.py +0 -0
  140. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/adapters/test_jira_tracker.py +0 -0
  141. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/conftest.py +0 -0
  142. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/conftest.py +0 -0
  143. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_contract_diff.py +0 -0
  144. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_defect_memory.py +0 -0
  145. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_env_control.py +0 -0
  146. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_test_runner.py +0 -0
  147. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_tracker.py +0 -0
  148. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/mcp/test_vcs.py +0 -0
  149. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/support.py +0 -0
  150. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/target_app/test_seeded_defects.py +0 -0
  151. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_cli.py +0 -0
  152. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_conductor.py +0 -0
  153. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_config.py +0 -0
  154. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_discover.py +0 -0
  155. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_envelope.py +0 -0
  156. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_guardrails.py +0 -0
  157. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_hooks_and_skills.py +0 -0
  158. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_paths.py +0 -0
  159. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_prompt_overrides.py +0 -0
  160. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_registry.py +0 -0
  161. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_scorecard.py +0 -0
  162. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_skills_actually_load.py +0 -0
  163. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_store.py +0 -0
  164. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_target_profile_is_honoured.py +0 -0
  165. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_trace.py +0 -0
  166. {qaas_python-0.3.1 → qaas_python-0.3.2}/tests/test_user_mcp_servers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: qaas-python
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: A multi-agent QA system: finds real defects, reproduces them, files tickets, fixes them, and proves the fix
5
5
  Project-URL: Homepage, https://github.com/allaabdella2-us/qa-multi-agent-system
6
6
  Project-URL: Repository, https://github.com/allaabdella2-us/qa-multi-agent-system
@@ -310,32 +310,28 @@ the refusal and adapts.
310
310
 
311
311
  ---
312
312
 
313
- ## 📈 Benchmarks, honestly
313
+ ## 📈 How you know it works
314
314
 
315
- Against the bundled demo app and its golden ledger:
315
+ `qaas` ships with a **deliberately buggy demo app** and a golden ledger recording
316
+ every defect seeded into it — plus **planted non-defects**: correct-but-suspicious
317
+ code that a careless reader would report.
316
318
 
317
- Two runs against the demo app, scored automatically:
318
-
319
- | metric | run A (full loop) | run B (discovery only) |
320
- |---|--:|--:|
321
- | 🎯 recall | **81%** — 13 of 16 | **69%** — 11 of 16 |
322
- | 🔇 precision | **100%** — 0 FP | **92%** — 1 FP |
323
- | 🏷️ severity agreement | **100%** | **100%** |
324
-
325
- **Both numbers are shown on purpose.** A single figure would be the flattering
326
- one, and it would not survive contact with a second run. These are stochastic
327
- agents: the two runs did not find the same 11–13 defects — run B caught a
328
- contrast failure run A missed, and missed three run A found. Expect variance of
329
- this order.
319
+ ```bash
320
+ cd target-app && docker compose up -d
321
+ qaas run --mode nightly && qaas score
322
+ ```
330
323
 
331
- The ledger's `not_defects` section plants **correct-but-suspicious** code, so
332
- precision is measured rather than assumed.
324
+ `qaas score` reports recall, precision and severity agreement against that
325
+ ledger. That matters more than any number this page could print: it means a
326
+ change to a prompt, a threshold or a model has **a measurement attached** rather
327
+ than an opinion.
333
328
 
334
329
  > [!CAUTION]
335
- > **Treat this as a floor, not a proof.** Seeded defects are easier than real
336
- > ones and the system was calibrated against them. Two runs is not a sample.
337
- > These numbers show the loop works end to end and does not spray false
338
- > positives — not that it will find the hard bug in your codebase.
330
+ > **Seeded defects are easier than real ones**, and this system was calibrated
331
+ > against them. A benchmark shows the loop works end to end and does not spray
332
+ > false positives. It does not show that it will find the hard bug in your
333
+ > codebase. Run it on something you know well and judge it on what it finds
334
+ > there.
339
335
 
340
336
  ---
341
337
 
@@ -280,32 +280,28 @@ the refusal and adapts.
280
280
 
281
281
  ---
282
282
 
283
- ## 📈 Benchmarks, honestly
283
+ ## 📈 How you know it works
284
284
 
285
- Against the bundled demo app and its golden ledger:
285
+ `qaas` ships with a **deliberately buggy demo app** and a golden ledger recording
286
+ every defect seeded into it — plus **planted non-defects**: correct-but-suspicious
287
+ code that a careless reader would report.
286
288
 
287
- Two runs against the demo app, scored automatically:
288
-
289
- | metric | run A (full loop) | run B (discovery only) |
290
- |---|--:|--:|
291
- | 🎯 recall | **81%** — 13 of 16 | **69%** — 11 of 16 |
292
- | 🔇 precision | **100%** — 0 FP | **92%** — 1 FP |
293
- | 🏷️ severity agreement | **100%** | **100%** |
294
-
295
- **Both numbers are shown on purpose.** A single figure would be the flattering
296
- one, and it would not survive contact with a second run. These are stochastic
297
- agents: the two runs did not find the same 11–13 defects — run B caught a
298
- contrast failure run A missed, and missed three run A found. Expect variance of
299
- this order.
289
+ ```bash
290
+ cd target-app && docker compose up -d
291
+ qaas run --mode nightly && qaas score
292
+ ```
300
293
 
301
- The ledger's `not_defects` section plants **correct-but-suspicious** code, so
302
- precision is measured rather than assumed.
294
+ `qaas score` reports recall, precision and severity agreement against that
295
+ ledger. That matters more than any number this page could print: it means a
296
+ change to a prompt, a threshold or a model has **a measurement attached** rather
297
+ than an opinion.
303
298
 
304
299
  > [!CAUTION]
305
- > **Treat this as a floor, not a proof.** Seeded defects are easier than real
306
- > ones and the system was calibrated against them. Two runs is not a sample.
307
- > These numbers show the loop works end to end and does not spray false
308
- > positives — not that it will find the hard bug in your codebase.
300
+ > **Seeded defects are easier than real ones**, and this system was calibrated
301
+ > against them. A benchmark shows the loop works end to end and does not spray
302
+ > false positives. It does not show that it will find the hard bug in your
303
+ > codebase. Run it on something you know well and judge it on what it finds
304
+ > there.
309
305
 
310
306
  ---
311
307
 
@@ -2,7 +2,7 @@
2
2
  # Distribution name is `qaas-python` (`qaas` was taken); the import package and
3
3
  # the CLI are both `qaas`.
4
4
  name = "qaas-python"
5
- version = "0.3.1"
5
+ version = "0.3.2"
6
6
  description = "A multi-agent QA system: finds real defects, reproduces them, files tickets, fixes them, and proves the fix"
7
7
  readme = "README.md"
8
8
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes