agentdeck-sdk 4.0.4__tar.gz → 5.0.0__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 (604) hide show
  1. agentdeck_sdk-5.0.0/.agents/skills/deck-cleanup/SKILL.md +48 -0
  2. agentdeck_sdk-5.0.0/.agents/skills/deck-cleanup/agents/openai.yaml +4 -0
  3. agentdeck_sdk-5.0.0/.agents/skills/deck-cleanup/references/narrative-prose.md +49 -0
  4. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.agents/skills/open-issue/SKILL.md +2 -1
  5. {agentdeck_sdk-4.0.4/.claude → agentdeck_sdk-5.0.0/.agents}/skills/release/SKILL.md +3 -4
  6. agentdeck_sdk-5.0.0/.agents/skills/ship-issue/SKILL.md +41 -0
  7. agentdeck_sdk-5.0.0/.claude/agents/deck-cleanup.md +28 -0
  8. agentdeck_sdk-5.0.0/.claude/agents/deck-dev.md +20 -0
  9. agentdeck_sdk-5.0.0/.claude/agents/deck-reviewer.md +18 -0
  10. agentdeck_sdk-5.0.0/.claude/settings.json +36 -0
  11. agentdeck_sdk-5.0.0/.claude/skills/milestone-retro/SKILL.md +66 -0
  12. agentdeck_sdk-5.0.0/.claude/skills/milestone-retro/references/judging.md +103 -0
  13. agentdeck_sdk-5.0.0/.claude/skills/milestone-retro/references/queries.md +132 -0
  14. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.claude/skills/open-issue/SKILL.md +2 -1
  15. {agentdeck_sdk-4.0.4/.agents → agentdeck_sdk-5.0.0/.claude}/skills/release/SKILL.md +3 -4
  16. agentdeck_sdk-5.0.0/.claude/skills/review-pr/SKILL.md +86 -0
  17. agentdeck_sdk-5.0.0/.claude/skills/review-pr/references/attack.md +42 -0
  18. agentdeck_sdk-5.0.0/.claude/skills/review-pr/references/classify.md +44 -0
  19. agentdeck_sdk-5.0.0/.claude/skills/review-pr/references/craft.md +68 -0
  20. agentdeck_sdk-5.0.0/.claude/skills/review-pr/references/templates.md +132 -0
  21. agentdeck_sdk-5.0.0/.claude/skills/ship-issue/SKILL.md +67 -0
  22. agentdeck_sdk-5.0.0/.claude/skills/ship-pr/SKILL.md +139 -0
  23. agentdeck_sdk-5.0.0/.claude/skills/ship-pr/references/design.md +66 -0
  24. agentdeck_sdk-5.0.0/.claude/skills/ship-pr/references/implement.md +42 -0
  25. agentdeck_sdk-5.0.0/.claude/skills/ship-pr/references/self-review.md +41 -0
  26. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.coderabbit.yaml +21 -12
  27. agentdeck_sdk-5.0.0/.codex/agents/deck-cleanup.toml +5 -0
  28. agentdeck_sdk-5.0.0/.codex/agents/deck-dev.toml +5 -0
  29. agentdeck_sdk-5.0.0/.codex/agents/deck-reviewer.toml +5 -0
  30. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.env.example +12 -10
  31. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.gitattributes +3 -3
  32. agentdeck_sdk-5.0.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  33. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/ISSUE_TEMPLATE/finding.yml +11 -11
  34. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/PULL_REQUEST_TEMPLATE.md +19 -1
  35. agentdeck_sdk-5.0.0/.github/workflows/agent-review.yml +49 -0
  36. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/workflows/ci.yml +76 -15
  37. agentdeck_sdk-5.0.0/.github/workflows/docs-check.yml +68 -0
  38. agentdeck_sdk-5.0.0/.github/workflows/docs-impact.yml +31 -0
  39. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/workflows/docs-pages.yml +8 -6
  40. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/workflows/first-contribution.yml +12 -6
  41. agentdeck_sdk-5.0.0/.github/workflows/issue-hygiene.yml +38 -0
  42. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/workflows/release.yml +21 -13
  43. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.gitignore +5 -1
  44. agentdeck_sdk-5.0.0/.import_linter_cache/agentdeck.meta.json +1 -0
  45. agentdeck_sdk-5.0.0/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +1 -0
  46. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.importlinter +15 -50
  47. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.pre-commit-config.yaml +1 -1
  48. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/CHANGELOG.md +161 -1
  49. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/CLAUDE.md +15 -8
  50. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/CONTRIBUTING.md +8 -5
  51. agentdeck_sdk-5.0.0/Makefile +79 -0
  52. agentdeck_sdk-5.0.0/PKG-INFO +261 -0
  53. agentdeck_sdk-5.0.0/README.md +214 -0
  54. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/SECURITY.md +3 -3
  55. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/README.md +14 -14
  56. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/__init__.py +17 -10
  57. agentdeck_sdk-5.0.0/agentdeck/adapters/executors/__init__.py +1 -0
  58. agentdeck_sdk-5.0.0/agentdeck/adapters/executors/native/__init__.py +5 -0
  59. agentdeck_sdk-5.0.0/agentdeck/adapters/executors/native/executor.py +275 -0
  60. agentdeck_sdk-5.0.0/agentdeck/adapters/executors/openai_agents/__init__.py +9 -0
  61. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/openai_agents/engine.py → agentdeck_sdk-5.0.0/agentdeck/adapters/executors/openai_agents/executor.py +18 -24
  62. {agentdeck_sdk-4.0.4/agentdeck/adapters/engines → agentdeck_sdk-5.0.0/agentdeck/adapters/executors}/openai_agents/runconfig.py +88 -31
  63. {agentdeck_sdk-4.0.4/agentdeck/adapters/engines → agentdeck_sdk-5.0.0/agentdeck/adapters/executors}/openai_agents/sessions.py +8 -5
  64. {agentdeck_sdk-4.0.4/agentdeck/adapters/engines → agentdeck_sdk-5.0.0/agentdeck/adapters/executors}/openai_agents/translate.py +4 -9
  65. agentdeck_sdk-5.0.0/agentdeck/adapters/executors/stub/__init__.py +5 -0
  66. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/stub/engine.py → agentdeck_sdk-5.0.0/agentdeck/adapters/executors/stub/executor.py +33 -29
  67. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/memory/store.py +56 -73
  68. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/postgres/store.py +82 -80
  69. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/redis/store.py +59 -59
  70. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/sqlite/store.py +79 -92
  71. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/telemetry/langfuse/sink.py +3 -14
  72. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/__init__.py +0 -8
  73. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/agent.py +14 -3
  74. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/compile.py +86 -46
  75. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/hooks.py +8 -8
  76. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/injection.py +39 -29
  77. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/instructions.py +7 -7
  78. agentdeck_sdk-5.0.0/agentdeck/authoring/interrupts.py +39 -0
  79. agentdeck_sdk-5.0.0/agentdeck/authoring/native.py +156 -0
  80. agentdeck_sdk-5.0.0/agentdeck/authoring/runners/__init__.py +5 -0
  81. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/runners/agent.py +24 -33
  82. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/tools.py +8 -8
  83. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/web_search.py +1 -1
  84. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/composition.py +23 -36
  85. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/__init__.py +6 -6
  86. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/content.py +53 -0
  87. agentdeck_sdk-5.0.0/agentdeck/core/context.py +471 -0
  88. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/events.py +87 -61
  89. agentdeck_sdk-5.0.0/agentdeck/core/invocable.py +82 -0
  90. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/__init__.py +4 -4
  91. agentdeck_sdk-5.0.0/agentdeck/core/ports/executor.py +89 -0
  92. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/sink.py +1 -1
  93. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/store.py +38 -28
  94. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/reporting.py +20 -8
  95. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/status.py +95 -6
  96. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/deck.py +478 -277
  97. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/errors.py +13 -1
  98. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/observers.py +50 -19
  99. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/discovery.py +49 -55
  100. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/dispatch.py +16 -2
  101. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/registry.py +4 -3
  102. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/service.py +311 -89
  103. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/settings.py +43 -150
  104. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/serve.py +3 -72
  105. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/surfaces/cli/chat.py +9 -13
  106. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/surfaces/serve/app.py +3 -3
  107. agentdeck_sdk-5.0.0/agentdeck/surfaces/serve/compat.py +104 -0
  108. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/testing.py +7 -12
  109. agentdeck_sdk-5.0.0/agentdeck/views.py +63 -0
  110. agentdeck_sdk-5.0.0/context7.json +36 -0
  111. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/00-project-index.md +3 -1
  112. agentdeck_sdk-5.0.0/docs/ai-agents/ai_agent_repository_alignment_research.md +2209 -0
  113. agentdeck_sdk-5.0.0/docs/ai-agents/harness_change_log.md +45 -0
  114. agentdeck_sdk-5.0.0/docs/ai-agents/solutions_for_aligning_ai_agents.md +256 -0
  115. agentdeck_sdk-5.0.0/docs/ai-agents/sota_style_alignment_findings.md +49 -0
  116. agentdeck_sdk-5.0.0/docs/delivery/plan-jack-eval.md +221 -0
  117. agentdeck_sdk-5.0.0/docs/design/execution-api-source.md +2120 -0
  118. agentdeck_sdk-5.0.0/docs/design/execution-api.md +411 -0
  119. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/run-identity.md +8 -6
  120. agentdeck_sdk-5.0.0/docs/engineering/architecture.md +49 -0
  121. agentdeck_sdk-5.0.0/docs/engineering/import-boundaries.md +28 -0
  122. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/repository-policy.md +12 -0
  123. agentdeck_sdk-5.0.0/docs/patterns/README.md +12 -0
  124. agentdeck_sdk-5.0.0/docs/patterns/comments.md +30 -0
  125. agentdeck_sdk-5.0.0/docs/patterns/errors.md +24 -0
  126. agentdeck_sdk-5.0.0/docs/patterns/lifecycle.md +22 -0
  127. agentdeck_sdk-5.0.0/docs/patterns/tests.md +18 -0
  128. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/README.md +13 -0
  129. agentdeck_sdk-5.0.0/docs-site/app/docs-slugs.ts +19 -0
  130. agentdeck_sdk-5.0.0/docs-site/app/jack-answer-link.tsx +16 -0
  131. agentdeck_sdk-5.0.0/docs-site/app/jack-citations.ts +93 -0
  132. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/jack-live.tsx +12 -4
  133. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/jack.css +2 -2
  134. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/jack.tsx +11 -3
  135. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/landing-components.tsx +7 -2
  136. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/landing.css +12 -0
  137. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/layout.tsx +5 -4
  138. agentdeck_sdk-5.0.0/docs-site/content/build-your-deck/agents.mdx +79 -0
  139. agentdeck_sdk-5.0.0/docs-site/content/build-your-deck/context.mdx +83 -0
  140. agentdeck_sdk-5.0.0/docs-site/content/build-your-deck/deck.mdx +42 -0
  141. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/build-your-deck/skills.mdx +6 -0
  142. agentdeck_sdk-5.0.0/docs-site/content/build-your-deck/tools.mdx +60 -0
  143. agentdeck_sdk-5.0.0/docs-site/content/build-your-deck/workflows.mdx +84 -0
  144. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/examples/index.mdx +5 -2
  145. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/index.mdx +7 -0
  146. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/integrations/_meta.ts +0 -1
  147. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/integrations/existing-agents.mdx +5 -0
  148. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/integrations/mcp.mdx +5 -0
  149. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/integrations/openai-agents-sdk.mdx +5 -0
  150. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/jack/notes.mdx +6 -2
  151. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/jack.mdx +17 -17
  152. agentdeck_sdk-5.0.0/docs-site/content/meet-agentdeck/mental-model.mdx +82 -0
  153. agentdeck_sdk-5.0.0/docs-site/content/meet-agentdeck/overview.mdx +52 -0
  154. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/meet-agentdeck/quickstart.mdx +9 -1
  155. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/reference/cli.mdx +5 -0
  156. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/reference/deck.mdx +91 -93
  157. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/reference/events.mdx +20 -4
  158. agentdeck_sdk-5.0.0/docs-site/content/reference/python-api.mdx +17 -0
  159. agentdeck_sdk-5.0.0/docs-site/content/reference/run.mdx +39 -0
  160. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/reference/settings.mdx +22 -16
  161. agentdeck_sdk-5.0.0/docs-site/content/resources/changelog.mdx +183 -0
  162. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/resources/known-issues.mdx +11 -2
  163. agentdeck_sdk-5.0.0/docs-site/content/resources/migration-guides.mdx +113 -0
  164. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/resources/troubleshooting.mdx +7 -0
  165. agentdeck_sdk-5.0.0/docs-site/content/runs-and-control/events.mdx +86 -0
  166. agentdeck_sdk-5.0.0/docs-site/content/runs-and-control/human-input.mdx +16 -0
  167. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/runs-and-control/lifecycle-and-control.mdx +25 -2
  168. agentdeck_sdk-5.0.0/docs-site/content/runs-and-control/pause-resume.mdx +17 -0
  169. agentdeck_sdk-5.0.0/docs-site/content/runs-and-control/runs.mdx +102 -0
  170. agentdeck_sdk-5.0.0/docs-site/content/runs-and-control/sessions.mdx +99 -0
  171. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/llms-full.txt +989 -244
  172. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/llms.txt +13 -15
  173. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/README.md +5 -5
  174. agentdeck_sdk-5.0.0/examples/jack/eval.py +133 -0
  175. agentdeck_sdk-5.0.0/examples/jack/evals/__init__.py +0 -0
  176. agentdeck_sdk-5.0.0/examples/jack/evals/judge.py +75 -0
  177. agentdeck_sdk-5.0.0/examples/jack/evals/metrics.py +163 -0
  178. agentdeck_sdk-5.0.0/examples/jack/evals/run.py +153 -0
  179. agentdeck_sdk-5.0.0/examples/jack/evalset.py +137 -0
  180. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/jack/agent.py +9 -9
  181. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/jack/corpus.py +3 -3
  182. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/jack/server.py +7 -7
  183. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/run.py +1 -1
  184. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/pyproject.toml +42 -16
  185. agentdeck_sdk-5.0.0/scripts/check_commit_hygiene.py +70 -0
  186. agentdeck_sdk-5.0.0/scripts/check_docs_impact.py +216 -0
  187. agentdeck_sdk-5.0.0/scripts/concept_budget.py +96 -0
  188. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/scripts/generate_docs_reference.py +43 -23
  189. agentdeck_sdk-5.0.0/scripts/quality_delta.py +79 -0
  190. agentdeck_sdk-5.0.0/scripts/repomap.py +61 -0
  191. agentdeck_sdk-5.0.0/scripts/slopcheck.py +582 -0
  192. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/concurrency_worker.py +62 -56
  193. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/conftest.py +23 -0
  194. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/context_injection_subjects.py +2 -2
  195. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/case_types.py +2 -2
  196. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/conftest.py +1 -1
  197. agentdeck_sdk-5.0.0/tests/contract/context_subjects.py +89 -0
  198. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/contract_cases.py +8 -9
  199. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/never_yields.py +9 -12
  200. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/openai_agents_cases.py +5 -5
  201. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_context_parity.py +9 -17
  202. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_control.py +14 -43
  203. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_event_stream.py +8 -9
  204. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_resume.py +13 -11
  205. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_store.py +173 -110
  206. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/conftest.py +7 -7
  207. agentdeck_sdk-4.0.4/tests/core/snapshots/status.reported.json → agentdeck_sdk-5.0.0/tests/core/snapshots/agent.changed.json +6 -5
  208. agentdeck_sdk-5.0.0/tests/core/snapshots/answer.refused.json +17 -0
  209. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/artifact.created.json +2 -2
  210. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/control.observed.json +2 -2
  211. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/control.requested.json +2 -2
  212. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/custom.json +5 -4
  213. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/input.appended.json +2 -2
  214. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/message.completed.json +2 -2
  215. agentdeck_sdk-4.0.4/tests/core/snapshots/node.updated.json → agentdeck_sdk-5.0.0/tests/core/snapshots/report.json +8 -7
  216. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.cancelled.json +2 -2
  217. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.completed.json +2 -2
  218. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.failed.json +2 -2
  219. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.interrupted.json +2 -2
  220. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.paused.json +2 -2
  221. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.resumed.json +2 -2
  222. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/run.started.json +4 -3
  223. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/text.delta.json +2 -2
  224. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/thought.delta.json +2 -2
  225. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/tool.call.completed.json +2 -2
  226. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/tool.call.started.json +2 -2
  227. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/snapshots/usage.reported.json +2 -2
  228. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_context.py +9 -9
  229. agentdeck_sdk-5.0.0/tests/core/test_continuation.py +142 -0
  230. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_events.py +28 -34
  231. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_model_config.py +1 -1
  232. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_reporting.py +38 -20
  233. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_run_lifecycle_tables.py +40 -0
  234. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/crash_worker.py +7 -8
  235. agentdeck_sdk-5.0.0/tests/golden/README.md +98 -0
  236. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/conftest.py +9 -18
  237. agentdeck_sdk-5.0.0/tests/golden/snapshots/01_health.http +4 -0
  238. agentdeck_sdk-5.0.0/tests/golden/test_golden_wire.py +57 -0
  239. agentdeck_sdk-5.0.0/tests/plays.py +59 -0
  240. agentdeck_sdk-5.0.0/tests/project_executors.py +28 -0
  241. agentdeck_sdk-5.0.0/tests/test_agent_changed.py +128 -0
  242. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_agent_model_resolution.py +8 -8
  243. agentdeck_sdk-5.0.0/tests/test_changelog.py +23 -0
  244. agentdeck_sdk-5.0.0/tests/test_child_runs.py +437 -0
  245. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_cli.py +2 -2
  246. agentdeck_sdk-5.0.0/tests/test_commit_hygiene.py +56 -0
  247. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_composition.py +31 -76
  248. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_context_injection.py +11 -11
  249. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_context_validation.py +24 -73
  250. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_crash_reconciliation.py +22 -15
  251. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_deck.py +280 -420
  252. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_docs_examples.py +0 -1
  253. agentdeck_sdk-5.0.0/tests/test_docs_impact.py +188 -0
  254. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_errors.py +17 -34
  255. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_examples.py +0 -39
  256. agentdeck_sdk-5.0.0/tests/test_executor_plays.py +61 -0
  257. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_generated_reference.py +22 -1
  258. agentdeck_sdk-5.0.0/tests/test_governance_workflows.py +39 -0
  259. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_handoff_round_trip.py +4 -4
  260. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_handoffs.py +2 -2
  261. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_instructions_and_hooks.py +17 -17
  262. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_invocable_registry.py +30 -75
  263. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_jack.py +1 -1
  264. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_jack_server.py +0 -1
  265. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_langfuse_sink.py +8 -19
  266. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_langfuse_tracer.py +4 -6
  267. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_mcp_tool_source.py +3 -3
  268. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_memory_store.py +23 -36
  269. agentdeck_sdk-5.0.0/tests/test_model_providers.py +124 -0
  270. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_multiprocess_concurrency.py +30 -17
  271. agentdeck_sdk-5.0.0/tests/test_native_workflow.py +359 -0
  272. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_observability.py +80 -76
  273. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_openai_agents_engine.py +21 -21
  274. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_openai_agents_reconcile.py +1 -1
  275. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_openai_agents_sessions.py +4 -4
  276. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_openai_agents_tool_failure.py +4 -4
  277. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_package.py +0 -7
  278. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_postgres_store.py +50 -70
  279. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_redis_store.py +24 -30
  280. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_run_config_parity.py +14 -6
  281. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_run_control.py +18 -18
  282. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_run_reporting.py +44 -107
  283. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_runtime_service.py +139 -147
  284. agentdeck_sdk-5.0.0/tests/test_serve.py +192 -0
  285. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_serve_compat.py +12 -83
  286. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_serve_session_claim.py +8 -7
  287. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_settings.py +26 -26
  288. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_sink_dispatch.py +65 -9
  289. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_sqlite_store.py +43 -108
  290. agentdeck_sdk-5.0.0/tests/test_subagents.py +384 -0
  291. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_tool_compilation.py +21 -66
  292. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_uc1_handoff.py +5 -4
  293. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_uc3_slowpoke.py +17 -14
  294. agentdeck_sdk-5.0.0/tests/test_views.py +134 -0
  295. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/uv.lock +372 -515
  296. agentdeck_sdk-4.0.4/.agents/skills/ship-issue/SKILL.md +0 -40
  297. agentdeck_sdk-4.0.4/.claude/agents/deck-dev.md +0 -35
  298. agentdeck_sdk-4.0.4/.claude/agents/deck-reviewer.md +0 -35
  299. agentdeck_sdk-4.0.4/.claude/skills/ship-issue/SKILL.md +0 -40
  300. agentdeck_sdk-4.0.4/.codex/agents/deck-dev.toml +0 -5
  301. agentdeck_sdk-4.0.4/.codex/agents/deck-reviewer.toml +0 -5
  302. agentdeck_sdk-4.0.4/.github/workflows/docs-check.yml +0 -50
  303. agentdeck_sdk-4.0.4/.import_linter_cache/agentdeck.meta.json +0 -1
  304. agentdeck_sdk-4.0.4/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +0 -1
  305. agentdeck_sdk-4.0.4/Makefile +0 -49
  306. agentdeck_sdk-4.0.4/PKG-INFO +0 -300
  307. agentdeck_sdk-4.0.4/README.md +0 -251
  308. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/__init__.py +0 -1
  309. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/langgraph/__init__.py +0 -8
  310. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/langgraph/checkpointer.py +0 -207
  311. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/langgraph/engine.py +0 -500
  312. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/openai_agents/__init__.py +0 -9
  313. agentdeck_sdk-4.0.4/agentdeck/adapters/engines/stub/__init__.py +0 -5
  314. agentdeck_sdk-4.0.4/agentdeck/authoring/graphs.py +0 -145
  315. agentdeck_sdk-4.0.4/agentdeck/authoring/interrupts.py +0 -48
  316. agentdeck_sdk-4.0.4/agentdeck/authoring/nodes.py +0 -140
  317. agentdeck_sdk-4.0.4/agentdeck/authoring/runners/__init__.py +0 -6
  318. agentdeck_sdk-4.0.4/agentdeck/authoring/runners/workflow.py +0 -99
  319. agentdeck_sdk-4.0.4/agentdeck/authoring/state.py +0 -44
  320. agentdeck_sdk-4.0.4/agentdeck/authoring/timers.py +0 -45
  321. agentdeck_sdk-4.0.4/agentdeck/authoring/workflow.py +0 -268
  322. agentdeck_sdk-4.0.4/agentdeck/core/context.py +0 -168
  323. agentdeck_sdk-4.0.4/agentdeck/core/invocable.py +0 -38
  324. agentdeck_sdk-4.0.4/agentdeck/core/ports/engine.py +0 -66
  325. agentdeck_sdk-4.0.4/agentdeck/runtime/config.default.yaml +0 -38
  326. agentdeck_sdk-4.0.4/agentdeck/surfaces/serve/compat.py +0 -215
  327. agentdeck_sdk-4.0.4/agentdeck/surfaces/serve/workflows.py +0 -69
  328. agentdeck_sdk-4.0.4/context7.json +0 -34
  329. agentdeck_sdk-4.0.4/docs/engineering/architecture.md +0 -116
  330. agentdeck_sdk-4.0.4/docs/engineering/import-boundaries.md +0 -30
  331. agentdeck_sdk-4.0.4/docs-site/content/build-your-deck/agents.mdx +0 -20
  332. agentdeck_sdk-4.0.4/docs-site/content/build-your-deck/context.mdx +0 -7
  333. agentdeck_sdk-4.0.4/docs-site/content/build-your-deck/deck.mdx +0 -19
  334. agentdeck_sdk-4.0.4/docs-site/content/build-your-deck/tools.mdx +0 -19
  335. agentdeck_sdk-4.0.4/docs-site/content/build-your-deck/workflows.mdx +0 -13
  336. agentdeck_sdk-4.0.4/docs-site/content/integrations/langgraph.mdx +0 -7
  337. agentdeck_sdk-4.0.4/docs-site/content/meet-agentdeck/mental-model.mdx +0 -15
  338. agentdeck_sdk-4.0.4/docs-site/content/meet-agentdeck/overview.mdx +0 -44
  339. agentdeck_sdk-4.0.4/docs-site/content/reference/python-api.mdx +0 -9
  340. agentdeck_sdk-4.0.4/docs-site/content/reference/run.mdx +0 -12
  341. agentdeck_sdk-4.0.4/docs-site/content/resources/changelog.mdx +0 -64
  342. agentdeck_sdk-4.0.4/docs-site/content/resources/migration-guides.mdx +0 -8
  343. agentdeck_sdk-4.0.4/docs-site/content/runs-and-control/events.mdx +0 -10
  344. agentdeck_sdk-4.0.4/docs-site/content/runs-and-control/human-input.mdx +0 -11
  345. agentdeck_sdk-4.0.4/docs-site/content/runs-and-control/pause-resume.mdx +0 -10
  346. agentdeck_sdk-4.0.4/docs-site/content/runs-and-control/runs.mdx +0 -15
  347. agentdeck_sdk-4.0.4/docs-site/content/runs-and-control/sessions.mdx +0 -7
  348. agentdeck_sdk-4.0.4/examples/existing-langgraph-agent/.agentdeck/workflows/triage/pipeline.py +0 -56
  349. agentdeck_sdk-4.0.4/examples/existing-langgraph-agent/.agentdeck/workflows/triage/workflow.py +0 -18
  350. agentdeck_sdk-4.0.4/examples/existing-langgraph-agent/README.md +0 -73
  351. agentdeck_sdk-4.0.4/examples/existing-langgraph-agent/run.py +0 -18
  352. agentdeck_sdk-4.0.4/examples/jack/eval.py +0 -117
  353. agentdeck_sdk-4.0.4/examples/workflow-with-an-approval/.agentdeck/workflows/refund_approval/workflow.py +0 -42
  354. agentdeck_sdk-4.0.4/examples/workflow-with-an-approval/README.md +0 -48
  355. agentdeck_sdk-4.0.4/examples/workflow-with-an-approval/run.py +0 -20
  356. agentdeck_sdk-4.0.4/scripts/m0_demo.py +0 -664
  357. agentdeck_sdk-4.0.4/tests/contract/context_subjects.py +0 -130
  358. agentdeck_sdk-4.0.4/tests/contract/langgraph_cases.py +0 -86
  359. agentdeck_sdk-4.0.4/tests/core/snapshots/progress.reported.json +0 -19
  360. agentdeck_sdk-4.0.4/tests/golden/README.md +0 -136
  361. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/approval_flow/workflow.py +0 -26
  362. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/boom_flow/workflow.py +0 -31
  363. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/crash_flow/workflow.py +0 -32
  364. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/echo_flow/workflow.py +0 -25
  365. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/fanout_interrupt_flow/workflow.py +0 -44
  366. agentdeck_sdk-4.0.4/tests/golden/fixture_project/.agentdeck/workflows/side_effect_flow/workflow.py +0 -30
  367. agentdeck_sdk-4.0.4/tests/golden/snapshots/01_health.http +0 -4
  368. agentdeck_sdk-4.0.4/tests/golden/snapshots/06_workflow.http +0 -4
  369. agentdeck_sdk-4.0.4/tests/golden/snapshots/07_workflow_stream.http +0 -12
  370. agentdeck_sdk-4.0.4/tests/golden/snapshots/08_interrupt_stream.http +0 -8
  371. agentdeck_sdk-4.0.4/tests/golden/snapshots/09_pending.http +0 -4
  372. agentdeck_sdk-4.0.4/tests/golden/snapshots/10_resume.http +0 -4
  373. agentdeck_sdk-4.0.4/tests/golden/snapshots/11_pending_after_resume.http +0 -4
  374. agentdeck_sdk-4.0.4/tests/golden/snapshots/12_workflow_error.http +0 -4
  375. agentdeck_sdk-4.0.4/tests/golden/snapshots/13_workflow_error_stream.http +0 -8
  376. agentdeck_sdk-4.0.4/tests/golden/snapshots/14_side_effect.http +0 -4
  377. agentdeck_sdk-4.0.4/tests/golden/snapshots/15_side_effect_stream.http +0 -10
  378. agentdeck_sdk-4.0.4/tests/golden/snapshots/16_fanout_interrupt.http +0 -4
  379. agentdeck_sdk-4.0.4/tests/golden/snapshots/17_fanout_interrupt_stream.http +0 -10
  380. agentdeck_sdk-4.0.4/tests/golden/snapshots/18_workflow_crash.http +0 -4
  381. agentdeck_sdk-4.0.4/tests/golden/test_golden_wire.py +0 -114
  382. agentdeck_sdk-4.0.4/tests/project_engines.py +0 -28
  383. agentdeck_sdk-4.0.4/tests/test_langgraph_checkpointer.py +0 -165
  384. agentdeck_sdk-4.0.4/tests/test_langgraph_fanout_interrupt.py +0 -114
  385. agentdeck_sdk-4.0.4/tests/test_langgraph_node_boundary_pause.py +0 -283
  386. agentdeck_sdk-4.0.4/tests/test_langgraph_structured_state.py +0 -130
  387. agentdeck_sdk-4.0.4/tests/test_load_file_node.py +0 -51
  388. agentdeck_sdk-4.0.4/tests/test_node_compilation.py +0 -308
  389. agentdeck_sdk-4.0.4/tests/test_serve.py +0 -315
  390. agentdeck_sdk-4.0.4/tests/test_uc2_claim_pipeline.py +0 -414
  391. agentdeck_sdk-4.0.4/tests/test_workflow_durability.py +0 -287
  392. agentdeck_sdk-4.0.4/tests/test_workflow_interrupts.py +0 -357
  393. agentdeck_sdk-4.0.4/tests/test_workflow_streaming.py +0 -316
  394. agentdeck_sdk-4.0.4/tests/test_workflow_timers.py +0 -325
  395. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.agentdeck/agents/greeter/agent.py +0 -0
  396. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.claude/agents/docs-reviewer.md +0 -0
  397. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.claude/agents/docs-writer.md +0 -0
  398. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.codex/agents/docs-reviewer.toml +0 -0
  399. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.codex/agents/docs-writer.toml +0 -0
  400. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.dockerignore +0 -0
  401. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/CODEOWNERS +0 -0
  402. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  403. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/ISSUE_TEMPLATE/docs_contribution.yml +0 -0
  404. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  405. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/assets/contributors/merged.png +0 -0
  406. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/assets/contributors/welcome.png +0 -0
  407. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.github/dependabot.yml +0 -0
  408. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.import_linter_cache/.gitignore +0 -0
  409. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/.import_linter_cache/CACHEDIR.TAG +0 -0
  410. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/AGENTS.md +0 -0
  411. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/CODE_OF_CONDUCT.md +0 -0
  412. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/Dockerfile +0 -0
  413. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/LICENSE +0 -0
  414. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/__init__.py +0 -0
  415. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/control/__init__.py +0 -0
  416. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/control/memory/__init__.py +0 -0
  417. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/control/memory/port.py +0 -0
  418. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/control/sqlite/__init__.py +0 -0
  419. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/control/sqlite/port.py +0 -0
  420. {agentdeck_sdk-4.0.4/agentdeck/adapters/engines → agentdeck_sdk-5.0.0/agentdeck/adapters/executors}/openai_agents/reconcile.py +0 -0
  421. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/leases/__init__.py +0 -0
  422. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/leases/memory/__init__.py +0 -0
  423. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/leases/memory/port.py +0 -0
  424. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/leases/sqlite/__init__.py +0 -0
  425. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/leases/sqlite/port.py +0 -0
  426. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/__init__.py +0 -0
  427. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/memory/__init__.py +0 -0
  428. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/postgres/__init__.py +0 -0
  429. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/redis/__init__.py +0 -0
  430. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/stores/sqlite/__init__.py +0 -0
  431. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/telemetry/__init__.py +0 -0
  432. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/telemetry/langfuse/__init__.py +0 -0
  433. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/telemetry/langfuse/client.py +0 -0
  434. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/telemetry/langfuse/trace.py +0 -0
  435. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/__init__.py +0 -0
  436. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/mcp/__init__.py +0 -0
  437. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/mcp/lifecycle.py +0 -0
  438. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/mcp/source.py +0 -0
  439. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/mcp/transport.py +0 -0
  440. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/adapters/tools/mcp/wiring.py +0 -0
  441. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/authoring/skills.py +0 -0
  442. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/cli.py +0 -0
  443. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/base.py +0 -0
  444. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/control.py +0 -0
  445. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/control.py +0 -0
  446. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/lease.py +0 -0
  447. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/core/ports/tools.py +0 -0
  448. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/mcp.py +0 -0
  449. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/py.typed +0 -0
  450. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/__init__.py +0 -0
  451. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/runtime/capture.py +0 -0
  452. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/skills/__init__.py +0 -0
  453. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/skills/bundle.py +0 -0
  454. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/surfaces/__init__.py +0 -0
  455. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/surfaces/cli/__init__.py +0 -0
  456. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/agentdeck/surfaces/serve/__init__.py +0 -0
  457. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docker-compose.yml +0 -0
  458. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/agentdeck-prd.md +0 -0
  459. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/README.md +0 -0
  460. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/components/card.svg +0 -0
  461. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/components/spark.svg +0 -0
  462. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/components/wordmark.svg +0 -0
  463. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/contributor-merged.svg +0 -0
  464. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/contributor-welcome.svg +0 -0
  465. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/favicon.svg +0 -0
  466. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-black.svg +0 -0
  467. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-blue.svg +0 -0
  468. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-full.svg +0 -0
  469. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-mark.svg +0 -0
  470. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-traced-original.svg +0 -0
  471. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo-white.svg +0 -0
  472. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/logo.svg +0 -0
  473. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/brand/social-card.svg +0 -0
  474. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/beta-user-report-v3.md +0 -0
  475. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/decision-v3-entry-point.md +0 -0
  476. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/deck-capability-wrapper-pattern.md +0 -0
  477. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/discoverability-baseline.md +0 -0
  478. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/docs-site-plan.md +0 -0
  479. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/epic-agentdeck-v2-core.md +0 -0
  480. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/findings-register.md +0 -0
  481. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/milestone-0-findings.md +0 -0
  482. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/milestone-0-walking-skeleton.md +0 -0
  483. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-166-delivery.md +0 -0
  484. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-219-delivery.md +0 -0
  485. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-adoption.md +0 -0
  486. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-context-injection.md +0 -0
  487. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-docs-ia.md +0 -0
  488. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-multimodal.md +0 -0
  489. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-phase4-deck.md +0 -0
  490. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-skills.md +0 -0
  491. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/plan-v2-cutover.md +0 -0
  492. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/review-context-injection.md +0 -0
  493. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/review-phase4-deck.md +0 -0
  494. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/review-v3-outsider.md +0 -0
  495. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/roadmap-v3.1.md +0 -0
  496. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/roadmap-v3.md +0 -0
  497. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/delivery/workflow.md +0 -0
  498. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/adr-d11-store-assigns-seq-and-time.md +0 -0
  499. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/adr-d5-two-stores.md +0 -0
  500. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/agentdeck-v2-architecture.md +0 -0
  501. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/event-store-claims.md +0 -0
  502. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/run-lifecycle.md +0 -0
  503. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/run-operations.md +0 -0
  504. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design/sink-dispatch.md +0 -0
  505. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/design-system.md +0 -0
  506. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/README.md +0 -0
  507. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/coding-agents.md +0 -0
  508. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/coding-standards.md +0 -0
  509. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/dependencies.md +0 -0
  510. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/principles.md +0 -0
  511. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/runtime-contracts.md +0 -0
  512. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/engineering/testing.md +0 -0
  513. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/project-brief.md +0 -0
  514. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/prompts/pr0-baseline-prompt.md +0 -0
  515. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/prompts/pr0-review-prompt.md +0 -0
  516. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/prompts/pr1-event-schema-prompt.md +0 -0
  517. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs/spec.md +0 -0
  518. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/.env.development +0 -0
  519. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/.env.production +0 -0
  520. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/.gitignore +0 -0
  521. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/[[...mdxPath]]/page.tsx +0 -0
  522. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/brand-icons.tsx +0 -0
  523. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/brand.css +0 -0
  524. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/callout.tsx +0 -0
  525. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/contribute.tsx +0 -0
  526. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/deck-figure.tsx +0 -0
  527. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/design-system.tsx +0 -0
  528. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/diagram.tsx +0 -0
  529. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/hero.css +0 -0
  530. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/hero.tsx +0 -0
  531. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/icon.svg +0 -0
  532. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/install-line.tsx +0 -0
  533. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/jack-stream.ts +0 -0
  534. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/kind-icons.tsx +0 -0
  535. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/mark.tsx +0 -0
  536. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/not-found.tsx +0 -0
  537. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/robots.ts +0 -0
  538. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/site.ts +0 -0
  539. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/app/sitemap.ts +0 -0
  540. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/_meta.ts +0 -0
  541. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/build-your-deck/_meta.ts +0 -0
  542. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/examples/_meta.ts +0 -0
  543. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/jack/_meta.ts +0 -0
  544. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/meet-agentdeck/_meta.ts +0 -0
  545. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/reference/_meta.ts +0 -0
  546. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/resources/_meta.ts +0 -0
  547. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/content/runs-and-control/_meta.ts +0 -0
  548. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/mdx-components.tsx +0 -0
  549. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/next-env.d.ts +0 -0
  550. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/next.config.mjs +0 -0
  551. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/package-lock.json +0 -0
  552. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/package.json +0 -0
  553. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/card.svg +0 -0
  554. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/contributor-merged.svg +0 -0
  555. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/contributor-welcome.svg +0 -0
  556. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/favicon.svg +0 -0
  557. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-black.svg +0 -0
  558. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-blue.svg +0 -0
  559. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-full.svg +0 -0
  560. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-mark.svg +0 -0
  561. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-traced-original.svg +0 -0
  562. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo-white.svg +0 -0
  563. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/logo.svg +0 -0
  564. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/social-card.svg +0 -0
  565. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/spark.svg +0 -0
  566. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/public/brand/wordmark.svg +0 -0
  567. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/docs-site/tsconfig.json +0 -0
  568. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/agent-with-a-skill/.agentdeck/agents/handover_desk/agent.py +0 -0
  569. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/agent-with-a-skill/.agentdeck/skills/shift-notes/SKILL.md +0 -0
  570. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/agent-with-a-skill/README.md +0 -0
  571. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/agent-with-a-skill/run.py +0 -0
  572. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/chat-agent-with-a-tool/.agentdeck/agents/order_desk/agent.py +0 -0
  573. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/chat-agent-with-a-tool/README.md +0 -0
  574. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/chat-agent-with-a-tool/run.py +0 -0
  575. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/cloudflared.yml +0 -0
  576. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/jack/__init__.py +0 -0
  577. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/examples/jack/jack/session.py +0 -0
  578. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/scripts/sync_claude_to_codex.py +0 -0
  579. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/scripts/sync_roadmap.py +0 -0
  580. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/live_stores.py +0 -0
  581. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_control_port.py +0 -0
  582. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/contract/test_lease.py +0 -0
  583. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_content.py +0 -0
  584. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_golden_json.py +0 -0
  585. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_import_law.py +0 -0
  586. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_old_reader_block_compat.py +0 -0
  587. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_old_reader_compat.py +0 -0
  588. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/core/test_vocabularies_agree.py +0 -0
  589. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/event_log_checks.py +0 -0
  590. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/fixture_project/.agentdeck/agents/greeter/agent.py +0 -0
  591. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/snapshots/02_chat.http +0 -0
  592. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/snapshots/03_chat_stream.http +0 -0
  593. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/snapshots/04_chat_missing_field.http +0 -0
  594. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/golden/snapshots/05_agent_unknown.http +0 -0
  595. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_authoring.py +0 -0
  596. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_brand_assets.py +0 -0
  597. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_cli_render.py +0 -0
  598. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_docs_site.py +0 -0
  599. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_handoff_ends_on_user_turn.py +0 -0
  600. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_mcp.py +0 -0
  601. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_skills.py +0 -0
  602. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_sqlite_control_port.py +0 -0
  603. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_streaming.py +0 -0
  604. {agentdeck_sdk-4.0.4 → agentdeck_sdk-5.0.0}/tests/test_web_search.py +0 -0
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: deck-cleanup
3
+ description: Audit and remove one kind of AgentDeck codebase entropy with evidence, isolated work, and narrow changes. Use for narrative prose, dead code, duplicate helpers, or pattern drift; not feature work or mixed refactors.
4
+ ---
5
+
6
+ # Deck Cleanup
7
+
8
+ Remove entropy without changing unrelated behavior.
9
+
10
+ ## Scope
11
+
12
+ - Classify findings as narrative prose, dead code, duplicate helpers, or pattern drift.
13
+ - A broad audit may inspect every category, but each category gets a separate branch and review path.
14
+ - Inspect active branches and worktrees before choosing files. Avoid paths under concurrent development.
15
+ - Work in an isolated worktree and preserve unrelated user changes.
16
+ - For an interactive cleanup, propose and apply one small block at a time.
17
+
18
+ ## Evidence
19
+
20
+ ### Narrative prose
21
+
22
+ Run `uv run scripts/slopcheck.py --all <file>` on one file at a time. The tool does not replace manual review.
23
+
24
+ Delete prose when the code remains clear. Keep only concise public contracts or non-obvious rationale involving correctness, concurrency, security, compatibility, or external-system behavior. Each source file keeps one focused top-level description.
25
+
26
+ Read [references/narrative-prose.md](references/narrative-prose.md) for the deletion and detection rubric.
27
+
28
+ ### Dead code
29
+
30
+ Build the symbol map with `uv run scripts/repomap.py`, then verify references outside the definition's module and tests. A symbol is removable only after checking dynamic registration, exports, compatibility migrations, and framework discovery.
31
+
32
+ ### Duplicate helpers
33
+
34
+ Require evidence of the same responsibility, not merely similar syntax. Prefer the architectural owner named by `docs/engineering/architecture.md`. Do not centralize trivial provider-local helpers or create adapter-to-adapter dependencies.
35
+
36
+ ### Pattern drift
37
+
38
+ Cite the binding engineering rule and the canonical implementation. Behavior changes require contract tests and a branch separate from prose cleanup.
39
+
40
+ ## Change discipline
41
+
42
+ - Prefer deletion over rewriting.
43
+ - Keep issue history, removed designs, review arguments, and changelog narration out of code.
44
+ - Add `docs/patterns` guidance only for a repeated implementation shape not already covered by engineering standards.
45
+ - Run focused checks after each file and `make check` before completion.
46
+ - Use a read-only reviewer when an independent audit is requested. The reviewer names patterns and evidence but does not edit.
47
+ - Commit, push, and open a PR only with explicit authorization for each action.
48
+ - Nothing found means no change. Report the scanned scope and evidence.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Deck Cleanup"
3
+ short_description: "Remove AgentDeck code entropy with evidence"
4
+ default_prompt: "Use $deck-cleanup to audit one kind of codebase entropy and propose the smallest evidence-backed cleanup."
@@ -0,0 +1,49 @@
1
+ # Narrative prose rubric
2
+
3
+ ## Deletion test
4
+
5
+ Remove a comment or docstring when identifiers, types, control flow, or an adjacent test already express it. Rewrite only when deletion would hide a contract or non-obvious reason.
6
+
7
+ Keep:
8
+
9
+ - public behavior and failure contracts,
10
+ - concurrency and atomicity invariants,
11
+ - security or privacy rationale,
12
+ - compatibility constraints,
13
+ - surprising database, SDK, protocol, or filesystem behavior.
14
+
15
+ Cut:
16
+
17
+ - line-by-line implementation tours,
18
+ - issue numbers and superseded design history,
19
+ - comparisons to other adapters when the local rule stands alone,
20
+ - statements that label code obvious, important, correct, or load-bearing,
21
+ - repeated explanations owned by a public method or binding design document,
22
+ - speculative operator advice and future debugging notes.
23
+
24
+ ## AI-slop patterns
25
+
26
+ Flag the exact line and name the pattern. Do not score the prose or guess who wrote it.
27
+
28
+ - Binary contrast: `not X, but Y`, `the file, not this process`.
29
+ - Interpretive metadiscourse: `the key point`, `this distinction matters`, `the whole reason`.
30
+ - Importance puffery: `crucial`, `load-bearing`, `the one corruption`.
31
+ - Faux insight: `the honest answer`, `the whole mechanism`.
32
+ - Dramatic framing or metaphor where a concrete outcome suffices.
33
+ - Robotic repetition of the same rationale across public and private methods.
34
+ - Portability failure: prose that could describe any store, adapter, or project unchanged.
35
+
36
+ Replace labels with the mechanism or consequence. Prefer one or two lines.
37
+
38
+ ## File descriptions
39
+
40
+ Keep one focused sentence at the top of each source file. State its responsibility, not its history, implementation tour, or relationship to every neighboring module.
41
+
42
+ ## Review format
43
+
44
+ For each finding report:
45
+
46
+ 1. `file:line`,
47
+ 2. action: delete, retain, tighten, or move,
48
+ 3. named pattern or engineering reason,
49
+ 4. the minimum replacement when tightening.
@@ -28,5 +28,6 @@ Checklist of observable, testable behaviors (mapping 1:1 to deterministic tests
28
28
  - **Title:** Terse and specific: `<area>: <what>` (e.g., `runtime: propagate cancellation to subagents`).
29
29
  - **Single concern:** One issue per topic; split unrelated asks.
30
30
  - **Check duplicates:** `gh issue list --state open`.
31
+ - **Labels:** Select one type label (`bug`, `enhancement`, `feature`, `chore`, `design`, `documentation`, or `finding`) and the closest `area:*` label from `gh label list`.
31
32
  - **Output limits:** Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
32
- - Create via `gh issue create -t <title> -b <body>` and return the URL.
33
+ - Create via `gh issue create -t <title> -b <body> --label <type> --label <area>` and verify the resulting issue has both labels before returning its URL.
@@ -13,13 +13,12 @@ Follow the release process strictly. All work starts on `dev`; `main` is release
13
13
  3. **Bump on `dev`:**
14
14
  - Update `version` in `pyproject.toml`.
15
15
  - Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
16
- - Run `python scripts/generate_docs_reference.py` twice.
16
+ - Run `python scripts/generate_docs_reference.py` once, then verify `python scripts/generate_docs_reference.py --check`.
17
17
  - Commit: `chore(release): vX.Y.Z`.
18
18
  4. **Push `dev`:** Wait for CI green.
19
- 5. **Merge to `main`:** Merge `dev` into `main` and push.
19
+ 5. **Merge to `main`:** Open a `dev` to `main` PR, wait for every required check, and merge it.
20
20
  6. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`.
21
- 7. **Redeploy Docs:** If release worktree exists (`~/prjs/agentdeck-docs-release`), run `./redeploy.sh vX.Y.Z` and verify served output.
22
- 8. **Report:** Return the GitHub release URL.
21
+ 7. **Report:** Return the GitHub release URL.
23
22
 
24
23
  ## Ground Rules
25
24
  - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: ship-issue
3
+ description: "Run one agentdeck issue through the full pipeline: brief the user, deck-dev implements it, deck-reviewer gates it, findings get fixed, PR merges to dev, board updated."
4
+ ---
5
+
6
+ # Ship an issue
7
+
8
+ Orchestrate the end-to-end delivery of an issue.
9
+
10
+ ## 0. Brief Before Launching
11
+ Read the issue and verify its claims against the tree. **Spec gate first:** if the issue lacks `Done when` outcomes or scope bounds (what must NOT be added), fix the issue body or ask the user; do not spawn deck-dev against an unbounded spec. Then output a concise 5-point brief (1–2 lines each):
12
+ > **The claim:** What the issue asks for.
13
+ > **What's true now:** Current behavior in the codebase (file:line).
14
+ > **The shape:** Implementation plan in 3–4 concise bullets.
15
+ > **The hard gate:** Invariants that must not break (`tests/golden/`, public API, import law).
16
+ > **Skipped:** What is deliberately out of scope.
17
+
18
+ ## 1. Board Tracking
19
+ Update GitHub Project (`PVT_kwHOBHijkM4BgHFZ`): Set **Status = In progress**, record Start Date, comment with start timestamp.
20
+
21
+ ## 2. Implement
22
+ Spawn `deck-dev` with the issue number and brief. It works in stages (understand, design-in-PR-body, implement, self-review, gate) and posts task progress; poll for stalls.
23
+ If it stops at its own spec gate despite step 0, the issue needs a human decision: set the board back to **Todo**, surface what is missing, stop the pipeline.
24
+
25
+ ## 3. Attach PR
26
+ Verify the draft PR targets `dev`, includes `Closes #<n>`, and its body carries the design sections (`## Reuse analysis`, `## Analog`, `## Concept budget`, `## Expected delta`). Missing sections go back to deck-dev before any review is spent. Set **Status = In review** when marked ready.
27
+
28
+ ## 4. Review
29
+ Spawn `deck-reviewer` on the PR. The reviewer must post a COMMENTED GitHub review; a session-only verdict does not count.
30
+
31
+ ## 5. Address Findings
32
+ The review lands on the PR itself (GitHub review + inline comments); read it there. Route by class: **ERROR** and **WARNING** findings go to `deck-dev` to fix on the branch; **NOTE** findings that will not be fixed now become `finding:`-titled issues via open-issue, never silently dropped. Promotion issues the reviewer filed get scheduled as their own small harness PRs, never implemented by the reviewer.
33
+
34
+ ## 6. Merge
35
+ Merge only when `Agent review` and every other required check are green: `gh pr merge --squash --delete-branch`.
36
+
37
+ ## 7. Complete
38
+ Set **Status = Done**, record Target Date, comment with completion summary and PR link.
39
+
40
+ ## Ground Rules
41
+ - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: deck-cleanup
3
+ description: Runs ONE narrow entropy scan over agentdeck (narrative comments, dead code, duplicate helpers, or pattern drift) and opens one small evidence-backed PR.
4
+ model: sonnet
5
+ isolation: worktree
6
+ ---
7
+
8
+ You run ONE cleanup scan over agentdeck and open one small PR. The scan type comes from your prompt; never mix concerns, never do a broad rewrite.
9
+
10
+ ## Scan types
11
+ - **narrative-comments:** slopcheck takes one file at a time (a directory silently reports clean), so loop: `git ls-files 'agentdeck/**/*.py' 'tests/**/*.py' | while read f; do uv run scripts/slopcheck.py --all "$f"; done`. Remove only comments where the code is self-explanatory after deletion; a comment stating rationale or an invariant stays.
12
+ - **dead-code:** Build the symbol list with `uv run scripts/repomap.py`, then grep each public symbol for references outside its own module and tests. Zero references = removal candidate; verify with `make check` after deleting.
13
+ - **duplicate-helpers:** Read the repo map for same-responsibility functions/classes (similar names, similar signatures, overlapping docstrings). Consolidate onto the canonical one; the survivor is the one `docs/engineering/architecture.md` implies.
14
+ - **pattern-drift:** Pick one concept implemented in more than one place (error raising, settings access, lifecycle transitions) and align outliers to the pattern `docs/engineering/` names.
15
+
16
+ ## Rules
17
+ 1. Evidence first: every deletion or change in the PR body cites its evidence (slopcheck line, zero-reference grep, the duplicated counterpart).
18
+ 2. Smallest change that removes the entropy. No refactors beyond the scan's concern.
19
+ 3. Seed worktree: copy `.env` if present, then `uv venv --python 3.12 && make install`.
20
+ 4. Gate of record: `make check`, 100% green before marking ready.
21
+ 5. Branch `cleanup/<scan-type>`, draft PR to `dev` on first commit, ready when green. No attribution trailers.
22
+ 6. Nothing found = no PR; return "clean" with the evidence of what was scanned.
23
+
24
+ **Progress:** name each phase (scan / change / gate / PR) as you enter it.
25
+
26
+ **Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
27
+
28
+ Return: PR URL (or "clean"), findings count, and `make check` status.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: deck-dev
3
+ description: Implements a GitHub issue (feature or bug fix) for agentdeck end-to-end in an isolated worktree and opens one PR to dev.
4
+ model: sonnet
5
+ isolation: worktree
6
+ ---
7
+
8
+ You implement one agentdeck GitHub issue end-to-end in an isolated worktree and open a PR.
9
+
10
+ **Objective: implement the issue with the smallest coherent change.** Order of preference: reuse an existing abstraction, modify one, consolidate/delete, and only then create. Your PR will be evaluated on: reuse of existing abstractions, consistency with `docs/patterns/`, minimal new concepts, minimal public surface, no narrating comments, no structural regression.
11
+
12
+ **First action:** invoke the `ship-pr` skill and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. Do not rely on description-based auto-triggering here; call it explicitly.
13
+
14
+ **Progress:** name each stage (Understand / Design / Implement / Self-review / Gate) as you enter it. A silent multi-stage run reads as a stall.
15
+
16
+ **Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
17
+
18
+ **Output style:** ≤25 words between tool calls; final response ≤100 words unless more detail is required.
19
+
20
+ Return: PR URL, one-paragraph summary, `make check` status, and declared-vs-actual concept budget.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: deck-reviewer
3
+ description: Review gate for an agentdeck PR before merge. Verifies correctness, spec compliance, simplicity, conciseness, and test quality against docs/engineering/.
4
+ model: sonnet
5
+ isolation: worktree
6
+ ---
7
+
8
+ You review one agentdeck PR as the merge gate. REVIEW ONLY on the code: never push a commit anywhere. You DO write review artifacts: the PR review itself, inline comments, and any DEFER, harness-note or Harvest issue.
9
+
10
+ **First action:** invoke the `review-pr` skill and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. Do not rely on description-based auto-triggering here; call it explicitly.
11
+
12
+ **Progress:** say which phase you are entering as you enter it. A silent review reads as a stall.
13
+
14
+ **Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
15
+
16
+ **Output style:** keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
17
+
18
+ Return to the orchestrator: verdict, `make check` result, counts per finding class, links to the posted review and any DEFER issues.
@@ -0,0 +1,36 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "Edit|Write",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "f=\"$CLAUDE_PROJECT_DIR/scripts/slopcheck.py\"; [ -f \"$f\" ] || exit 0; python3 \"$f\" --write"
10
+ }
11
+ ]
12
+ }
13
+ ],
14
+ "PostToolUse": [
15
+ {
16
+ "matcher": "Edit|Write",
17
+ "hooks": [
18
+ {
19
+ "type": "command",
20
+ "command": "f=\"$CLAUDE_PROJECT_DIR/scripts/slopcheck.py\"; [ -f \"$f\" ] || exit 0; python3 \"$f\""
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "Stop": [
26
+ {
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "f=\"$CLAUDE_PROJECT_DIR/scripts/slopcheck.py\"; [ -f \"$f\" ] || exit 0; python3 \"$f\" --changed"
31
+ }
32
+ ]
33
+ }
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: milestone-retro
3
+ description: Evaluate the harness after a milestone closes: which CI gates fired, whether the slop guards caught anything, how the dev and review agents performed, and whether the PRs were well shaped. Judges the machinery, not the product. Use when a milestone is finished and before the release is tagged.
4
+ ---
5
+
6
+ # Milestone retro
7
+
8
+ Judge the machinery: the gates, the guards, the two agents, the shape of the PRs. **Not the product.** Whether the features were right is a different question with a different audience.
9
+
10
+ Every claim in a retro is a number with a query behind it. An opinion about the harness that nobody measured is how the harness got this way.
11
+
12
+ ## Setup
13
+
14
+ The milestone is the set of PRs merged to `dev` between two tags, or the PRs closing one milestone's issues. Fix that set first and write it down; every phase below is scoped to it.
15
+
16
+ ```bash
17
+ gh pr list --state merged --limit 200 --json number,title,mergedAt,additions,deletions,changedFiles \
18
+ --jq '.[] | select(.mergedAt > "<start>") | "\(.number)\t\(.mergedAt)\t+\(.additions)/-\(.deletions)\t\(.changedFiles)f\t\(.title)"'
19
+ ```
20
+
21
+ Where `scripts/agent_scorecard.py` has already recorded a PR, read its record instead of recomputing. This skill covers what the scorecard cannot: the gates, the guards, and judgment.
22
+
23
+ ## Phases
24
+
25
+ Work in order. Copy this checklist into your own response and check off each phase:
26
+
27
+ ```
28
+ Retro progress:
29
+ - [ ] 1. Gates: which CI checks fired, which never did (references/queries.md)
30
+ - [ ] 2. Guards: what the slop rules actually caught (references/queries.md)
31
+ - [ ] 3. Agents: dev and reviewer, measured (references/queries.md)
32
+ - [ ] 4. PRs: bodies, commits, comment routing (references/queries.md)
33
+ - [ ] 5. Criteria: audit the scorecards themselves (references/judging.md)
34
+ - [ ] 6. Verdict: file the issues (references/judging.md)
35
+ ```
36
+
37
+ | phase | asks | output |
38
+ |---|---|---|
39
+ | 1. Gates | Which required checks failed, and what did each catch? A gate that never fails and a gate that always fails are both broken. | a table: gate, runs, failures |
40
+ | 2. Guards | Did any mechanical guard catch a defect this milestone, or only formatting? Compare against the findings filed. | guard hits against real findings |
41
+ | 3. Agents | Dev: defect at first review, rework ratio, scope creep. Reviewer: escapes, rounds, loop rounds, words per finding. | two scorecards, never merged into one |
42
+ | 4. PRs | Body size against the cap, commit hygiene, whether findings were answered in threads or by growing the body. | per-PR table |
43
+ | 5. Criteria | Are the scorecards measuring the right things? Which metric changed a decision, which rewards the artifact rather than the value, which can be gamed, which cost is unmeasured. The criteria are under review here, not the agents. | metrics kept, killed, added |
44
+ | 6. Verdict | What cost us time, ranked. Each gets an issue or it did not matter. | filed issues |
45
+
46
+ Phase 5 runs after phase 3 and not before, because a criterion is judged on whether it earned its keep this milestone, and you cannot know that until you have used it. It **proposes**: criteria are policy, and the user rules on keep or kill. Two of its four questions belong at proposal time instead, in the issue that adds a metric; `references/judging.md` says which and why.
47
+
48
+ ## Rules
49
+
50
+ **CONSTRAINT: every claim carries its query.** A retro that says a gate is noisy without the failure count is an opinion. If you cannot produce the number, say the number is unavailable and why; never estimate it.
51
+
52
+ **CONSTRAINT: no agent's own report is evidence.** The dev agent declared done on 5 of 5 defective PRs in v5.0.0. Read GitHub, read git, read the diff. An agent's summary is a claim to verify, not a source.
53
+
54
+ **CONSTRAINT: separate the dev and reviewer scorecards.** Their jobs are opposite: one produces, one detects. A shared metric set measures neither. See `references/judging.md`.
55
+
56
+ **EXPECTATION: report what went well with the same evidence.** A retro that only finds faults will get the working parts cut. In v5.0.0 the reviewer caught 8 of 8 real defects and the guards caught 0, and the naive conclusion from a fault-only retro would have been to add more guards.
57
+
58
+ **EXPECTATION: name what you could not measure.** Escape rate is lagging and only resolves weeks later. Agent token and duration figures live in the completion notification and are gone once the session ends. Say so rather than leaving a gap that reads as a zero.
59
+
60
+ **JUDGMENT: how deep to go.** Default to the five phases above. A milestone under three PRs does not need phase 4.
61
+
62
+ ## Out of scope
63
+
64
+ - **Product correctness.** Whether the features were the right features, whether the API is good, whether the docs read well. Different question, different retro.
65
+ - **Rewriting the harness in this session.** The retro produces issues. Implementing them is the normal pipeline, and mixing the two means the measurement stops when the first fix starts.
66
+ - **Any metric counted by volume.** Entries written, findings raised, tests added. Volume metrics manufacture volume. `references/judging.md` covers what to use instead.
@@ -0,0 +1,103 @@
1
+ # Reading the numbers
2
+
3
+ Contents: what makes a metric honest, the two scorecards, auditing the criteria, what a finding must clear, worked examples from v5.0.0.
4
+
5
+ ## What makes a metric honest
6
+
7
+ **No agent grades itself.** The dev agent's score is the reviewer's BLOCK count at first review. The reviewer's score is what escaped it, which only later findings reveal. Everything else comes from GitHub, git, and the agent completion record. A self-reported number is a claim, not evidence.
8
+
9
+ **Every metric needs a counterweight, or it gets gamed in one direction.** Escape rate alone produces a reviewer that blocks everything, so it is read against rounds and words. BLOCK count alone produces a dev agent that ships trivially small PRs, so it is read against scope creep. If a metric has no counterweight, do not ship it.
10
+
11
+ **Never count by volume.** Patterns entries written, findings raised, tests added. A metric that wants a number up manufactures that number. Measure use instead: a patterns entry counts when a later review cites it, not when it is written.
12
+
13
+ **Size is a trigger, never a finding.** A diff larger than its shape suggests means look harder at reuse and pattern conformance. What blocks is always a named duplication, a one-caller abstraction, a divergence from the declared analog, or configuration for a value that never changes. "Too big" is uncitable and an author wins that argument by compressing badly. Clean code is smaller as a consequence, so judge the cause.
14
+
15
+ **Declared against actual is a ceiling, not accuracy.** `concept_budget.py` fails the build when actuals exceed the declaration, and that is all it does. Hitting your own number is not an achievement.
16
+
17
+ ## The two scorecards
18
+
19
+ They stay separate because the jobs are opposite: one produces, one detects.
20
+
21
+ **Dev agent, "was it correct when it said done":**
22
+
23
+ | metric | direction |
24
+ |---|---|
25
+ | BLOCK count at first review | down |
26
+ | rework ratio, commits after `ready_for_review` | down |
27
+ | reuse and pattern BLOCKs | down |
28
+ | scope creep, files touched against files the issue named | down |
29
+ | `make check` green before `ready` | always |
30
+
31
+ **Reviewer, "did it find what was there, at what cost":**
32
+
33
+ | group | metric | direction |
34
+ |---|---|---|
35
+ | recall | escape rate | down |
36
+ | value | outcome rate: findings that produced a code change, a picked-up DEFER, or a patterns entry | up |
37
+ | value | words per finding | down |
38
+ | value | percent anchored inline rather than in the verdict body | up |
39
+ | speed | total latency across rounds | down |
40
+ | speed | productive rounds | fast, not few |
41
+ | waste | loop rounds | to zero |
42
+ | learning | patterns entries a later review cited | up |
43
+
44
+ Only a finding that produced **literally nothing** counts against outcome rate. A DEFER that informs a later fix is a legitimate outcome; it is not a rejection.
45
+
46
+ ## Auditing the criteria (phase 5)
47
+
48
+ The scorecards are under review here, not the agents. A metric set nobody audits ossifies, and the wrong metric is worse than no metric because it directs work.
49
+
50
+ Four questions, and they do not all belong here. Two are design questions answerable the moment a metric is proposed; two need a milestone of use behind them.
51
+
52
+ **Asked when a metric is proposed, in the issue that adds it, never deferred to a retro:**
53
+
54
+ 2. **Can it be gamed in one direction, and does its counterweight still hold?** Name the gaming move and the metric that catches it. A metric whose counterweight you cannot name is not shippable.
55
+ 3. **Does it reward the artifact or the value?** Anything counted by volume rewards the artifact. So does any metric scoring an agent against its own declaration.
56
+
57
+ Both metrics that failed in v5.0.0 failed question 3, and both were catchable at proposal. Asking these late costs a milestone of work pointed the wrong way.
58
+
59
+ **Asked here, because they need usage:**
60
+
61
+ 1. **Did it change a decision this milestone?** Name the decision. A metric computed, read, and acted on nowhere is dead weight.
62
+ 4. **Is it actually obtainable?** A metric that lags by weeks, or whose source vanishes with a session, is not wrong but cannot score a PR at merge. Say which are live and which are retrospective rather than reporting a gap as a zero.
63
+
64
+ Then the question the four cannot ask: **what cost the milestone real time that no metric saw?** That gap is a finding, and it is usually the most valuable output of this phase.
65
+
66
+ ### Who rules
67
+
68
+ **The retro proposes; the user decides.** Criteria are policy, not fact, and the agent running the retro may have authored the metrics it is auditing. Present the evidence, recommend keep or kill for each, and stop. Same class as a DISCUSS finding: neither agent rules.
69
+
70
+ One thing is decidable without judgment, and it is the backstop for criteria nobody gets round to auditing: **a metric that changed zero decisions across two consecutive milestones is flagged for deletion automatically.** State it as a fact in the output, not as a proposal.
71
+
72
+ The two v5.0.0 kills both came from a person challenging a metric out loud, which is not a mechanism. This section is the mechanism.
73
+
74
+ Two metrics failed this audit in v5.0.0, both proposed during the retro that created these scorecards:
75
+
76
+ | metric | why it failed | replaced by |
77
+ |---|---|---|
78
+ | declared against actual LOC, as accuracy | rewards padding: declare +1000, ship +1000, score "exact". Question 3 | reuse and pattern BLOCKs at first review, which measures the cause instead of the symptom |
79
+ | patterns entries per milestone, direction up | manufactures the spam the entry bar exists to prevent. Question 3 | entries a later review cited |
80
+
81
+ Both survived until someone challenged them out loud. That is the reason this phase exists rather than being left to whoever notices.
82
+
83
+ ## What a finding must clear to be filed
84
+
85
+ A retro that files everything it noticed produces a backlog nobody works. Each filed issue needs:
86
+
87
+ 1. **Evidence.** A number, a query, or a quoted failure. Not an impression.
88
+ 2. **A cost.** What it took from the milestone: a wasted hour, a re-review round, a shipped defect, a check nobody reads. If you cannot name the cost, it did not matter enough to file.
89
+ 3. **A bound.** `Done when` outcomes and an explicit `Not in scope`, because the fix is a normal pipeline PR and an unbounded spec produces unbounded code.
90
+
91
+ Rank by cost before filing. A retro that files ten equal-weight issues has ranked nothing.
92
+
93
+ ## Worked examples from v5.0.0
94
+
95
+ **A gate that never fires.** The docs build ran 23 times and failed 0, because roughly 21 of those PRs touched no file under `docs-site/`. Not broken, just never asked a question that could have a "no". Fix was a changed-files check, not deletion, because a required check reporting *skipped* does not satisfy branch protection.
96
+
97
+ **A gate that fires constantly and catches nothing.** Docs-impact failed 19 of 42 runs, because its acknowledgement expired on every push rather than when a new page became impacted. The box then got re-ticked unread, and #409 shipped five stale prose references past a green check. Both halves are findings: the noise, and the fact that the noise made the gate useless.
98
+
99
+ **Guards against reality.** Eight `finding:` issues were filed during the milestone. Zero could have been caught by any of the eight slop rules; every one was semantic (lifecycle ordering, event ordering, a dead field, a docstring asserting a guarantee the code did not make). Three of the eight findings were themselves proposals for new guards. The conclusion is not "add guards".
100
+
101
+ **What went well, measured the same way.** The reviewer caught 8 of 8 real defects, mutation-tested its own verdicts rather than reading tests, and once talked itself out of filing an issue with an argument from the code. A fault-only retro would have proposed thinning it.
102
+
103
+ **A number that was wrong until checked twice.** The dev agent's rework ratio read as 100% on one PR until `authoredDate` replaced `committedDate`; a rebase had rewritten every timestamp. Check any metric that suddenly reads as an extreme.
@@ -0,0 +1,132 @@
1
+ # Retro queries
2
+
3
+ Contents: traps that produce wrong numbers, gates, guards, agents (dev and reviewer), PR shape.
4
+
5
+ ## Traps that produce wrong numbers
6
+
7
+ Read these first. Each one silently returned a wrong answer during the v5.0.0 retro.
8
+
9
+ | trap | what happens | fix |
10
+ |---|---|---|
11
+ | `gh pr list` default limit | returns 30, or whatever you pass. Querying 60 against a 198-PR repo made 19 branches read as "no PR" and nearly deleted them as dead | always pass `--limit 500` and check the returned count |
12
+ | `committedDate` after a rebase | every commit's timestamp is rewritten, so a rebased PR reads as 100% rework | use `authoredDate` for anything comparing commits to an event |
13
+ | a conflicting PR looks like broken CI | it gets **zero** `pull_request` runs because there is no merge ref, while `pull_request_target` jobs keep firing. Reads as "CI partially vanished", not "you have a conflict" | `gh pr view <n> --json mergeable` first, always |
14
+ | `--log-failed` on a multi-job run | mixes jobs, so one job's failure appears under another's name | resolve the job id, then `gh run view --job <id> --log` |
15
+ | grep for a rule id in a script | finds the definition and its self-test, not its firings | read the CI job's log for what it actually flagged |
16
+
17
+ ## 1. Gates
18
+
19
+ Runs and failures per workflow, scoped to the milestone:
20
+
21
+ ```bash
22
+ gh run list --limit 200 --json name,conclusion,createdAt \
23
+ --jq '[.[] | select(.createdAt > "<start>")] | group_by(.name)
24
+ | map({name: .[0].name, total: length,
25
+ fail: ([.[] | select(.conclusion=="failure")] | length)})
26
+ | sort_by(-.total) | .[] | "\(.name)\ttotal=\(.total)\tfail=\(.fail)"'
27
+ ```
28
+
29
+ Both extremes are findings. A gate at 0% has never asked a question that could have a "no". A gate above roughly 30% is either badly shaped or is a lint rule wearing a CI job's clothes, and it trains everyone to ignore it.
30
+
31
+ For any gate that failed, read one failure and record **what it caught**, not that it fired. A gate can fail often and catch nothing.
32
+
33
+ Per-job conclusions inside a multi-job workflow:
34
+
35
+ ```bash
36
+ for id in $(gh run list --workflow=<file>.yml --limit 100 --json databaseId,createdAt \
37
+ --jq '.[]|select(.createdAt>"<start>")|.databaseId'); do
38
+ gh run view $id --json jobs --jq '.jobs[]|select(.name=="<job>")|.conclusion'
39
+ done | sort | uniq -c
40
+ ```
41
+
42
+ ## 2. Guards
43
+
44
+ What the anti-slop gate actually flagged:
45
+
46
+ ```bash
47
+ jid=$(gh run view <run-id> --json jobs --jq '.jobs[]|select(.name=="slop")|.databaseId')
48
+ gh run view --job "$jid" --log | grep -E "SLOP[0-9]"
49
+ ```
50
+
51
+ Then the question that matters: **cross-reference guard hits against the findings filed during the milestone.** List every `finding:` issue and ask, for each, which guard rule could have caught it. In v5.0.0 the answer was none, for all eight.
52
+
53
+ ```bash
54
+ gh issue list --label finding --state all --limit 100 --json number,title,createdAt \
55
+ --jq '.[] | select(.createdAt > "<start>") | "\(.number)\t\(.title)"'
56
+ ```
57
+
58
+ Note how many of those findings are themselves requests for new guards. That ratio is the tell.
59
+
60
+ A guard's silence in CI is not proof it is useless: the write-time hook may be catching things where nothing logs. Say that rather than concluding from CI alone, and fix the observability before proposing a deletion.
61
+
62
+ Rules still violated in tree, for a guard that only checks added lines:
63
+
64
+ ```bash
65
+ git grep -c '<pattern>' -- . | sort -t: -k2 -rn
66
+ ```
67
+
68
+ An exemplar file that breaks the rule it teaches is a finding on its own.
69
+
70
+ ## 3. Agents: dev
71
+
72
+ Rework, per PR. This is the honest "was it done when it said done":
73
+
74
+ ```bash
75
+ ready=$(gh api repos/{owner}/{repo}/issues/<n>/timeline \
76
+ --jq '.[]|select(.event=="ready_for_review")|.created_at' | head -1)
77
+ gh pr view <n> --json commits | jq --arg r "$ready" \
78
+ '{after: ([.commits[]|select(.authoredDate > $r)]|length), total: (.commits|length)}'
79
+ ```
80
+
81
+ Two things that bite here, both verified: `gh`'s own `--jq` takes no `--arg`, so pipe to real `jq` when the filter needs a variable. And `|` rebinds the input for everything after it, so a second reference to `.commits` must be parenthesized or it evaluates against the piped array instead of the original object.
82
+
83
+ Declared against actual, from the PR body and the two scripts:
84
+
85
+ ```bash
86
+ PR_BODY="$(gh pr view <n> --json body -q .body)" uv run scripts/concept_budget.py
87
+ uv run scripts/quality_delta.py
88
+ ```
89
+
90
+ Read this as a ceiling check, never as an accuracy score. Hitting your own declared number proves nothing: a PR declaring +1000 and shipping +1000 is unexamined, not precise.
91
+
92
+ Then read the first review of each PR and record the defect it found, if any. Group the defects by shape. In v5.0.0 all four shared one: the agent tested what it built and not what it changed.
93
+
94
+ ## 3. Agents: reviewer
95
+
96
+ Verdict rounds, and which of them were productive:
97
+
98
+ ```bash
99
+ gh api repos/{owner}/{repo}/pulls/<n>/reviews --jq '.[]|select(.body|length>200)|"\(.submitted_at) \(.body[0:80])"'
100
+ ```
101
+
102
+ A round is a **loop** if it re-raised a finding already raised, or reviewed a tree unchanged since the last round. It is **productive** if it raised something new about code that changed. Keep them separate: a round that found a defect introduced by the previous round's fix is the system working, and one metric would punish it identically to a wasted re-stamp.
103
+
104
+ Comment routing, inline against verdict body:
105
+
106
+ ```bash
107
+ gh api repos/{owner}/{repo}/pulls/<n>/comments --jq 'length'
108
+ gh api repos/{owner}/{repo}/issues/<n>/comments --jq 'length'
109
+ ```
110
+
111
+ Review prose against the PR body it judged:
112
+
113
+ ```bash
114
+ gh pr view <n> --json body -q .body | perl -0pe 's/```.*?```/ /gs' | wc -w
115
+ gh api repos/{owner}/{repo}/pulls/<n>/reviews --jq '.[]|select(.body|length>200)|.body' | wc -w
116
+ ```
117
+
118
+ Escape rate: findings filed against a PR after it merged. Match the `finding:` issues from phase 2 to the PR that introduced the code, then divide by PRs reviewed.
119
+
120
+ ## 4. PR shape
121
+
122
+ ```bash
123
+ gh pr view <n> --json commits --jq '.commits[]|.messageHeadline'
124
+ ```
125
+
126
+ Look for duplicate headlines (an amend artifact), merge commits (`update-branch` without `--rebase`), and commits scoped by the review round rather than by what changed. Squash-merge keeps all of this out of `dev`, so it costs review attention rather than permanent record; weight it accordingly.
127
+
128
+ Body size against the cap, with the same command the caps are defined in terms of:
129
+
130
+ ```bash
131
+ gh pr view <n> --json body -q .body | perl -0pe 's/```.*?```/ /gs' | wc -w
132
+ ```
@@ -28,5 +28,6 @@ Checklist of observable, testable behaviors (mapping 1:1 to deterministic tests
28
28
  - **Title:** Terse and specific: `<area>: <what>` (e.g., `runtime: propagate cancellation to subagents`).
29
29
  - **Single concern:** One issue per topic; split unrelated asks.
30
30
  - **Check duplicates:** `gh issue list --state open`.
31
+ - **Labels:** Select one type label (`bug`, `enhancement`, `feature`, `chore`, `design`, `documentation`, or `finding`) and the closest `area:*` label from `gh label list`.
31
32
  - **Output limits:** Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
32
- - Create via `gh issue create -t <title> -b <body>` and return the URL.
33
+ - Create via `gh issue create -t <title> -b <body> --label <type> --label <area>` and verify the resulting issue has both labels before returning its URL.
@@ -13,13 +13,12 @@ Follow the release process strictly. All work starts on `dev`; `main` is release
13
13
  3. **Bump on `dev`:**
14
14
  - Update `version` in `pyproject.toml`.
15
15
  - Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
16
- - Run `python scripts/generate_docs_reference.py` twice.
16
+ - Run `python scripts/generate_docs_reference.py` once, then verify `python scripts/generate_docs_reference.py --check`.
17
17
  - Commit: `chore(release): vX.Y.Z`.
18
18
  4. **Push `dev`:** Wait for CI green.
19
- 5. **Merge to `main`:** Merge `dev` into `main` and push.
19
+ 5. **Merge to `main`:** Open a `dev` to `main` PR, wait for every required check, and merge it.
20
20
  6. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`.
21
- 7. **Redeploy Docs:** If release worktree exists (`~/prjs/agentdeck-docs-release`), run `./redeploy.sh vX.Y.Z` and verify served output.
22
- 8. **Report:** Return the GitHub release URL.
21
+ 7. **Report:** Return the GitHub release URL.
23
22
 
24
23
  ## Ground Rules
25
24
  - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.