remaind 0.1.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 (932) hide show
  1. remaind-0.1.0/.github/workflows/ci.yml +97 -0
  2. remaind-0.1.0/.github/workflows/release.yml +63 -0
  3. remaind-0.1.0/.gitignore +44 -0
  4. remaind-0.1.0/LICENSE +21 -0
  5. remaind-0.1.0/PKG-INFO +174 -0
  6. remaind-0.1.0/README.md +144 -0
  7. remaind-0.1.0/pyproject.toml +98 -0
  8. remaind-0.1.0/src/remaind/__init__.py +3 -0
  9. remaind-0.1.0/src/remaind/__main__.py +10 -0
  10. remaind-0.1.0/src/remaind/_artifacts.py +53 -0
  11. remaind-0.1.0/src/remaind/_atomic.py +91 -0
  12. remaind-0.1.0/src/remaind/_compaction.py +59 -0
  13. remaind-0.1.0/src/remaind/_compactor.py +158 -0
  14. remaind-0.1.0/src/remaind/_configs.py +21 -0
  15. remaind-0.1.0/src/remaind/_db.py +327 -0
  16. remaind-0.1.0/src/remaind/_events.py +217 -0
  17. remaind-0.1.0/src/remaind/_handover.py +32 -0
  18. remaind-0.1.0/src/remaind/_handover_writer.py +41 -0
  19. remaind-0.1.0/src/remaind/_jsonl.py +32 -0
  20. remaind-0.1.0/src/remaind/_paths.py +109 -0
  21. remaind-0.1.0/src/remaind/_redaction.py +83 -0
  22. remaind-0.1.0/src/remaind/_resume_gate.py +125 -0
  23. remaind-0.1.0/src/remaind/_resume_packet.py +284 -0
  24. remaind-0.1.0/src/remaind/_rollback.py +86 -0
  25. remaind-0.1.0/src/remaind/_schemas.py +39 -0
  26. remaind-0.1.0/src/remaind/_state_writer.py +80 -0
  27. remaind-0.1.0/src/remaind/_templates/CONTRACT.md +113 -0
  28. remaind-0.1.0/src/remaind/_templates/README.md +46 -0
  29. remaind-0.1.0/src/remaind/_templates/active/handover.md +26 -0
  30. remaind-0.1.0/src/remaind/_templates/schemas/event.schema.json +118 -0
  31. remaind-0.1.0/src/remaind/_templates/schemas/memory.schema.json +76 -0
  32. remaind-0.1.0/src/remaind/_templates/schemas/redaction.yaml +29 -0
  33. remaind-0.1.0/src/remaind/_templates/schemas/state.schema.json +102 -0
  34. remaind-0.1.0/src/remaind/_templates/schemas/thresholds.yaml +30 -0
  35. remaind-0.1.0/src/remaind/_templates/schemas/tools.yaml +14 -0
  36. remaind-0.1.0/src/remaind/_templates/schemas/validation.schema.json +39 -0
  37. remaind-0.1.0/src/remaind/_thresholds.py +74 -0
  38. remaind-0.1.0/src/remaind/_timestamps.py +24 -0
  39. remaind-0.1.0/src/remaind/_tokens.py +43 -0
  40. remaind-0.1.0/src/remaind/_ulid.py +60 -0
  41. remaind-0.1.0/src/remaind/_validator.py +165 -0
  42. remaind-0.1.0/src/remaind/cli.py +248 -0
  43. remaind-0.1.0/src/remaind/commands/__init__.py +1 -0
  44. remaind-0.1.0/src/remaind/commands/compact.py +177 -0
  45. remaind-0.1.0/src/remaind/commands/init.py +181 -0
  46. remaind-0.1.0/src/remaind/commands/resume.py +86 -0
  47. remaind-0.1.0/src/remaind/commands/rollback.py +143 -0
  48. remaind-0.1.0/src/remaind/commands/status.py +130 -0
  49. remaind-0.1.0/src/remaind/commands/validate.py +193 -0
  50. remaind-0.1.0/src/remaind/migrations/__init__.py +23 -0
  51. remaind-0.1.0/src/remaind/migrations/adapter.py +60 -0
  52. remaind-0.1.0/src/remaind/migrations/protocol.py +43 -0
  53. remaind-0.1.0/src/remaind/migrations/runner.py +60 -0
  54. remaind-0.1.0/template-archive/.claude/agent-memory/scaffold-init/MEMORY.md +3 -0
  55. remaind-0.1.0/template-archive/.claude/agent-memory/scaffold-init/project_design_system.md +18 -0
  56. remaind-0.1.0/template-archive/.claude/agent-memory/scaffold-wire/MEMORY.md +3 -0
  57. remaind-0.1.0/template-archive/.claude/agent-memory/scaffold-wire/project_wire_complete.md +11 -0
  58. remaind-0.1.0/template-archive/.claude/agent-prompt-footer.md +14 -0
  59. remaind-0.1.0/template-archive/.claude/agents/README.md +71 -0
  60. remaind-0.1.0/template-archive/.claude/agents/accessibility-scanner.md +150 -0
  61. remaind-0.1.0/template-archive/.claude/agents/behavior-verifier.md +337 -0
  62. remaind-0.1.0/template-archive/.claude/agents/build-info-collector.md +83 -0
  63. remaind-0.1.0/template-archive/.claude/agents/design-consistency-checker.md +156 -0
  64. remaind-0.1.0/template-archive/.claude/agents/design-critic.md +438 -0
  65. remaind-0.1.0/template-archive/.claude/agents/design-page-contract.md +94 -0
  66. remaind-0.1.0/template-archive/.claude/agents/gate-keeper.md +368 -0
  67. remaind-0.1.0/template-archive/.claude/agents/implementer.md +109 -0
  68. remaind-0.1.0/template-archive/.claude/agents/observer.md +202 -0
  69. remaind-0.1.0/template-archive/.claude/agents/pattern-classifier.md +304 -0
  70. remaind-0.1.0/template-archive/.claude/agents/performance-reporter.md +206 -0
  71. remaind-0.1.0/template-archive/.claude/agents/provision-scanner.md +111 -0
  72. remaind-0.1.0/template-archive/.claude/agents/quality-fixer.md +183 -0
  73. remaind-0.1.0/template-archive/.claude/agents/resolve-challenger.md +98 -0
  74. remaind-0.1.0/template-archive/.claude/agents/resolve-reviewer.md +187 -0
  75. remaind-0.1.0/template-archive/.claude/agents/review-challenger.md +110 -0
  76. remaind-0.1.0/template-archive/.claude/agents/scaffold-externals.md +93 -0
  77. remaind-0.1.0/template-archive/.claude/agents/scaffold-images.md +205 -0
  78. remaind-0.1.0/template-archive/.claude/agents/scaffold-init.md +105 -0
  79. remaind-0.1.0/template-archive/.claude/agents/scaffold-landing.md +117 -0
  80. remaind-0.1.0/template-archive/.claude/agents/scaffold-libs.md +86 -0
  81. remaind-0.1.0/template-archive/.claude/agents/scaffold-pages.md +172 -0
  82. remaind-0.1.0/template-archive/.claude/agents/scaffold-setup.md +87 -0
  83. remaind-0.1.0/template-archive/.claude/agents/scaffold-wire.md +142 -0
  84. remaind-0.1.0/template-archive/.claude/agents/security-attacker.md +148 -0
  85. remaind-0.1.0/template-archive/.claude/agents/security-defender.md +143 -0
  86. remaind-0.1.0/template-archive/.claude/agents/security-fixer.md +193 -0
  87. remaind-0.1.0/template-archive/.claude/agents/solve-critic.md +267 -0
  88. remaind-0.1.0/template-archive/.claude/agents/spec-reviewer.md +174 -0
  89. remaind-0.1.0/template-archive/.claude/agents/ux-journeyer.md +259 -0
  90. remaind-0.1.0/template-archive/.claude/agents/visual-implementer.md +104 -0
  91. remaind-0.1.0/template-archive/.claude/archetypes/cli.md +87 -0
  92. remaind-0.1.0/template-archive/.claude/archetypes/service.md +82 -0
  93. remaind-0.1.0/template-archive/.claude/archetypes/web-app.md +49 -0
  94. remaind-0.1.0/template-archive/.claude/commands/audit.md +35 -0
  95. remaind-0.1.0/template-archive/.claude/commands/bootstrap.md +48 -0
  96. remaind-0.1.0/template-archive/.claude/commands/change.md +95 -0
  97. remaind-0.1.0/template-archive/.claude/commands/deploy.md +36 -0
  98. remaind-0.1.0/template-archive/.claude/commands/distribute.md +135 -0
  99. remaind-0.1.0/template-archive/.claude/commands/iterate.md +47 -0
  100. remaind-0.1.0/template-archive/.claude/commands/observe.md +30 -0
  101. remaind-0.1.0/template-archive/.claude/commands/optimize-prompt.md +26 -0
  102. remaind-0.1.0/template-archive/.claude/commands/resolve.md +76 -0
  103. remaind-0.1.0/template-archive/.claude/commands/retro.md +31 -0
  104. remaind-0.1.0/template-archive/.claude/commands/review.md +59 -0
  105. remaind-0.1.0/template-archive/.claude/commands/rollback.md +36 -0
  106. remaind-0.1.0/template-archive/.claude/commands/solve.md +59 -0
  107. remaind-0.1.0/template-archive/.claude/commands/spec.md +39 -0
  108. remaind-0.1.0/template-archive/.claude/commands/teardown.md +33 -0
  109. remaind-0.1.0/template-archive/.claude/commands/upgrade.md +34 -0
  110. remaind-0.1.0/template-archive/.claude/commands/verify.md +50 -0
  111. remaind-0.1.0/template-archive/.claude/hooks/adversarial-merge-gate.sh +210 -0
  112. remaind-0.1.0/template-archive/.claude/hooks/agent-trace-write-gate.sh +73 -0
  113. remaind-0.1.0/template-archive/.claude/hooks/agent-trace-write-guard.sh +387 -0
  114. remaind-0.1.0/template-archive/.claude/hooks/artifact-integrity-gate.sh +251 -0
  115. remaind-0.1.0/template-archive/.claude/hooks/bootstrap-phase-a-write-guard.sh +200 -0
  116. remaind-0.1.0/template-archive/.claude/hooks/branch-checkout-propagation-gate.sh +104 -0
  117. remaind-0.1.0/template-archive/.claude/hooks/design-ux-merge-gate.sh +5 -0
  118. remaind-0.1.0/template-archive/.claude/hooks/fix-ledger-write-guard.sh +161 -0
  119. remaind-0.1.0/template-archive/.claude/hooks/gate-artifact-bash-write-guard.sh +171 -0
  120. remaind-0.1.0/template-archive/.claude/hooks/gate-artifact-write-gate.sh +97 -0
  121. remaind-0.1.0/template-archive/.claude/hooks/lead-deliverable-gate.sh +115 -0
  122. remaind-0.1.0/template-archive/.claude/hooks/lib-artifacts.sh +261 -0
  123. remaind-0.1.0/template-archive/.claude/hooks/lib-core.sh +208 -0
  124. remaind-0.1.0/template-archive/.claude/hooks/lib-gate-verdicts.sh +127 -0
  125. remaind-0.1.0/template-archive/.claude/hooks/lib-hard-gate.sh +61 -0
  126. remaind-0.1.0/template-archive/.claude/hooks/lib-merge.sh +153 -0
  127. remaind-0.1.0/template-archive/.claude/hooks/lib-state.sh +366 -0
  128. remaind-0.1.0/template-archive/.claude/hooks/lib-verdict-consistency.sh +90 -0
  129. remaind-0.1.0/template-archive/.claude/hooks/lib-verdict.sh +8 -0
  130. remaind-0.1.0/template-archive/.claude/hooks/lib.sh +16 -0
  131. remaind-0.1.0/template-archive/.claude/hooks/observe-commit-gate.sh +77 -0
  132. remaind-0.1.0/template-archive/.claude/hooks/patterns-saved-gate.sh +103 -0
  133. remaind-0.1.0/template-archive/.claude/hooks/phase-boundary-gate.sh +155 -0
  134. remaind-0.1.0/template-archive/.claude/hooks/resolve-learnings-gate.sh +87 -0
  135. remaind-0.1.0/template-archive/.claude/hooks/retrospective-content-gate.sh +137 -0
  136. remaind-0.1.0/template-archive/.claude/hooks/security-merge-gate.sh +5 -0
  137. remaind-0.1.0/template-archive/.claude/hooks/skill-agent-gate.sh +386 -0
  138. remaind-0.1.0/template-archive/.claude/hooks/skill-commit-gate.sh +88 -0
  139. remaind-0.1.0/template-archive/.claude/hooks/skill-write-gate.sh +43 -0
  140. remaind-0.1.0/template-archive/.claude/hooks/state-completion-gate.sh +557 -0
  141. remaind-0.1.0/template-archive/.claude/hooks/trace-write-guard.sh +163 -0
  142. remaind-0.1.0/template-archive/.claude/hooks/verify-pr-gate.sh +304 -0
  143. remaind-0.1.0/template-archive/.claude/hooks/verify-report-gate.sh +187 -0
  144. remaind-0.1.0/template-archive/.claude/hooks/worktree-boundary-gate.sh +114 -0
  145. remaind-0.1.0/template-archive/.claude/patterns/adversarial-merge-trace-skip.json +18 -0
  146. remaind-0.1.0/template-archive/.claude/patterns/agent-output-contract.md +524 -0
  147. remaind-0.1.0/template-archive/.claude/patterns/agent-registry.json +350 -0
  148. remaind-0.1.0/template-archive/.claude/patterns/agent-trace-protocol.md +207 -0
  149. remaind-0.1.0/template-archive/.claude/patterns/analytics-verification.md +31 -0
  150. remaind-0.1.0/template-archive/.claude/patterns/archetype-behavior-check.md +463 -0
  151. remaind-0.1.0/template-archive/.claude/patterns/audit-logging.md +69 -0
  152. remaind-0.1.0/template-archive/.claude/patterns/audit-verb-registry.json +37 -0
  153. remaind-0.1.0/template-archive/.claude/patterns/auto-merge.md +192 -0
  154. remaind-0.1.0/template-archive/.claude/patterns/bound-target-write-guard.md +307 -0
  155. remaind-0.1.0/template-archive/.claude/patterns/branch-cleanup-error-template.md +49 -0
  156. remaind-0.1.0/template-archive/.claude/patterns/branch.md +104 -0
  157. remaind-0.1.0/template-archive/.claude/patterns/checkpoint-resumption.md +57 -0
  158. remaind-0.1.0/template-archive/.claude/patterns/chrome-mcp-setup-guide.md +66 -0
  159. remaind-0.1.0/template-archive/.claude/patterns/coherence-rule-schema.json +497 -0
  160. remaind-0.1.0/template-archive/.claude/patterns/context-init.md +66 -0
  161. remaind-0.1.0/template-archive/.claude/patterns/convergence-config.json +8 -0
  162. remaind-0.1.0/template-archive/.claude/patterns/cross-reference-style.md +129 -0
  163. remaind-0.1.0/template-archive/.claude/patterns/debugging-guide.md +30 -0
  164. remaind-0.1.0/template-archive/.claude/patterns/demo-server-startup.md +51 -0
  165. remaind-0.1.0/template-archive/.claude/patterns/design.md +293 -0
  166. remaind-0.1.0/template-archive/.claude/patterns/earc.md +171 -0
  167. remaind-0.1.0/template-archive/.claude/patterns/finalize-epilogue.md +38 -0
  168. remaind-0.1.0/template-archive/.claude/patterns/gate-artifact-ordering.md +70 -0
  169. remaind-0.1.0/template-archive/.claude/patterns/gate-inventory.json +583 -0
  170. remaind-0.1.0/template-archive/.claude/patterns/gate-readable-artifacts-canonical.json +1386 -0
  171. remaind-0.1.0/template-archive/.claude/patterns/gate-readable-artifacts-pending-review.json +510 -0
  172. remaind-0.1.0/template-archive/.claude/patterns/gate-readable-canonical-exemptions.json +11 -0
  173. remaind-0.1.0/template-archive/.claude/patterns/given-auth-matcher.md +187 -0
  174. remaind-0.1.0/template-archive/.claude/patterns/incident-response.md +88 -0
  175. remaind-0.1.0/template-archive/.claude/patterns/iterate-cross-debug-prompts.md +57 -0
  176. remaind-0.1.0/template-archive/.claude/patterns/lead-only-artifacts.json +21 -0
  177. remaind-0.1.0/template-archive/.claude/patterns/messaging.md +177 -0
  178. remaind-0.1.0/template-archive/.claude/patterns/observation-phase.md +796 -0
  179. remaind-0.1.0/template-archive/.claude/patterns/observe.md +261 -0
  180. remaind-0.1.0/template-archive/.claude/patterns/on-touch-check.md +50 -0
  181. remaind-0.1.0/template-archive/.claude/patterns/provenance.md +198 -0
  182. remaind-0.1.0/template-archive/.claude/patterns/q-score.md +172 -0
  183. remaind-0.1.0/template-archive/.claude/patterns/read-context.md +23 -0
  184. remaind-0.1.0/template-archive/.claude/patterns/recovery.md +75 -0
  185. remaind-0.1.0/template-archive/.claude/patterns/remediation-phase.md +184 -0
  186. remaind-0.1.0/template-archive/.claude/patterns/render-review-detection.md +477 -0
  187. remaind-0.1.0/template-archive/.claude/patterns/resolve-tier-floors.yaml +94 -0
  188. remaind-0.1.0/template-archive/.claude/patterns/review-verdict-gate.md +188 -0
  189. remaind-0.1.0/template-archive/.claude/patterns/sanctioned-respawn-flows.json +130 -0
  190. remaind-0.1.0/template-archive/.claude/patterns/scaffold-images-spec.json +88 -0
  191. remaind-0.1.0/template-archive/.claude/patterns/security-review.md +197 -0
  192. remaind-0.1.0/template-archive/.claude/patterns/silent-failure-prevention.md +84 -0
  193. remaind-0.1.0/template-archive/.claude/patterns/skill-coverage-map.md +102 -0
  194. remaind-0.1.0/template-archive/.claude/patterns/skill-epilogue.md +128 -0
  195. remaind-0.1.0/template-archive/.claude/patterns/skill-scoring.md +32 -0
  196. remaind-0.1.0/template-archive/.claude/patterns/solve-reasoning.md +537 -0
  197. remaind-0.1.0/template-archive/.claude/patterns/spec-reasoning.md +178 -0
  198. remaind-0.1.0/template-archive/.claude/patterns/stack-dependency-validation.md +46 -0
  199. remaind-0.1.0/template-archive/.claude/patterns/stack-promotion.md +61 -0
  200. remaind-0.1.0/template-archive/.claude/patterns/state-99-epilogue.md +193 -0
  201. remaind-0.1.0/template-archive/.claude/patterns/state-completion-gate.md +79 -0
  202. remaind-0.1.0/template-archive/.claude/patterns/state-registry.json +680 -0
  203. remaind-0.1.0/template-archive/.claude/patterns/step55-evidence-rollout.md +330 -0
  204. remaind-0.1.0/template-archive/.claude/patterns/systematic-debugging.md +92 -0
  205. remaind-0.1.0/template-archive/.claude/patterns/tdd.md +142 -0
  206. remaind-0.1.0/template-archive/.claude/patterns/template-coherence-rules.json +623 -0
  207. remaind-0.1.0/template-archive/.claude/patterns/verify-report-frontmatter.json +95 -0
  208. remaind-0.1.0/template-archive/.claude/patterns/verify.md +334 -0
  209. remaind-0.1.0/template-archive/.claude/patterns/visual-review.md +63 -0
  210. remaind-0.1.0/template-archive/.claude/patterns/write-guard-hooks.json +30 -0
  211. remaind-0.1.0/template-archive/.claude/procedures/accessibility-scanner.md +202 -0
  212. remaind-0.1.0/template-archive/.claude/procedures/behavior-verifier.md +293 -0
  213. remaind-0.1.0/template-archive/.claude/procedures/change-feature.md +98 -0
  214. remaind-0.1.0/template-archive/.claude/procedures/change-fix.md +25 -0
  215. remaind-0.1.0/template-archive/.claude/procedures/change-plans.md +268 -0
  216. remaind-0.1.0/template-archive/.claude/procedures/change-test.md +41 -0
  217. remaind-0.1.0/template-archive/.claude/procedures/change-upgrade.md +34 -0
  218. remaind-0.1.0/template-archive/.claude/procedures/design-consistency-checker.md +130 -0
  219. remaind-0.1.0/template-archive/.claude/procedures/design-critic.md +399 -0
  220. remaind-0.1.0/template-archive/.claude/procedures/gate-execution.md +81 -0
  221. remaind-0.1.0/template-archive/.claude/procedures/google-ads-setup.md +107 -0
  222. remaind-0.1.0/template-archive/.claude/procedures/plan-exploration.md +132 -0
  223. remaind-0.1.0/template-archive/.claude/procedures/plan-validation.md +90 -0
  224. remaind-0.1.0/template-archive/.claude/procedures/scaffold-externals.md +161 -0
  225. remaind-0.1.0/template-archive/.claude/procedures/scaffold-images.md +433 -0
  226. remaind-0.1.0/template-archive/.claude/procedures/scaffold-init.md +208 -0
  227. remaind-0.1.0/template-archive/.claude/procedures/scaffold-landing.md +141 -0
  228. remaind-0.1.0/template-archive/.claude/procedures/scaffold-libs.md +84 -0
  229. remaind-0.1.0/template-archive/.claude/procedures/scaffold-pages.md +217 -0
  230. remaind-0.1.0/template-archive/.claude/procedures/scaffold-setup.md +18 -0
  231. remaind-0.1.0/template-archive/.claude/procedures/tdd-cycle.md +58 -0
  232. remaind-0.1.0/template-archive/.claude/procedures/tdd-task-generation.md +60 -0
  233. remaind-0.1.0/template-archive/.claude/procedures/ux-journeyer.md +153 -0
  234. remaind-0.1.0/template-archive/.claude/procedures/wire.md +329 -0
  235. remaind-0.1.0/template-archive/.claude/procedures/worktree-merge-verification.md +30 -0
  236. remaind-0.1.0/template-archive/.claude/scripts/advance-state.sh +84 -0
  237. remaind-0.1.0/template-archive/.claude/scripts/agent-gate-check.py +120 -0
  238. remaind-0.1.0/template-archive/.claude/scripts/aggregate-hook-friction.py +314 -0
  239. remaind-0.1.0/template-archive/.claude/scripts/append-hook-friction.py +96 -0
  240. remaind-0.1.0/template-archive/.claude/scripts/archive-gate-verdict.sh +27 -0
  241. remaind-0.1.0/template-archive/.claude/scripts/audit-lead-deliverable-references.sh +99 -0
  242. remaind-0.1.0/template-archive/.claude/scripts/audit-sample.py +132 -0
  243. remaind-0.1.0/template-archive/.claude/scripts/augment-trace.py +402 -0
  244. remaind-0.1.0/template-archive/.claude/scripts/check-1257-attestation.py +126 -0
  245. remaind-0.1.0/template-archive/.claude/scripts/check-artifact-presence.py +183 -0
  246. remaind-0.1.0/template-archive/.claude/scripts/check-cross-artifact-consistency.py +233 -0
  247. remaind-0.1.0/template-archive/.claude/scripts/check-design-critic-sanctioned.py +73 -0
  248. remaind-0.1.0/template-archive/.claude/scripts/check-init-context-callers.sh +85 -0
  249. remaind-0.1.0/template-archive/.claude/scripts/check-observation-artifacts.sh +438 -0
  250. remaind-0.1.0/template-archive/.claude/scripts/check-slot-intent-drift.py +255 -0
  251. remaind-0.1.0/template-archive/.claude/scripts/check-worktree-boundary-hook-registered.py +82 -0
  252. remaind-0.1.0/template-archive/.claude/scripts/check-worktree-ownership-pattern.py +102 -0
  253. remaind-0.1.0/template-archive/.claude/scripts/codemod-canonical-writer-audit.py +385 -0
  254. remaind-0.1.0/template-archive/.claude/scripts/codemod-canonical-writer.py +629 -0
  255. remaind-0.1.0/template-archive/.claude/scripts/compliance-audit.py +877 -0
  256. remaind-0.1.0/template-archive/.claude/scripts/convergence-report.py +135 -0
  257. remaind-0.1.0/template-archive/.claude/scripts/derive-graim-manifest.py +570 -0
  258. remaind-0.1.0/template-archive/.claude/scripts/detect-trace-overwrites.py +195 -0
  259. remaind-0.1.0/template-archive/.claude/scripts/ensure-supabase-start.sh +185 -0
  260. remaind-0.1.0/template-archive/.claude/scripts/enumerate-pending-retrospective-findings.py +305 -0
  261. remaind-0.1.0/template-archive/.claude/scripts/evaluate-hard-gate-predicates.py +285 -0
  262. remaind-0.1.0/template-archive/.claude/scripts/file-retrospective-finding.py +230 -0
  263. remaind-0.1.0/template-archive/.claude/scripts/init-context.sh +147 -0
  264. remaind-0.1.0/template-archive/.claude/scripts/lib/README.md +821 -0
  265. remaind-0.1.0/template-archive/.claude/scripts/lib/__init__.py +0 -0
  266. remaind-0.1.0/template-archive/.claude/scripts/lib/auth_routing.py +165 -0
  267. remaind-0.1.0/template-archive/.claude/scripts/lib/behavior_contract_auditor.py +732 -0
  268. remaind-0.1.0/template-archive/.claude/scripts/lib/behavior_contract_builder.py +238 -0
  269. remaind-0.1.0/template-archive/.claude/scripts/lib/canonicalize_bash_command.py +140 -0
  270. remaind-0.1.0/template-archive/.claude/scripts/lib/check-advance-state-invocation.py +136 -0
  271. remaind-0.1.0/template-archive/.claude/scripts/lib/check-archetype-canonical.py +228 -0
  272. remaind-0.1.0/template-archive/.claude/scripts/lib/clean-stale-worktrees.sh +30 -0
  273. remaind-0.1.0/template-archive/.claude/scripts/lib/concern_id.py +39 -0
  274. remaind-0.1.0/template-archive/.claude/scripts/lib/consistency_dom_extract.js +109 -0
  275. remaind-0.1.0/template-archive/.claude/scripts/lib/decompose-bash-chain.py +89 -0
  276. remaind-0.1.0/template-archive/.claude/scripts/lib/derive_pages.py +828 -0
  277. remaind-0.1.0/template-archive/.claude/scripts/lib/derive_slot_intent.py +437 -0
  278. remaind-0.1.0/template-archive/.claude/scripts/lib/design_critic_trace_selector.py +157 -0
  279. remaind-0.1.0/template-archive/.claude/scripts/lib/dossier_builder.py +295 -0
  280. remaind-0.1.0/template-archive/.claude/scripts/lib/dossier_verify.py +93 -0
  281. remaind-0.1.0/template-archive/.claude/scripts/lib/emit-sitemap.py +147 -0
  282. remaind-0.1.0/template-archive/.claude/scripts/lib/gclid_filter.py +52 -0
  283. remaind-0.1.0/template-archive/.claude/scripts/lib/in-worktree.sh +19 -0
  284. remaind-0.1.0/template-archive/.claude/scripts/lib/iterate_cross_classify.py +787 -0
  285. remaind-0.1.0/template-archive/.claude/scripts/lib/iterate_cross_ga.py +481 -0
  286. remaind-0.1.0/template-archive/.claude/scripts/lib/iterate_cross_verdicts.py +369 -0
  287. remaind-0.1.0/template-archive/.claude/scripts/lib/linter/README.md +136 -0
  288. remaind-0.1.0/template-archive/.claude/scripts/lib/linter/__init__.py +0 -0
  289. remaind-0.1.0/template-archive/.claude/scripts/lib/linter/cli.py +13 -0
  290. remaind-0.1.0/template-archive/.claude/scripts/lib/linter/cross_file/__init__.py +0 -0
  291. remaind-0.1.0/template-archive/.claude/scripts/lib/linter/runner.py +4324 -0
  292. remaind-0.1.0/template-archive/.claude/scripts/lib/observer_evidence_families.py +89 -0
  293. remaind-0.1.0/template-archive/.claude/scripts/lib/phash.py +271 -0
  294. remaind-0.1.0/template-archive/.claude/scripts/lib/recurrence_guard_parser.py +314 -0
  295. remaind-0.1.0/template-archive/.claude/scripts/lib/render_context.py +332 -0
  296. remaind-0.1.0/template-archive/.claude/scripts/lib/schema_version_gate.py +142 -0
  297. remaind-0.1.0/template-archive/.claude/scripts/lib/slot_intent_schema.py +221 -0
  298. remaind-0.1.0/template-archive/.claude/scripts/lib/source_identity_validator.py +338 -0
  299. remaind-0.1.0/template-archive/.claude/scripts/lib/source_identity_validator.sh +34 -0
  300. remaind-0.1.0/template-archive/.claude/scripts/lib/stack_knowledge_audit.py +633 -0
  301. remaind-0.1.0/template-archive/.claude/scripts/lib/symptom_canonicalizer.py +68 -0
  302. remaind-0.1.0/template-archive/.claude/scripts/lib/test_decompose_bash_chain.py +156 -0
  303. remaind-0.1.0/template-archive/.claude/scripts/lib/validate_evidence.py +246 -0
  304. remaind-0.1.0/template-archive/.claude/scripts/lib/validate_experiment_yaml.py +174 -0
  305. remaind-0.1.0/template-archive/.claude/scripts/lib/verify_helpers.py +86 -0
  306. remaind-0.1.0/template-archive/.claude/scripts/lib/write-gate-artifact.sh +119 -0
  307. remaind-0.1.0/template-archive/.claude/scripts/lifecycle-finalize.sh +766 -0
  308. remaind-0.1.0/template-archive/.claude/scripts/lifecycle-init.sh +554 -0
  309. remaind-0.1.0/template-archive/.claude/scripts/lifecycle-lib.sh +89 -0
  310. remaind-0.1.0/template-archive/.claude/scripts/lifecycle-next.sh +228 -0
  311. remaind-0.1.0/template-archive/.claude/scripts/lifecycle-worktree-sync.sh +28 -0
  312. remaind-0.1.0/template-archive/.claude/scripts/merge-design-consistency-checker-traces.py +214 -0
  313. remaind-0.1.0/template-archive/.claude/scripts/merge-design-critic-traces.py +423 -0
  314. remaind-0.1.0/template-archive/.claude/scripts/merge-scaffold-pages-traces.py +221 -0
  315. remaind-0.1.0/template-archive/.claude/scripts/migrate-experiment-yaml.py +141 -0
  316. remaind-0.1.0/template-archive/.claude/scripts/migrate-image-candidates-v2.py +91 -0
  317. remaind-0.1.0/template-archive/.claude/scripts/migrate-legacy-traces.py +551 -0
  318. remaind-0.1.0/template-archive/.claude/scripts/migrate-slot-intent.py +213 -0
  319. remaind-0.1.0/template-archive/.claude/scripts/migrate-state-registry-lifecycle.py +227 -0
  320. remaind-0.1.0/template-archive/.claude/scripts/phase-gate.py +174 -0
  321. remaind-0.1.0/template-archive/.claude/scripts/recurrence-detector.py +492 -0
  322. remaind-0.1.0/template-archive/.claude/scripts/refine-analysis.py +359 -0
  323. remaind-0.1.0/template-archive/.claude/scripts/render-fix-log.py +124 -0
  324. remaind-0.1.0/template-archive/.claude/scripts/reset-state.sh +104 -0
  325. remaind-0.1.0/template-archive/.claude/scripts/resolve-causal-analyzer.py +557 -0
  326. remaind-0.1.0/template-archive/.claude/scripts/resolve-snippet-precheck.py +216 -0
  327. remaind-0.1.0/template-archive/.claude/scripts/resolve-tier-floors.py +336 -0
  328. remaind-0.1.0/template-archive/.claude/scripts/run-consistency-static-prepass.py +353 -0
  329. remaind-0.1.0/template-archive/.claude/scripts/run-review-verdict-gate.py +184 -0
  330. remaind-0.1.0/template-archive/.claude/scripts/scan-template-edits.sh +129 -0
  331. remaind-0.1.0/template-archive/.claude/scripts/stack-knowledge-audit.sh +45 -0
  332. remaind-0.1.0/template-archive/.claude/scripts/stop-transient-services.sh +263 -0
  333. remaind-0.1.0/template-archive/.claude/scripts/sync-verify-to-state-files.sh +126 -0
  334. remaind-0.1.0/template-archive/.claude/scripts/synthetic-regression-injection.sh +213 -0
  335. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/01-s2-mechanical/expected.md +21 -0
  336. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/01-s2-mechanical/input.md +17 -0
  337. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/02-s1-mechanical/expected.md +15 -0
  338. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/02-s1-mechanical/input.md +12 -0
  339. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/03-bash-interpolated-refused/expected.md +10 -0
  340. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/03-bash-interpolated-refused/input.md +10 -0
  341. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/04-multi-write-refused/expected.md +12 -0
  342. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/04-multi-write-refused/input.md +12 -0
  343. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/05-verify-section-refused/expected.md +9 -0
  344. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/05-verify-section-refused/input.md +9 -0
  345. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/06-already-migrated/expected.md +13 -0
  346. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/06-already-migrated/input.md +13 -0
  347. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/07-non-manifest-path-untouched/expected.md +9 -0
  348. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/07-non-manifest-path-untouched/input.md +9 -0
  349. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/08-multiline-payload-with-function-call/expected.md +18 -0
  350. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/codemod-canonical-writer/08-multiline-payload-with-function-call/input.md +14 -0
  351. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/ga-ads-row-snapshot.json +15 -0
  352. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/issue-1387-repro/experiment.yaml +60 -0
  353. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_baseline/baseline_default.json +14 -0
  354. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_baseline/baseline_strict.json +14 -0
  355. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_baseline/baseline_warn.json +14 -0
  356. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/branch_checkout_propagation_clean/files/.claude/skills/test/state-0-branch.md +13 -0
  357. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/branch_checkout_propagation_clean/rules.json +13 -0
  358. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/branch_checkout_propagation_violation/files/.claude/skills/test/state-0-branch.md +12 -0
  359. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/branch_checkout_propagation_violation/rules.json +13 -0
  360. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/clean_no_findings/rules.json +3 -0
  361. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/consumer_coverage_miss/files/.claude/agents/stale-consumer.md +6 -0
  362. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/consumer_coverage_miss/rules.json +11 -0
  363. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/discover_consumers_drift/files/.claude/agents/declared-consumer.md +7 -0
  364. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/discover_consumers_drift/files/.claude/agents/undeclared-consumer.md +9 -0
  365. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/discover_consumers_drift/rules.json +21 -0
  366. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/field_role_map_violation/files/.claude/agents/test-consumer.md +9 -0
  367. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/field_role_map_violation/rules.json +12 -0
  368. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_clean/files/.claude/patterns/gate-readable-canonical-exemptions.json +10 -0
  369. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_clean/registry.json +1 -0
  370. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_clean/rules.json +17 -0
  371. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_violation/files/.claude/patterns/gate-readable-canonical-exemptions.json +9 -0
  372. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_violation/registry.json +1 -0
  373. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_bypass_manifest_completeness_violation/rules.json +17 -0
  374. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_clean/files/.claude/hooks/synthetic-hook-frictioned.sh +7 -0
  375. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_clean/files/.claude/hooks/synthetic-hook-pragma.sh +10 -0
  376. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_clean/registry.json +1 -0
  377. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_clean/rules.json +15 -0
  378. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_violation/files/.claude/hooks/synthetic-hook.sh +25 -0
  379. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_violation/registry.json +1 -0
  380. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/hook_silent_skip_friction_pairing_violation/rules.json +15 -0
  381. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_clean/files/.claude/skills/test/state-5-foo.md +19 -0
  382. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_clean/registry.json +8 -0
  383. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_clean/rules.json +11 -0
  384. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_violation/files/.claude/skills/test/state-5-foo.md +15 -0
  385. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_violation/registry.json +8 -0
  386. remaind-0.1.0/template-archive/.claude/scripts/tests/fixtures/linter_synthetic/state_defer_verify_pairing_violation/rules.json +11 -0
  387. remaind-0.1.0/template-archive/.claude/scripts/tests/integration/test_verify_stage3_demo_mode.sh +322 -0
  388. remaind-0.1.0/template-archive/.claude/scripts/tests/no-pii-in-fakedoor-track-call.sh +73 -0
  389. remaind-0.1.0/template-archive/.claude/scripts/tests/run-all.sh +96 -0
  390. remaind-0.1.0/template-archive/.claude/scripts/tests/test_agent_trace_write_gate.py +143 -0
  391. remaind-0.1.0/template-archive/.claude/scripts/tests/test_agent_trace_write_guard.py +414 -0
  392. remaind-0.1.0/template-archive/.claude/scripts/tests/test_aggregate_ok_dedup.py +186 -0
  393. remaind-0.1.0/template-archive/.claude/scripts/tests/test_aoc_coherence_rules.py +713 -0
  394. remaind-0.1.0/template-archive/.claude/scripts/tests/test_archetype_short_circuit.py +92 -0
  395. remaind-0.1.0/template-archive/.claude/scripts/tests/test_augment_trace.py +255 -0
  396. remaind-0.1.0/template-archive/.claude/scripts/tests/test_auth_paths_drift.py +184 -0
  397. remaind-0.1.0/template-archive/.claude/scripts/tests/test_auth_routing.py +240 -0
  398. remaind-0.1.0/template-archive/.claude/scripts/tests/test_auth_stack_frontmatter_schema.py +116 -0
  399. remaind-0.1.0/template-archive/.claude/scripts/tests/test_bash_hook_blockquote_precision.py +216 -0
  400. remaind-0.1.0/template-archive/.claude/scripts/tests/test_bash_hook_write_operator_binding.py +374 -0
  401. remaind-0.1.0/template-archive/.claude/scripts/tests/test_behavior_contract_auditor.py +338 -0
  402. remaind-0.1.0/template-archive/.claude/scripts/tests/test_behavior_contract_builder.py +184 -0
  403. remaind-0.1.0/template-archive/.claude/scripts/tests/test_behavior_verifier_auth_semantics.py +293 -0
  404. remaind-0.1.0/template-archive/.claude/scripts/tests/test_canonicalize_bash_command.py +189 -0
  405. remaind-0.1.0/template-archive/.claude/scripts/tests/test_check_advance_state_invocation.py +134 -0
  406. remaind-0.1.0/template-archive/.claude/scripts/tests/test_check_init_context_callers.py +196 -0
  407. remaind-0.1.0/template-archive/.claude/scripts/tests/test_codemod_canonical_writer.py +220 -0
  408. remaind-0.1.0/template-archive/.claude/scripts/tests/test_codemod_canonical_writer_audit.py +502 -0
  409. remaind-0.1.0/template-archive/.claude/scripts/tests/test_coherence_rule_claim_must_cite_rule_id.py +220 -0
  410. remaind-0.1.0/template-archive/.claude/scripts/tests/test_command_head_match.py +186 -0
  411. remaind-0.1.0/template-archive/.claude/scripts/tests/test_concern_id_stability.py +65 -0
  412. remaind-0.1.0/template-archive/.claude/scripts/tests/test_consistency_attestation.py +165 -0
  413. remaind-0.1.0/template-archive/.claude/scripts/tests/test_consistency_merger.py +347 -0
  414. remaind-0.1.0/template-archive/.claude/scripts/tests/test_consistency_prepass.py +291 -0
  415. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_og_photo_default.py +110 -0
  416. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_page_images.py +377 -0
  417. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_pages.py +260 -0
  418. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_pages_design_critic_subcommand.py +125 -0
  419. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_runtime_gate.py +122 -0
  420. remaind-0.1.0/template-archive/.claude/scripts/tests/test_derive_slot_intent_decision_table.py +224 -0
  421. remaind-0.1.0/template-archive/.claude/scripts/tests/test_design_agents_orchestration.py +612 -0
  422. remaind-0.1.0/template-archive/.claude/scripts/tests/test_design_critic_trace_selector.py +191 -0
  423. remaind-0.1.0/template-archive/.claude/scripts/tests/test_design_slots_override.py +123 -0
  424. remaind-0.1.0/template-archive/.claude/scripts/tests/test_detect_skill_for_branch.py +167 -0
  425. remaind-0.1.0/template-archive/.claude/scripts/tests/test_dossier_builder.py +192 -0
  426. remaind-0.1.0/template-archive/.claude/scripts/tests/test_dossier_verify.py +117 -0
  427. remaind-0.1.0/template-archive/.claude/scripts/tests/test_drift_boundary_skip.py +94 -0
  428. remaind-0.1.0/template-archive/.claude/scripts/tests/test_drift_detection_asymmetric.py +274 -0
  429. remaind-0.1.0/template-archive/.claude/scripts/tests/test_drift_null_unresolved.py +150 -0
  430. remaind-0.1.0/template-archive/.claude/scripts/tests/test_dynamic_public_pages.py +142 -0
  431. remaind-0.1.0/template-archive/.claude/scripts/tests/test_emit_sitemap.py +104 -0
  432. remaind-0.1.0/template-archive/.claude/scripts/tests/test_evaluate_hard_gate_predicates.py +498 -0
  433. remaind-0.1.0/template-archive/.claude/scripts/tests/test_field_role_map_rule.py +495 -0
  434. remaind-0.1.0/template-archive/.claude/scripts/tests/test_fix_ledger_write_guard.py +185 -0
  435. remaind-0.1.0/template-archive/.claude/scripts/tests/test_forgery_surface.py +125 -0
  436. remaind-0.1.0/template-archive/.claude/scripts/tests/test_frontmatter_coherence.py +232 -0
  437. remaind-0.1.0/template-archive/.claude/scripts/tests/test_gate_artifact_bash_write_guard.py +204 -0
  438. remaind-0.1.0/template-archive/.claude/scripts/tests/test_gate_artifact_writer_enforcement.py +399 -0
  439. remaind-0.1.0/template-archive/.claude/scripts/tests/test_gclid_filter.py +107 -0
  440. remaind-0.1.0/template-archive/.claude/scripts/tests/test_given_auth_matcher.py +234 -0
  441. remaind-0.1.0/template-archive/.claude/scripts/tests/test_hard_gate_predicates.py +528 -0
  442. remaind-0.1.0/template-archive/.claude/scripts/tests/test_iterate_cross_classify.py +639 -0
  443. remaind-0.1.0/template-archive/.claude/scripts/tests/test_iterate_cross_ga.py +528 -0
  444. remaind-0.1.0/template-archive/.claude/scripts/tests/test_iterate_cross_verdicts.py +590 -0
  445. remaind-0.1.0/template-archive/.claude/scripts/tests/test_lead_fix_path.py +245 -0
  446. remaind-0.1.0/template-archive/.claude/scripts/tests/test_lib_helper_stack_knowledge_required.py +451 -0
  447. remaind-0.1.0/template-archive/.claude/scripts/tests/test_lifecycle_finalize_lead_orchestrated_lineage.py +127 -0
  448. remaind-0.1.0/template-archive/.claude/scripts/tests/test_lifecycle_finalize_post_fix_respawn.py +171 -0
  449. remaind-0.1.0/template-archive/.claude/scripts/tests/test_lifecycle_init_mode_promotion.py +256 -0
  450. remaind-0.1.0/template-archive/.claude/scripts/tests/test_linter_parity.py +323 -0
  451. remaind-0.1.0/template-archive/.claude/scripts/tests/test_linter_validation.py +264 -0
  452. remaind-0.1.0/template-archive/.claude/scripts/tests/test_markdown_cross_file_line_reference.py +222 -0
  453. remaind-0.1.0/template-archive/.claude/scripts/tests/test_merge_mvp_aliases.py +257 -0
  454. remaind-0.1.0/template-archive/.claude/scripts/tests/test_merge_provenance_branch.py +346 -0
  455. remaind-0.1.0/template-archive/.claude/scripts/tests/test_merge_scaffold_pages_recommendations.py +215 -0
  456. remaind-0.1.0/template-archive/.claude/scripts/tests/test_migrate_image_candidates_v2.py +140 -0
  457. remaind-0.1.0/template-archive/.claude/scripts/tests/test_migrate_legacy_traces.py +221 -0
  458. remaind-0.1.0/template-archive/.claude/scripts/tests/test_migrate_slot_intent_suggestions.py +236 -0
  459. remaind-0.1.0/template-archive/.claude/scripts/tests/test_no_observation_enforcement_writers_outside_canonical.sh +42 -0
  460. remaind-0.1.0/template-archive/.claude/scripts/tests/test_observation_evidence_envelope.sh +115 -0
  461. remaind-0.1.0/template-archive/.claude/scripts/tests/test_pages_no_payload_type_exports.py +202 -0
  462. remaind-0.1.0/template-archive/.claude/scripts/tests/test_phase_a_forgery_surface.py +614 -0
  463. remaind-0.1.0/template-archive/.claude/scripts/tests/test_post_completion_respawn_doc_lint.py +198 -0
  464. remaind-0.1.0/template-archive/.claude/scripts/tests/test_provenance_rules.py +278 -0
  465. remaind-0.1.0/template-archive/.claude/scripts/tests/test_recovery_run_id_override.py +243 -0
  466. remaind-0.1.0/template-archive/.claude/scripts/tests/test_recurrence_detector.py +335 -0
  467. remaind-0.1.0/template-archive/.claude/scripts/tests/test_recurrence_guard_parser.py +363 -0
  468. remaind-0.1.0/template-archive/.claude/scripts/tests/test_render_context.py +210 -0
  469. remaind-0.1.0/template-archive/.claude/scripts/tests/test_render_review_demo_404.py +160 -0
  470. remaind-0.1.0/template-archive/.claude/scripts/tests/test_render_review_detection.py +445 -0
  471. remaind-0.1.0/template-archive/.claude/scripts/tests/test_render_review_detection_integration.py +262 -0
  472. remaind-0.1.0/template-archive/.claude/scripts/tests/test_resolve_active_identity.py +158 -0
  473. remaind-0.1.0/template-archive/.claude/scripts/tests/test_resolve_reviewer.py +139 -0
  474. remaind-0.1.0/template-archive/.claude/scripts/tests/test_review_verdict_gate.py +269 -0
  475. remaind-0.1.0/template-archive/.claude/scripts/tests/test_review_verdict_gate_policy_drift.py +196 -0
  476. remaind-0.1.0/template-archive/.claude/scripts/tests/test_sanctioned_respawn_flows.py +115 -0
  477. remaind-0.1.0/template-archive/.claude/scripts/tests/test_scaffold_init_writes_slot_intent.py +288 -0
  478. remaind-0.1.0/template-archive/.claude/scripts/tests/test_skill_agent_gate_post_completion_integration.py +278 -0
  479. remaind-0.1.0/template-archive/.claude/scripts/tests/test_skipped_fixer_trace.sh +167 -0
  480. remaind-0.1.0/template-archive/.claude/scripts/tests/test_slice_5b_registry_sweep_walker.sh +62 -0
  481. remaind-0.1.0/template-archive/.claude/scripts/tests/test_slot_intent_schema.py +228 -0
  482. remaind-0.1.0/template-archive/.claude/scripts/tests/test_source_identity_validator_hook.py +239 -0
  483. remaind-0.1.0/template-archive/.claude/scripts/tests/test_state3b_review_method_merge.py +226 -0
  484. remaind-0.1.0/template-archive/.claude/scripts/tests/test_state_11_build_self_check.py +125 -0
  485. remaind-0.1.0/template-archive/.claude/scripts/tests/test_state_11a_dynamic_ic.py +197 -0
  486. remaind-0.1.0/template-archive/.claude/scripts/tests/test_state_3b_verify_partition.py +162 -0
  487. remaind-0.1.0/template-archive/.claude/scripts/tests/test_state_registry_7b.py +214 -0
  488. remaind-0.1.0/template-archive/.claude/scripts/tests/test_subsys_c_drift.py +226 -0
  489. remaind-0.1.0/template-archive/.claude/scripts/tests/test_trace_schema.py +387 -0
  490. remaind-0.1.0/template-archive/.claude/scripts/tests/test_trace_write_guard.py +317 -0
  491. remaind-0.1.0/template-archive/.claude/scripts/tests/test_transient_teardown.py +454 -0
  492. remaind-0.1.0/template-archive/.claude/scripts/tests/test_ux_journeyer_click_vs_goto.py +189 -0
  493. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validate_behavior_pages.py +305 -0
  494. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validate_evidence_lib.py +314 -0
  495. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validate_experiment_yaml.py +126 -0
  496. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validate_recovery.py +421 -0
  497. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validator_integration_threshold.py +294 -0
  498. remaind-0.1.0/template-archive/.claude/scripts/tests/test_validators_meta.py +1002 -0
  499. remaind-0.1.0/template-archive/.claude/scripts/tests/test_verify_rmg_guard_artifact.py +222 -0
  500. remaind-0.1.0/template-archive/.claude/scripts/tests/test_verify_semantics.py +269 -0
  501. remaind-0.1.0/template-archive/.claude/scripts/tests/test_worktree_boundary_gate.py +286 -0
  502. remaind-0.1.0/template-archive/.claude/scripts/tests/test_write_agent_trace.py +342 -0
  503. remaind-0.1.0/template-archive/.claude/scripts/tests/test_write_recovery.py +204 -0
  504. remaind-0.1.0/template-archive/.claude/scripts/tests/test_write_recovery_trace_with_fixes.py +336 -0
  505. remaind-0.1.0/template-archive/.claude/scripts/tests/test_writer_help_smoke.sh +66 -0
  506. remaind-0.1.0/template-archive/.claude/scripts/tests/test_writer_identity_override.sh +125 -0
  507. remaind-0.1.0/template-archive/.claude/scripts/tests/test_writer_validation_matrix.sh +150 -0
  508. remaind-0.1.0/template-archive/.claude/scripts/update-context-branch.sh +173 -0
  509. remaind-0.1.0/template-archive/.claude/scripts/validate-behavior-pages.py +215 -0
  510. remaind-0.1.0/template-archive/.claude/scripts/validate-image-spec-compliance.py +256 -0
  511. remaind-0.1.0/template-archive/.claude/scripts/validate-observer-evidence-coverage.py +167 -0
  512. remaind-0.1.0/template-archive/.claude/scripts/validate-recovery.sh +188 -0
  513. remaind-0.1.0/template-archive/.claude/scripts/validate-retrospective-completeness.py +212 -0
  514. remaind-0.1.0/template-archive/.claude/scripts/validate-scaffold-recommendations-schema.py +194 -0
  515. remaind-0.1.0/template-archive/.claude/scripts/validate-self-check-score-schema.py +208 -0
  516. remaind-0.1.0/template-archive/.claude/scripts/validate-step55-evidence.py +384 -0
  517. remaind-0.1.0/template-archive/.claude/scripts/verify-change-solve.py +149 -0
  518. remaind-0.1.0/template-archive/.claude/scripts/verify-deploy-3b.py +48 -0
  519. remaind-0.1.0/template-archive/.claude/scripts/verify-design-critic-post-fix-respawn.py +245 -0
  520. remaind-0.1.0/template-archive/.claude/scripts/verify-lead-orchestrated-spawn-log-lineage.py +128 -0
  521. remaind-0.1.0/template-archive/.claude/scripts/verify-linter.sh +53 -0
  522. remaind-0.1.0/template-archive/.claude/scripts/verify-recurrence-guard.py +269 -0
  523. remaind-0.1.0/template-archive/.claude/scripts/verify-resolve-challenge.py +67 -0
  524. remaind-0.1.0/template-archive/.claude/scripts/verify-resolve-reproduction.py +163 -0
  525. remaind-0.1.0/template-archive/.claude/scripts/verify-review-adversarial.py +24 -0
  526. remaind-0.1.0/template-archive/.claude/scripts/verify-rmg-guard-artifact-in-diff.py +215 -0
  527. remaind-0.1.0/template-archive/.claude/scripts/verify-state-11a-image-count.py +87 -0
  528. remaind-0.1.0/template-archive/.claude/scripts/verify-state-11c-behavior-audit.py +92 -0
  529. remaind-0.1.0/template-archive/.claude/scripts/write-agent-trace.sh +468 -0
  530. remaind-0.1.0/template-archive/.claude/scripts/write-degraded-trace.py +261 -0
  531. remaind-0.1.0/template-archive/.claude/scripts/write-fix-ledger.py +549 -0
  532. remaind-0.1.0/template-archive/.claude/scripts/write-observation-evidence.py +229 -0
  533. remaind-0.1.0/template-archive/.claude/scripts/write-phase-a-repair.sh +310 -0
  534. remaind-0.1.0/template-archive/.claude/scripts/write-q-score.py +301 -0
  535. remaind-0.1.0/template-archive/.claude/scripts/write-recovery-trace.sh +409 -0
  536. remaind-0.1.0/template-archive/.claude/scripts/write-skipped-fixer-trace.sh +348 -0
  537. remaind-0.1.0/template-archive/.claude/settings.json +269 -0
  538. remaind-0.1.0/template-archive/.claude/skills/ARCHITECTURE.md +600 -0
  539. remaind-0.1.0/template-archive/.claude/skills/audit/orchestration.json +11 -0
  540. remaind-0.1.0/template-archive/.claude/skills/audit/skill.yaml +2 -0
  541. remaind-0.1.0/template-archive/.claude/skills/audit/state-0-scope-and-baseline.md +265 -0
  542. remaind-0.1.0/template-archive/.claude/skills/audit/state-1-parallel-analysis.md +350 -0
  543. remaind-0.1.0/template-archive/.claude/skills/audit/state-2-prioritize-and-output.md +210 -0
  544. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/_scaffold-common.sh +18 -0
  545. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/commit.sh +64 -0
  546. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-images.sh +8 -0
  547. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-init.sh +8 -0
  548. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-landing.sh +29 -0
  549. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-libs.sh +8 -0
  550. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-pages.sh +29 -0
  551. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-setup.sh +8 -0
  552. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/scaffold-wire.sh +14 -0
  553. remaind-0.1.0/template-archive/.claude/skills/bootstrap/gates/write.sh +87 -0
  554. remaind-0.1.0/template-archive/.claude/skills/bootstrap/orchestration.json +23 -0
  555. remaind-0.1.0/template-archive/.claude/skills/bootstrap/skill.yaml +34 -0
  556. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-0-branch-setup.md +54 -0
  557. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-1-read-context.md +28 -0
  558. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-10-design-phase.md +43 -0
  559. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-11-core-scaffold.md +115 -0
  560. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-11a-lib-spawn.md +130 -0
  561. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-11b-lib-verify.md +127 -0
  562. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-11c-page-scaffold.md +197 -0
  563. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-12-externals-decisions.md +147 -0
  564. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-13-merged-validation.md +50 -0
  565. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-13a-analytics-design-check.md +83 -0
  566. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-13b-content-seo-check.md +98 -0
  567. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-13c-bg2-gate.md +41 -0
  568. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-14-wire-phase.md +125 -0
  569. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-14a-bg2-wire-gate.md +40 -0
  570. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-15-scan-and-classify.md +67 -0
  571. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-16-unit-test-generation.md +95 -0
  572. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-17-persist-on-touch.md +54 -0
  573. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-18-commit-and-push.md +64 -0
  574. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-19a-verify-prep.md +35 -0
  575. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-19b-verify-embed.md +38 -0
  576. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-2-resolve-archetype.md +67 -0
  577. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-3-validate-experiment.md +61 -0
  578. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-3a-bg1-gate.md +30 -0
  579. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-3b-duplicate-check.md +76 -0
  580. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-4-check-preconditions.md +69 -0
  581. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-5-present-plan.md +126 -0
  582. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-6-user-approval.md +32 -0
  583. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-7-save-plan.md +87 -0
  584. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-8-preflight.md +174 -0
  585. remaind-0.1.0/template-archive/.claude/skills/bootstrap/state-9-setup-phase.md +58 -0
  586. remaind-0.1.0/template-archive/.claude/skills/change/gates/commit.sh +77 -0
  587. remaind-0.1.0/template-archive/.claude/skills/change/gates/implementer.sh +19 -0
  588. remaind-0.1.0/template-archive/.claude/skills/change/gates/solve-critic.sh +13 -0
  589. remaind-0.1.0/template-archive/.claude/skills/change/gates/visual-implementer.sh +19 -0
  590. remaind-0.1.0/template-archive/.claude/skills/change/orchestration.json +25 -0
  591. remaind-0.1.0/template-archive/.claude/skills/change/skill.yaml +19 -0
  592. remaind-0.1.0/template-archive/.claude/skills/change/state-0-pre-flight.md +39 -0
  593. remaind-0.1.0/template-archive/.claude/skills/change/state-1-branch-setup.md +25 -0
  594. remaind-0.1.0/template-archive/.claude/skills/change/state-10-implement.md +117 -0
  595. remaind-0.1.0/template-archive/.claude/skills/change/state-11a-verify-prep.md +58 -0
  596. remaind-0.1.0/template-archive/.claude/skills/change/state-11b-verify-embed.md +37 -0
  597. remaind-0.1.0/template-archive/.claude/skills/change/state-12-commit-and-pr.md +97 -0
  598. remaind-0.1.0/template-archive/.claude/skills/change/state-2-read-context.md +126 -0
  599. remaind-0.1.0/template-archive/.claude/skills/change/state-3-solve-reasoning.md +222 -0
  600. remaind-0.1.0/template-archive/.claude/skills/change/state-4-classify.md +59 -0
  601. remaind-0.1.0/template-archive/.claude/skills/change/state-5-check-preconditions.md +73 -0
  602. remaind-0.1.0/template-archive/.claude/skills/change/state-6-present-plan.md +73 -0
  603. remaind-0.1.0/template-archive/.claude/skills/change/state-7-user-approval.md +81 -0
  604. remaind-0.1.0/template-archive/.claude/skills/change/state-8-phase2-preflight.md +73 -0
  605. remaind-0.1.0/template-archive/.claude/skills/change/state-9-update-specs.md +45 -0
  606. remaind-0.1.0/template-archive/.claude/skills/deploy/orchestration.json +22 -0
  607. remaind-0.1.0/template-archive/.claude/skills/deploy/skill.yaml +4 -0
  608. remaind-0.1.0/template-archive/.claude/skills/deploy/state-0-pre-flight.md +98 -0
  609. remaind-0.1.0/template-archive/.claude/skills/deploy/state-1-config-gather.md +89 -0
  610. remaind-0.1.0/template-archive/.claude/skills/deploy/state-2-user-approval.md +103 -0
  611. remaind-0.1.0/template-archive/.claude/skills/deploy/state-3a-provision-db.md +65 -0
  612. remaind-0.1.0/template-archive/.claude/skills/deploy/state-3b-provision-host.md +122 -0
  613. remaind-0.1.0/template-archive/.claude/skills/deploy/state-3c-deploy-services.md +250 -0
  614. remaind-0.1.0/template-archive/.claude/skills/deploy/state-4a-health-fix.md +90 -0
  615. remaind-0.1.0/template-archive/.claude/skills/deploy/state-4b-production-validation.md +264 -0
  616. remaind-0.1.0/template-archive/.claude/skills/deploy/state-5-manifest-write.md +209 -0
  617. remaind-0.1.0/template-archive/.claude/skills/distribute/gates/commit.sh +26 -0
  618. remaind-0.1.0/template-archive/.claude/skills/distribute/orchestration.json +45 -0
  619. remaind-0.1.0/template-archive/.claude/skills/distribute/skill.yaml +10 -0
  620. remaind-0.1.0/template-archive/.claude/skills/distribute/state-0-init.md +73 -0
  621. remaind-0.1.0/template-archive/.claude/skills/distribute/state-1-config-wizard.md +52 -0
  622. remaind-0.1.0/template-archive/.claude/skills/distribute/state-2-validate-analytics.md +160 -0
  623. remaind-0.1.0/template-archive/.claude/skills/distribute/state-3-implement.md +192 -0
  624. remaind-0.1.0/template-archive/.claude/skills/distribute/state-3a-verify-embed.md +38 -0
  625. remaind-0.1.0/template-archive/.claude/skills/distribute/state-3b-post-verify.md +48 -0
  626. remaind-0.1.0/template-archive/.claude/skills/distribute/state-4-generate.md +299 -0
  627. remaind-0.1.0/template-archive/.claude/skills/distribute/state-5-approve-and-ship.md +79 -0
  628. remaind-0.1.0/template-archive/.claude/skills/distribute/state-6-campaign.md +854 -0
  629. remaind-0.1.0/template-archive/.claude/skills/iterate/orchestration.json +11 -0
  630. remaind-0.1.0/template-archive/.claude/skills/iterate/skill.yaml +11 -0
  631. remaind-0.1.0/template-archive/.claude/skills/iterate/state-0-read-context.md +56 -0
  632. remaind-0.1.0/template-archive/.claude/skills/iterate/state-1-gather-data.md +134 -0
  633. remaind-0.1.0/template-archive/.claude/skills/iterate/state-2-compute-verdicts.md +161 -0
  634. remaind-0.1.0/template-archive/.claude/skills/iterate/state-3-decision.md +204 -0
  635. remaind-0.1.0/template-archive/.claude/skills/iterate/state-4-output.md +159 -0
  636. remaind-0.1.0/template-archive/.claude/skills/iterate/state-c0-read-ads-context.md +86 -0
  637. remaind-0.1.0/template-archive/.claude/skills/iterate/state-c1-check-health.md +127 -0
  638. remaind-0.1.0/template-archive/.claude/skills/iterate/state-c2-auto-fix.md +315 -0
  639. remaind-0.1.0/template-archive/.claude/skills/iterate/state-c3-report.md +77 -0
  640. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x0-discover-mvps.md +313 -0
  641. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x0a-scrape-ga-clicks.md +158 -0
  642. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x1-gather-all-data.md +169 -0
  643. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x1a-validate-data-integrity.md +144 -0
  644. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x2-classify-signups.md +204 -0
  645. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x3-compute-scores.md +100 -0
  646. remaind-0.1.0/template-archive/.claude/skills/iterate/state-x4-rank-recommend.md +138 -0
  647. remaind-0.1.0/template-archive/.claude/skills/observe/skill.yaml +2 -0
  648. remaind-0.1.0/template-archive/.claude/skills/observe/state-0-input-parse.md +63 -0
  649. remaind-0.1.0/template-archive/.claude/skills/observe/state-1-evaluate-and-file.md +209 -0
  650. remaind-0.1.0/template-archive/.claude/skills/resolve/gates/commit.sh +23 -0
  651. remaind-0.1.0/template-archive/.claude/skills/resolve/gates/resolve-challenger.sh +22 -0
  652. remaind-0.1.0/template-archive/.claude/skills/resolve/gates/solve-critic.sh +13 -0
  653. remaind-0.1.0/template-archive/.claude/skills/resolve/orchestration.json +30 -0
  654. remaind-0.1.0/template-archive/.claude/skills/resolve/skill.yaml +13 -0
  655. remaind-0.1.0/template-archive/.claude/skills/resolve/state-0-fetch-issues.md +106 -0
  656. remaind-0.1.0/template-archive/.claude/skills/resolve/state-1-read-context.md +46 -0
  657. remaind-0.1.0/template-archive/.claude/skills/resolve/state-10-post-fix-review.md +198 -0
  658. remaind-0.1.0/template-archive/.claude/skills/resolve/state-11-commit-pr.md +142 -0
  659. remaind-0.1.0/template-archive/.claude/skills/resolve/state-2-triage.md +327 -0
  660. remaind-0.1.0/template-archive/.claude/skills/resolve/state-3-reproduce.md +234 -0
  661. remaind-0.1.0/template-archive/.claude/skills/resolve/state-3b-causal-analysis.md +219 -0
  662. remaind-0.1.0/template-archive/.claude/skills/resolve/state-4-blast-radius.md +53 -0
  663. remaind-0.1.0/template-archive/.claude/skills/resolve/state-4b-root-cause-clustering.md +74 -0
  664. remaind-0.1.0/template-archive/.claude/skills/resolve/state-5-fix-design.md +221 -0
  665. remaind-0.1.0/template-archive/.claude/skills/resolve/state-5b-tier-floors.md +58 -0
  666. remaind-0.1.0/template-archive/.claude/skills/resolve/state-5d-adversarial-challenge.md +179 -0
  667. remaind-0.1.0/template-archive/.claude/skills/resolve/state-6-branch-setup.md +33 -0
  668. remaind-0.1.0/template-archive/.claude/skills/resolve/state-7-implement-fixes.md +162 -0
  669. remaind-0.1.0/template-archive/.claude/skills/resolve/state-8-final-validation.md +46 -0
  670. remaind-0.1.0/template-archive/.claude/skills/resolve/state-8b-side-effect-scan.md +54 -0
  671. remaind-0.1.0/template-archive/.claude/skills/resolve/state-9-save-patterns.md +236 -0
  672. remaind-0.1.0/template-archive/.claude/skills/resolve/state-9a-graduate-external.md +191 -0
  673. remaind-0.1.0/template-archive/.claude/skills/retro/orchestration.json +22 -0
  674. remaind-0.1.0/template-archive/.claude/skills/retro/skill.yaml +1 -0
  675. remaind-0.1.0/template-archive/.claude/skills/retro/state-0-read-context.md +80 -0
  676. remaind-0.1.0/template-archive/.claude/skills/retro/state-1-interview.md +60 -0
  677. remaind-0.1.0/template-archive/.claude/skills/retro/state-2-generate.md +38 -0
  678. remaind-0.1.0/template-archive/.claude/skills/retro/state-3-file-issue.md +78 -0
  679. remaind-0.1.0/template-archive/.claude/skills/review/gates/commit.sh +20 -0
  680. remaind-0.1.0/template-archive/.claude/skills/review/gates/review-challenger.sh +13 -0
  681. remaind-0.1.0/template-archive/.claude/skills/review/orchestration.json +32 -0
  682. remaind-0.1.0/template-archive/.claude/skills/review/skill.yaml +11 -0
  683. remaind-0.1.0/template-archive/.claude/skills/review/state-0-read-context.md +72 -0
  684. remaind-0.1.0/template-archive/.claude/skills/review/state-1-baseline-validators.md +84 -0
  685. remaind-0.1.0/template-archive/.claude/skills/review/state-2a-review-scan.md +232 -0
  686. remaind-0.1.0/template-archive/.claude/skills/review/state-2b-filter-findings.md +44 -0
  687. remaind-0.1.0/template-archive/.claude/skills/review/state-2c-adversarial-validation.md +68 -0
  688. remaind-0.1.0/template-archive/.claude/skills/review/state-2d-branch-setup.md +28 -0
  689. remaind-0.1.0/template-archive/.claude/skills/review/state-2e-fix-findings.md +68 -0
  690. remaind-0.1.0/template-archive/.claude/skills/review/state-2f-loop-gate.md +98 -0
  691. remaind-0.1.0/template-archive/.claude/skills/review/state-3-update-inventory.md +34 -0
  692. remaind-0.1.0/template-archive/.claude/skills/review/state-4-final-validation.md +53 -0
  693. remaind-0.1.0/template-archive/.claude/skills/review/state-6-commit-pr.md +100 -0
  694. remaind-0.1.0/template-archive/.claude/skills/rollback/orchestration.json +22 -0
  695. remaind-0.1.0/template-archive/.claude/skills/rollback/skill.yaml +1 -0
  696. remaind-0.1.0/template-archive/.claude/skills/rollback/state-0-read-context.md +39 -0
  697. remaind-0.1.0/template-archive/.claude/skills/rollback/state-1-plan.md +55 -0
  698. remaind-0.1.0/template-archive/.claude/skills/rollback/state-2-user-approval.md +41 -0
  699. remaind-0.1.0/template-archive/.claude/skills/rollback/state-3-execute.md +93 -0
  700. remaind-0.1.0/template-archive/.claude/skills/solve/gates/solve-critic.sh +13 -0
  701. remaind-0.1.0/template-archive/.claude/skills/solve/orchestration.json +11 -0
  702. remaind-0.1.0/template-archive/.claude/skills/solve/skill.yaml +5 -0
  703. remaind-0.1.0/template-archive/.claude/skills/solve/state-0-input-parse.md +40 -0
  704. remaind-0.1.0/template-archive/.claude/skills/solve/state-1-execute.md +185 -0
  705. remaind-0.1.0/template-archive/.claude/skills/solve/state-2-output.md +52 -0
  706. remaind-0.1.0/template-archive/.claude/skills/spec/orchestration.json +22 -0
  707. remaind-0.1.0/template-archive/.claude/skills/spec/skill.yaml +5 -0
  708. remaind-0.1.0/template-archive/.claude/skills/spec/state-0-input-parse.md +122 -0
  709. remaind-0.1.0/template-archive/.claude/skills/spec/state-1-research.md +87 -0
  710. remaind-0.1.0/template-archive/.claude/skills/spec/state-2-hypotheses.md +142 -0
  711. remaind-0.1.0/template-archive/.claude/skills/spec/state-3-behaviors.md +78 -0
  712. remaind-0.1.0/template-archive/.claude/skills/spec/state-4-golden-path.md +79 -0
  713. remaind-0.1.0/template-archive/.claude/skills/spec/state-5-variants.md +75 -0
  714. remaind-0.1.0/template-archive/.claude/skills/spec/state-6-stack-funnel.md +217 -0
  715. remaind-0.1.0/template-archive/.claude/skills/spec/state-7-output.md +233 -0
  716. remaind-0.1.0/template-archive/.claude/skills/teardown/orchestration.json +22 -0
  717. remaind-0.1.0/template-archive/.claude/skills/teardown/skill.yaml +4 -0
  718. remaind-0.1.0/template-archive/.claude/skills/teardown/state-0-pre-flight.md +60 -0
  719. remaind-0.1.0/template-archive/.claude/skills/teardown/state-1-user-confirmation.md +59 -0
  720. remaind-0.1.0/template-archive/.claude/skills/teardown/state-2-destroy-resources.md +127 -0
  721. remaind-0.1.0/template-archive/.claude/skills/teardown/state-3-verify-deletion.md +53 -0
  722. remaind-0.1.0/template-archive/.claude/skills/teardown/state-4-cleanup.md +100 -0
  723. remaind-0.1.0/template-archive/.claude/skills/upgrade/skill.yaml +6 -0
  724. remaind-0.1.0/template-archive/.claude/skills/upgrade/state-0-input-branch.md +104 -0
  725. remaind-0.1.0/template-archive/.claude/skills/upgrade/state-1-merge-validate.md +143 -0
  726. remaind-0.1.0/template-archive/.claude/skills/upgrade/state-2-memory-reconcile.md +79 -0
  727. remaind-0.1.0/template-archive/.claude/skills/upgrade/state-3-commit-pr.md +160 -0
  728. remaind-0.1.0/template-archive/.claude/skills/verify/gates/_phase1.sh +20 -0
  729. remaind-0.1.0/template-archive/.claude/skills/verify/gates/accessibility-scanner.sh +4 -0
  730. remaind-0.1.0/template-archive/.claude/skills/verify/gates/behavior-verifier.sh +4 -0
  731. remaind-0.1.0/template-archive/.claude/skills/verify/gates/build-info-collector.sh +4 -0
  732. remaind-0.1.0/template-archive/.claude/skills/verify/gates/design-consistency-checker.sh +61 -0
  733. remaind-0.1.0/template-archive/.claude/skills/verify/gates/design-critic.sh +36 -0
  734. remaind-0.1.0/template-archive/.claude/skills/verify/gates/observer.sh +51 -0
  735. remaind-0.1.0/template-archive/.claude/skills/verify/gates/performance-reporter.sh +4 -0
  736. remaind-0.1.0/template-archive/.claude/skills/verify/gates/quality-fixer.sh +57 -0
  737. remaind-0.1.0/template-archive/.claude/skills/verify/gates/security-attacker.sh +4 -0
  738. remaind-0.1.0/template-archive/.claude/skills/verify/gates/security-defender.sh +4 -0
  739. remaind-0.1.0/template-archive/.claude/skills/verify/gates/security-fixer.sh +60 -0
  740. remaind-0.1.0/template-archive/.claude/skills/verify/gates/spec-reviewer.sh +4 -0
  741. remaind-0.1.0/template-archive/.claude/skills/verify/gates/ux-journeyer.sh +40 -0
  742. remaind-0.1.0/template-archive/.claude/skills/verify/orchestration.json +12 -0
  743. remaind-0.1.0/template-archive/.claude/skills/verify/skill.yaml +53 -0
  744. remaind-0.1.0/template-archive/.claude/skills/verify/state-0-read-context.md +84 -0
  745. remaind-0.1.0/template-archive/.claude/skills/verify/state-1-build-lint-loop.md +105 -0
  746. remaind-0.1.0/template-archive/.claude/skills/verify/state-2-phase1-parallel.md +155 -0
  747. remaind-0.1.0/template-archive/.claude/skills/verify/state-2a-page-image-map.md +143 -0
  748. remaind-0.1.0/template-archive/.claude/skills/verify/state-2b-drift-detection.md +62 -0
  749. remaind-0.1.0/template-archive/.claude/skills/verify/state-3a-design-agents.md +575 -0
  750. remaind-0.1.0/template-archive/.claude/skills/verify/state-3b-quality-gate.md +305 -0
  751. remaind-0.1.0/template-archive/.claude/skills/verify/state-3c-ux-merge.md +142 -0
  752. remaind-0.1.0/template-archive/.claude/skills/verify/state-3d-quality-fix.md +208 -0
  753. remaind-0.1.0/template-archive/.claude/skills/verify/state-4-security-merge-fix.md +169 -0
  754. remaind-0.1.0/template-archive/.claude/skills/verify/state-5-e2e-tests.md +111 -0
  755. remaind-0.1.0/template-archive/.claude/skills/verify/state-7a-write-report.md +233 -0
  756. remaind-0.1.0/template-archive/.claude/skills/verify/state-7b-compute-qscore.md +172 -0
  757. remaind-0.1.0/template-archive/.claude/skills/verify/state-8-save-patterns.md +67 -0
  758. remaind-0.1.0/template-archive/.claude/stacks/TEMPLATE.md +300 -0
  759. remaind-0.1.0/template-archive/.claude/stacks/ai/anthropic.md +355 -0
  760. remaind-0.1.0/template-archive/.claude/stacks/analytics/posthog.md +1030 -0
  761. remaind-0.1.0/template-archive/.claude/stacks/auth/supabase.md +1277 -0
  762. remaind-0.1.0/template-archive/.claude/stacks/database/sqlite.md +235 -0
  763. remaind-0.1.0/template-archive/.claude/stacks/database/supabase.md +1347 -0
  764. remaind-0.1.0/template-archive/.claude/stacks/distribution/email-campaign.md +294 -0
  765. remaind-0.1.0/template-archive/.claude/stacks/distribution/google-ads.md +398 -0
  766. remaind-0.1.0/template-archive/.claude/stacks/distribution/meta-ads.md +345 -0
  767. remaind-0.1.0/template-archive/.claude/stacks/distribution/reddit-organic.md +265 -0
  768. remaind-0.1.0/template-archive/.claude/stacks/distribution/reddit.md +158 -0
  769. remaind-0.1.0/template-archive/.claude/stacks/distribution/twitter-organic.md +222 -0
  770. remaind-0.1.0/template-archive/.claude/stacks/distribution/twitter.md +336 -0
  771. remaind-0.1.0/template-archive/.claude/stacks/email/resend.md +375 -0
  772. remaind-0.1.0/template-archive/.claude/stacks/external/.gitkeep +0 -0
  773. remaind-0.1.0/template-archive/.claude/stacks/external/linear.md +102 -0
  774. remaind-0.1.0/template-archive/.claude/stacks/external/retell-ai.md +148 -0
  775. remaind-0.1.0/template-archive/.claude/stacks/external/slack.md +98 -0
  776. remaind-0.1.0/template-archive/.claude/stacks/external/twilio.md +134 -0
  777. remaind-0.1.0/template-archive/.claude/stacks/framework/commander.md +187 -0
  778. remaind-0.1.0/template-archive/.claude/stacks/framework/hono.md +220 -0
  779. remaind-0.1.0/template-archive/.claude/stacks/framework/nextjs.md +1004 -0
  780. remaind-0.1.0/template-archive/.claude/stacks/framework/virtuals-acp.md +257 -0
  781. remaind-0.1.0/template-archive/.claude/stacks/hosting/railway.md +232 -0
  782. remaind-0.1.0/template-archive/.claude/stacks/hosting/vercel.md +499 -0
  783. remaind-0.1.0/template-archive/.claude/stacks/images/fal.md +542 -0
  784. remaind-0.1.0/template-archive/.claude/stacks/notifications/slack.md +98 -0
  785. remaind-0.1.0/template-archive/.claude/stacks/payment/stripe.md +518 -0
  786. remaind-0.1.0/template-archive/.claude/stacks/project-management/linear.md +106 -0
  787. remaind-0.1.0/template-archive/.claude/stacks/surface/co-located.md +116 -0
  788. remaind-0.1.0/template-archive/.claude/stacks/surface/detached.md +84 -0
  789. remaind-0.1.0/template-archive/.claude/stacks/surface/none.md +28 -0
  790. remaind-0.1.0/template-archive/.claude/stacks/telephony/twilio.md +134 -0
  791. remaind-0.1.0/template-archive/.claude/stacks/testing/playwright.md +1053 -0
  792. remaind-0.1.0/template-archive/.claude/stacks/testing/vitest.md +340 -0
  793. remaind-0.1.0/template-archive/.claude/stacks/ui/shadcn.md +865 -0
  794. remaind-0.1.0/template-archive/.claude/stacks/voice/retell-ai.md +148 -0
  795. remaind-0.1.0/template-archive/.claude/template-owned-dirs.txt +29 -0
  796. remaind-0.1.0/template-archive/.claude/templates/experiment-yaml.md +458 -0
  797. remaind-0.1.0/template-archive/.github/ISSUE_TEMPLATE/retro.yml +83 -0
  798. remaind-0.1.0/template-archive/.github/PULL_REQUEST_TEMPLATE.md +46 -0
  799. remaind-0.1.0/template-archive/.github/workflows/ci.yml +371 -0
  800. remaind-0.1.0/template-archive/.github/workflows/falsification-tests.yml +46 -0
  801. remaind-0.1.0/template-archive/.github/workflows/stack-knowledge-graduation.yml +30 -0
  802. remaind-0.1.0/template-archive/.github/workflows/stack-knowledge-nightly.yml +29 -0
  803. remaind-0.1.0/template-archive/.github/workflows/stack-knowledge-validate.yml +46 -0
  804. remaind-0.1.0/template-archive/.github/workflows/state-consistency.yml +42 -0
  805. remaind-0.1.0/template-archive/.gitleaks.toml +17 -0
  806. remaind-0.1.0/template-archive/.runs/.gitkeep +0 -0
  807. remaind-0.1.0/template-archive/CLAUDE.md +157 -0
  808. remaind-0.1.0/template-archive/Makefile +312 -0
  809. remaind-0.1.0/template-archive/README.md +260 -0
  810. remaind-0.1.0/template-archive/docs/CONVENTIONS.md +354 -0
  811. remaind-0.1.0/template-archive/docs/assayer-product-design.md +2228 -0
  812. remaind-0.1.0/template-archive/docs/assayer-session-prompts.md +4459 -0
  813. remaind-0.1.0/template-archive/docs/audit-prompt.md +79 -0
  814. remaind-0.1.0/template-archive/docs/cp1-report.md +106 -0
  815. remaind-0.1.0/template-archive/docs/google-ads-campaign-playbook.md +205 -0
  816. remaind-0.1.0/template-archive/docs/mvp-budget-playbook.md +700 -0
  817. remaind-0.1.0/template-archive/docs/portfolio-distribution-design.md +569 -0
  818. remaind-0.1.0/template-archive/docs/prerequisites.md +56 -0
  819. remaind-0.1.0/template-archive/docs/prompts/step1-update-ux-design.md +142 -0
  820. remaind-0.1.0/template-archive/docs/prompts/step2-update-product-design.md +410 -0
  821. remaind-0.1.0/template-archive/docs/prompts/step3-update-session-prompts.md +439 -0
  822. remaind-0.1.0/template-archive/docs/review-future-work.md +44 -0
  823. remaind-0.1.0/template-archive/docs/team-ads-policy.md +62 -0
  824. remaind-0.1.0/template-archive/docs/technical-reference.md +190 -0
  825. remaind-0.1.0/template-archive/docs/troubleshooting.md +105 -0
  826. remaind-0.1.0/template-archive/docs/ux-design.md +2532 -0
  827. remaind-0.1.0/template-archive/docs/world-champion-plan.md +1018 -0
  828. remaind-0.1.0/template-archive/experiment/EVENTS.yaml +55 -0
  829. remaind-0.1.0/template-archive/experiment/ads.example.yaml +254 -0
  830. remaind-0.1.0/template-archive/experiment/experiment.example.yaml +226 -0
  831. remaind-0.1.0/template-archive/experiment/experiment.yaml +154 -0
  832. remaind-0.1.0/template-archive/experiment/iterate-cross-config.example.yaml +134 -0
  833. remaind-0.1.0/template-archive/experiment/retro-template.md +62 -0
  834. remaind-0.1.0/template-archive/run-skill.sh +169 -0
  835. remaind-0.1.0/template-archive/scripts/auto-migrate.mjs +61 -0
  836. remaind-0.1.0/template-archive/scripts/bakeoff/README.md +22 -0
  837. remaind-0.1.0/template-archive/scripts/bakeoff/SCORING.md +38 -0
  838. remaind-0.1.0/template-archive/scripts/bakeoff/package-lock.json +631 -0
  839. remaind-0.1.0/template-archive/scripts/bakeoff/package.json +18 -0
  840. remaind-0.1.0/template-archive/scripts/bakeoff/ping.ts +35 -0
  841. remaind-0.1.0/template-archive/scripts/bakeoff/run.ts +455 -0
  842. remaind-0.1.0/template-archive/scripts/bakeoff/tsconfig.json +13 -0
  843. remaind-0.1.0/template-archive/scripts/check-inventory.md +162 -0
  844. remaind-0.1.0/template-archive/scripts/ci-check-graduation-atomicity.py +211 -0
  845. remaind-0.1.0/template-archive/scripts/ci-check-stack-knowledge.py +63 -0
  846. remaind-0.1.0/template-archive/scripts/conftest.py +138 -0
  847. remaind-0.1.0/template-archive/scripts/consistency-check.sh +791 -0
  848. remaind-0.1.0/template-archive/scripts/init-trace.py +65 -0
  849. remaind-0.1.0/template-archive/scripts/lib/__init__.py +0 -0
  850. remaind-0.1.0/template-archive/scripts/lib/stack_knowledge_parser.py +195 -0
  851. remaind-0.1.0/template-archive/scripts/lint-verification-snippets.py +113 -0
  852. remaind-0.1.0/template-archive/scripts/migrate-known-issues.py +121 -0
  853. remaind-0.1.0/template-archive/scripts/print-stack-knowledge-files.py +27 -0
  854. remaind-0.1.0/template-archive/scripts/q-score.py +232 -0
  855. remaind-0.1.0/template-archive/scripts/scoped-review-prompt.md +185 -0
  856. remaind-0.1.0/template-archive/scripts/smoke-test-phase2.sh +282 -0
  857. remaind-0.1.0/template-archive/scripts/smoke-test-phase3.sh +461 -0
  858. remaind-0.1.0/template-archive/scripts/sync-archetype-summaries.py +299 -0
  859. remaind-0.1.0/template-archive/scripts/test-template-coherence.sh +84 -0
  860. remaind-0.1.0/template-archive/scripts/test_consistency_check.py +501 -0
  861. remaind-0.1.0/template-archive/scripts/test_resolve_causal_analyzer.py +100 -0
  862. remaind-0.1.0/template-archive/scripts/test_stack_knowledge_parser.py +348 -0
  863. remaind-0.1.0/template-archive/scripts/test_state_99_epilogue.py +297 -0
  864. remaind-0.1.0/template-archive/scripts/test_validate_experiment.py +194 -0
  865. remaind-0.1.0/template-archive/scripts/test_validate_frontmatter.py +360 -0
  866. remaind-0.1.0/template-archive/scripts/test_validate_registry.py +458 -0
  867. remaind-0.1.0/template-archive/scripts/test_validate_semantics.py +1105 -0
  868. remaind-0.1.0/template-archive/scripts/validate-convergence-config.py +95 -0
  869. remaind-0.1.0/template-archive/scripts/validate-events.py +171 -0
  870. remaind-0.1.0/template-archive/scripts/validate-experiment.py +709 -0
  871. remaind-0.1.0/template-archive/scripts/validate-frontmatter.py +376 -0
  872. remaind-0.1.0/template-archive/scripts/validate-semantics.py +292 -0
  873. remaind-0.1.0/template-archive/scripts/validate-stack-knowledge.py +144 -0
  874. remaind-0.1.0/template-archive/scripts/validators/__init__.py +9 -0
  875. remaind-0.1.0/template-archive/scripts/validators/_analytics.py +240 -0
  876. remaind-0.1.0/template-archive/scripts/validators/_ci_templates.py +174 -0
  877. remaind-0.1.0/template-archive/scripts/validators/_fixtures.py +509 -0
  878. remaind-0.1.0/template-archive/scripts/validators/_misc.py +418 -0
  879. remaind-0.1.0/template-archive/scripts/validators/_prose_sync.py +268 -0
  880. remaind-0.1.0/template-archive/scripts/validators/_skill_content.py +765 -0
  881. remaind-0.1.0/template-archive/scripts/validators/_stack_deps.py +461 -0
  882. remaind-0.1.0/template-archive/scripts/validators/_utils.py +128 -0
  883. remaind-0.1.0/template-archive/scripts/verify-local.sh +175 -0
  884. remaind-0.1.0/tests/__init__.py +0 -0
  885. remaind-0.1.0/tests/migrations/__init__.py +0 -0
  886. remaind-0.1.0/tests/migrations/test_adapter.py +116 -0
  887. remaind-0.1.0/tests/migrations/test_runner.py +112 -0
  888. remaind-0.1.0/tests/test_artifacts.py +47 -0
  889. remaind-0.1.0/tests/test_atomic.py +54 -0
  890. remaind-0.1.0/tests/test_compact_command.py +234 -0
  891. remaind-0.1.0/tests/test_compaction.py +90 -0
  892. remaind-0.1.0/tests/test_compactor.py +127 -0
  893. remaind-0.1.0/tests/test_db.py +266 -0
  894. remaind-0.1.0/tests/test_events.py +157 -0
  895. remaind-0.1.0/tests/test_handover.py +36 -0
  896. remaind-0.1.0/tests/test_handover_writer.py +47 -0
  897. remaind-0.1.0/tests/test_init.py +107 -0
  898. remaind-0.1.0/tests/test_jsonl.py +46 -0
  899. remaind-0.1.0/tests/test_redaction.py +90 -0
  900. remaind-0.1.0/tests/test_resume_command.py +98 -0
  901. remaind-0.1.0/tests/test_resume_gate.py +158 -0
  902. remaind-0.1.0/tests/test_resume_packet.py +153 -0
  903. remaind-0.1.0/tests/test_rollback.py +109 -0
  904. remaind-0.1.0/tests/test_rollback_command.py +144 -0
  905. remaind-0.1.0/tests/test_state_writer.py +93 -0
  906. remaind-0.1.0/tests/test_status.py +166 -0
  907. remaind-0.1.0/tests/test_thresholds.py +57 -0
  908. remaind-0.1.0/tests/test_tokens.py +54 -0
  909. remaind-0.1.0/tests/test_ulid.py +56 -0
  910. remaind-0.1.0/tests/test_validate.py +79 -0
  911. remaind-0.1.0/tests/test_validator.py +197 -0
  912. remaind-0.1.0/web/.gitignore +41 -0
  913. remaind-0.1.0/web/app/favicon.ico +0 -0
  914. remaind-0.1.0/web/app/globals.css +26 -0
  915. remaind-0.1.0/web/app/layout.tsx +53 -0
  916. remaind-0.1.0/web/app/page.tsx +417 -0
  917. remaind-0.1.0/web/app/providers.tsx +35 -0
  918. remaind-0.1.0/web/app/robots.ts +8 -0
  919. remaind-0.1.0/web/app/sitemap.ts +12 -0
  920. remaind-0.1.0/web/eslint.config.mjs +18 -0
  921. remaind-0.1.0/web/lib/analytics.ts +42 -0
  922. remaind-0.1.0/web/next.config.ts +7 -0
  923. remaind-0.1.0/web/package-lock.json +7037 -0
  924. remaind-0.1.0/web/package.json +28 -0
  925. remaind-0.1.0/web/postcss.config.mjs +7 -0
  926. remaind-0.1.0/web/public/file.svg +1 -0
  927. remaind-0.1.0/web/public/globe.svg +1 -0
  928. remaind-0.1.0/web/public/llms.txt +35 -0
  929. remaind-0.1.0/web/public/next.svg +1 -0
  930. remaind-0.1.0/web/public/vercel.svg +1 -0
  931. remaind-0.1.0/web/public/window.svg +1 -0
  932. remaind-0.1.0/web/tsconfig.json +34 -0
@@ -0,0 +1,97 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ name: ruff
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+ cache: pip
23
+ cache-dependency-path: pyproject.toml
24
+ - run: |
25
+ python -m pip install --upgrade pip
26
+ pip install -e ".[dev]"
27
+ - run: ruff check src tests
28
+
29
+ typecheck:
30
+ name: mypy
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version: "3.12"
37
+ cache: pip
38
+ cache-dependency-path: pyproject.toml
39
+ - run: |
40
+ python -m pip install --upgrade pip
41
+ pip install -e ".[dev]"
42
+ - run: mypy
43
+
44
+ pytest:
45
+ name: pytest (py${{ matrix.python-version }})
46
+ runs-on: ubuntu-latest
47
+ strategy:
48
+ fail-fast: false
49
+ matrix:
50
+ python-version: ["3.11", "3.12", "3.13"]
51
+ steps:
52
+ - uses: actions/checkout@v4
53
+
54
+ - name: Set up Python ${{ matrix.python-version }}
55
+ uses: actions/setup-python@v5
56
+ with:
57
+ python-version: ${{ matrix.python-version }}
58
+ cache: pip
59
+ cache-dependency-path: pyproject.toml
60
+
61
+ - name: Install package + dev extras
62
+ run: |
63
+ python -m pip install --upgrade pip
64
+ pip install -e ".[dev]"
65
+
66
+ - name: Run pytest
67
+ run: python -m pytest -q
68
+
69
+ build:
70
+ name: wheel + sdist build
71
+ runs-on: ubuntu-latest
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+
75
+ - name: Set up Python
76
+ uses: actions/setup-python@v5
77
+ with:
78
+ python-version: "3.12"
79
+
80
+ - name: Build sdist + wheel
81
+ run: |
82
+ python -m pip install --upgrade pip build
83
+ python -m build --sdist --wheel
84
+ ls -la dist/
85
+
86
+ - name: Smoke-install the built wheel
87
+ run: |
88
+ python -m venv /tmp/install-check
89
+ /tmp/install-check/bin/pip install dist/*.whl
90
+ /tmp/install-check/bin/remaind --version
91
+
92
+ - name: Upload artifacts
93
+ uses: actions/upload-artifact@v4
94
+ with:
95
+ name: dist
96
+ path: dist/
97
+ retention-days: 7
@@ -0,0 +1,63 @@
1
+ name: release
2
+
3
+ # Manual-dispatch only for now. Before the first run, create the project on
4
+ # PyPI and configure a Trusted Publisher pointing at:
5
+ # owner/repo: magpiexyz-lab/Remaind
6
+ # workflow: release.yml
7
+ # environment: pypi
8
+ # Once that's done, run this workflow from the Actions tab with the tag to
9
+ # publish. A future change can add `release: { types: [published] }` to the
10
+ # trigger so tagged releases publish automatically.
11
+
12
+ on:
13
+ workflow_dispatch:
14
+ inputs:
15
+ ref:
16
+ description: "Git tag to build and publish (e.g. v0.1.0)"
17
+ required: true
18
+ default: "v0.1.0"
19
+
20
+ jobs:
21
+ build:
22
+ name: build sdist + wheel
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ with:
27
+ ref: ${{ inputs.ref }}
28
+
29
+ - uses: actions/setup-python@v5
30
+ with:
31
+ python-version: "3.12"
32
+
33
+ - name: Build
34
+ run: |
35
+ python -m pip install --upgrade pip build
36
+ python -m build --sdist --wheel
37
+
38
+ - name: Verify the wheel installs and runs
39
+ run: |
40
+ python -m venv /tmp/release-check
41
+ /tmp/release-check/bin/pip install dist/*.whl
42
+ /tmp/release-check/bin/remaind --version
43
+
44
+ - uses: actions/upload-artifact@v4
45
+ with:
46
+ name: dist
47
+ path: dist/
48
+
49
+ publish:
50
+ name: publish to PyPI
51
+ needs: build
52
+ runs-on: ubuntu-latest
53
+ environment: pypi
54
+ permissions:
55
+ id-token: write # required for PyPI Trusted Publishing
56
+ steps:
57
+ - uses: actions/download-artifact@v4
58
+ with:
59
+ name: dist
60
+ path: dist/
61
+
62
+ - name: Publish
63
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,44 @@
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+ .mypy_cache/
8
+ .venv/
9
+ venv/
10
+ dist/
11
+ build/
12
+ *.egg-info/
13
+ .coverage
14
+ .coverage.*
15
+ htmlcov/
16
+
17
+ # Remaind runtime state (created by `remaind init`; do not commit)
18
+ .context/active/resume_packet.md
19
+ .context/active/history/
20
+ .context/db/
21
+ .context/artifacts/
22
+
23
+ # Environment + secrets
24
+ .env
25
+ .env.local
26
+ .env.*.local
27
+ *.key
28
+ *.pem
29
+ credentials*
30
+ *.secret
31
+ *.token
32
+ service-account*.json
33
+
34
+ # OS / IDE
35
+ .DS_Store
36
+ Thumbs.db
37
+ .vscode/
38
+ .idea/
39
+ *.swp
40
+ *.swo
41
+ *~
42
+
43
+ # Debug logs
44
+ *.log
remaind-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Experiment Template Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
remaind-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,174 @@
1
+ Metadata-Version: 2.4
2
+ Name: remaind
3
+ Version: 0.1.0
4
+ Summary: Durable context for long-running agents.
5
+ Project-URL: Homepage, https://github.com/magpiexyz-lab/Remaind
6
+ Project-URL: Repository, https://github.com/magpiexyz-lab/Remaind
7
+ Author: Magpie Labs
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: agents,compaction,context,handover,ledger
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Libraries
19
+ Requires-Python: >=3.11
20
+ Requires-Dist: jsonschema>=4.18
21
+ Requires-Dist: pyyaml>=6.0
22
+ Provides-Extra: dev
23
+ Requires-Dist: mypy>=1.10; extra == 'dev'
24
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
25
+ Requires-Dist: pytest>=8.0; extra == 'dev'
26
+ Requires-Dist: ruff>=0.6; extra == 'dev'
27
+ Requires-Dist: types-jsonschema>=4.18; extra == 'dev'
28
+ Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
29
+ Description-Content-Type: text/markdown
30
+
31
+ # Remaind
32
+
33
+ [![tests](https://github.com/magpiexyz-lab/Remaind/actions/workflows/ci.yml/badge.svg)](https://github.com/magpiexyz-lab/Remaind/actions/workflows/ci.yml)
34
+ [![python](https://img.shields.io/badge/python-3.11%2B-blue)](#)
35
+ [![license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
36
+
37
+ **Durable context for long-running agents.**
38
+
39
+ Remaind is a local-first context ledger, compaction pipeline, and resume
40
+ substrate for AI agents. It preserves the meaningful state of an agent run
41
+ across context resets: a future agent can start with a clean model context,
42
+ load Remaind's local state, understand what happened before, know what must
43
+ happen next, and continue safely without asking the user to reconstruct the
44
+ work.
45
+
46
+ Remaind is not a wiki — it is a **machine-readable and human-readable
47
+ continuity layer**: raw event ledger, structured state, compact handover,
48
+ searchable memory, structured validation, safe rollback, and a mechanical
49
+ resume gate.
50
+
51
+ ## Install
52
+
53
+ ```sh
54
+ git clone https://github.com/magpiexyz-lab/Remaind.git
55
+ cd Remaind
56
+ python3 -m venv .venv
57
+ .venv/bin/pip install -e ".[dev]"
58
+ ```
59
+
60
+ Requires Python ≥ 3.11.
61
+
62
+ ## Quick start
63
+
64
+ ```sh
65
+ # Bootstrap a .context/ in the current directory.
66
+ remaind init
67
+
68
+ # Inspect what's there.
69
+ remaind validate
70
+ remaind status
71
+
72
+ # After work happens (events appended by your agent harness),
73
+ # compact when token band climbs.
74
+ remaind compact
75
+
76
+ # Build a resume packet for a fresh agent run.
77
+ remaind resume --next-tool deploy_prod
78
+
79
+ # Roll back if something went wrong.
80
+ remaind rollback --to 2026-05-14T03:54:33Z
81
+ ```
82
+
83
+ ## What lives in `.context/`
84
+
85
+ ```
86
+ .context/
87
+ ├── README.md
88
+ ├── CONTRACT.md # the contract — read this first
89
+ ├── active/
90
+ │ ├── state.json # derived working state (atomic replace)
91
+ │ ├── handover.md # compact continuity document (atomic replace)
92
+ │ └── (resume_packet.md, history/ — runtime, git-ignored)
93
+ ├── logs/
94
+ │ └── events.jsonl # append-only raw timeline (source of truth)
95
+ ├── schemas/
96
+ │ ├── event.schema.json # JSON Schema Draft 2020-12
97
+ │ ├── state.schema.json
98
+ │ ├── memory.schema.json
99
+ │ ├── validation.schema.json
100
+ │ ├── thresholds.yaml # 40k/60k/70k/80k band math
101
+ │ ├── redaction.yaml # 9 default secret patterns
102
+ │ ├── tools.yaml # mechanical risk flags
103
+ │ └── migrations/{state,events}/
104
+ └── (db/context.sqlite, artifacts/ — runtime, git-ignored)
105
+ ```
106
+
107
+ ## Authority order
108
+
109
+ When sources disagree, lower wins:
110
+
111
+ 1. Latest explicit user instruction
112
+ 2. Raw event log (`logs/events.jsonl`)
113
+ 3. `active/state.json`
114
+ 4. `active/handover.md`
115
+ 5. Derived memories
116
+
117
+ A stale summary or memory MUST NOT override a newer user instruction.
118
+
119
+ ## Commands
120
+
121
+ | Command | What it does |
122
+ |---|---|
123
+ | `remaind init` | Bootstrap `.context/`; `--force` backs up existing |
124
+ | `remaind validate` | Walk the v1 checklist (structure, schemas, events, SQLite) |
125
+ | `remaind status [--json]` | State + thresholds + event counts + compaction recommendation |
126
+ | `remaind compact` | Run the compaction pipeline, gated by structured validation |
127
+ | `remaind resume [--next-tool TOOL]` | Build a resume packet; consult the resume gate |
128
+ | `remaind rollback --to <ts>` | Restore derived files from history; raw log untouched |
129
+
130
+ ## Architecture
131
+
132
+ | Phase | Subject |
133
+ |---|---|
134
+ | 1 | Frozen contract — schemas, configs, layout |
135
+ | 2 | Migration interfaces — state migrations + event adapters (Protocols) |
136
+ | 3 | `init` + `validate` + schema/config loaders + JSONL streaming |
137
+ | 4 | Redaction engine + content-addressed artifact store + append-only event writer |
138
+ | 5 | Atomic state/handover writes + history snapshots + threshold band recompute |
139
+ | 6 | `status` human/JSON inspector |
140
+ | 7 | SQLite memory + FTS5 (memories, memories_fts, events_index) |
141
+ | 8 | `chars/4` token estimator + compaction-needed surface |
142
+ | 9 | Source-event selection + reference compactor |
143
+ | 10 | Structured compaction validator (reject-on-any-false) |
144
+ | 11 | Resume packet builder + mechanical resume gate |
145
+ | 12 | Rollback (restores derived files; raw log untouched) |
146
+
147
+ ## V1 non-goals
148
+
149
+ No vector search, no multi-writer semantics, no cross-project global user
150
+ memory, no procedural memory, no remote sync, no hosted UI, no
151
+ provider-managed conversation state as a dependency, no destructive raw-log
152
+ migration.
153
+
154
+ ## Hard rules
155
+
156
+ - Do not rewrite `events.jsonl`.
157
+ - Do not let summaries become source of truth.
158
+ - Do not store secrets in raw logs.
159
+ - Do not store huge outputs inline (threshold: 4096 bytes).
160
+ - Do not allow stale memory to override latest user instruction.
161
+ - Do not accept compaction without structured validation.
162
+ - Do not mutate files on resume if the resume packet is contradictory or unsafe.
163
+
164
+ ## Tests
165
+
166
+ ```sh
167
+ .venv/bin/python -m pytest -q
168
+ ```
169
+
170
+ 177 tests covering every phase. Adding a feature? Add a test.
171
+
172
+ ## License
173
+
174
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,144 @@
1
+ # Remaind
2
+
3
+ [![tests](https://github.com/magpiexyz-lab/Remaind/actions/workflows/ci.yml/badge.svg)](https://github.com/magpiexyz-lab/Remaind/actions/workflows/ci.yml)
4
+ [![python](https://img.shields.io/badge/python-3.11%2B-blue)](#)
5
+ [![license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
+
7
+ **Durable context for long-running agents.**
8
+
9
+ Remaind is a local-first context ledger, compaction pipeline, and resume
10
+ substrate for AI agents. It preserves the meaningful state of an agent run
11
+ across context resets: a future agent can start with a clean model context,
12
+ load Remaind's local state, understand what happened before, know what must
13
+ happen next, and continue safely without asking the user to reconstruct the
14
+ work.
15
+
16
+ Remaind is not a wiki — it is a **machine-readable and human-readable
17
+ continuity layer**: raw event ledger, structured state, compact handover,
18
+ searchable memory, structured validation, safe rollback, and a mechanical
19
+ resume gate.
20
+
21
+ ## Install
22
+
23
+ ```sh
24
+ git clone https://github.com/magpiexyz-lab/Remaind.git
25
+ cd Remaind
26
+ python3 -m venv .venv
27
+ .venv/bin/pip install -e ".[dev]"
28
+ ```
29
+
30
+ Requires Python ≥ 3.11.
31
+
32
+ ## Quick start
33
+
34
+ ```sh
35
+ # Bootstrap a .context/ in the current directory.
36
+ remaind init
37
+
38
+ # Inspect what's there.
39
+ remaind validate
40
+ remaind status
41
+
42
+ # After work happens (events appended by your agent harness),
43
+ # compact when token band climbs.
44
+ remaind compact
45
+
46
+ # Build a resume packet for a fresh agent run.
47
+ remaind resume --next-tool deploy_prod
48
+
49
+ # Roll back if something went wrong.
50
+ remaind rollback --to 2026-05-14T03:54:33Z
51
+ ```
52
+
53
+ ## What lives in `.context/`
54
+
55
+ ```
56
+ .context/
57
+ ├── README.md
58
+ ├── CONTRACT.md # the contract — read this first
59
+ ├── active/
60
+ │ ├── state.json # derived working state (atomic replace)
61
+ │ ├── handover.md # compact continuity document (atomic replace)
62
+ │ └── (resume_packet.md, history/ — runtime, git-ignored)
63
+ ├── logs/
64
+ │ └── events.jsonl # append-only raw timeline (source of truth)
65
+ ├── schemas/
66
+ │ ├── event.schema.json # JSON Schema Draft 2020-12
67
+ │ ├── state.schema.json
68
+ │ ├── memory.schema.json
69
+ │ ├── validation.schema.json
70
+ │ ├── thresholds.yaml # 40k/60k/70k/80k band math
71
+ │ ├── redaction.yaml # 9 default secret patterns
72
+ │ ├── tools.yaml # mechanical risk flags
73
+ │ └── migrations/{state,events}/
74
+ └── (db/context.sqlite, artifacts/ — runtime, git-ignored)
75
+ ```
76
+
77
+ ## Authority order
78
+
79
+ When sources disagree, lower wins:
80
+
81
+ 1. Latest explicit user instruction
82
+ 2. Raw event log (`logs/events.jsonl`)
83
+ 3. `active/state.json`
84
+ 4. `active/handover.md`
85
+ 5. Derived memories
86
+
87
+ A stale summary or memory MUST NOT override a newer user instruction.
88
+
89
+ ## Commands
90
+
91
+ | Command | What it does |
92
+ |---|---|
93
+ | `remaind init` | Bootstrap `.context/`; `--force` backs up existing |
94
+ | `remaind validate` | Walk the v1 checklist (structure, schemas, events, SQLite) |
95
+ | `remaind status [--json]` | State + thresholds + event counts + compaction recommendation |
96
+ | `remaind compact` | Run the compaction pipeline, gated by structured validation |
97
+ | `remaind resume [--next-tool TOOL]` | Build a resume packet; consult the resume gate |
98
+ | `remaind rollback --to <ts>` | Restore derived files from history; raw log untouched |
99
+
100
+ ## Architecture
101
+
102
+ | Phase | Subject |
103
+ |---|---|
104
+ | 1 | Frozen contract — schemas, configs, layout |
105
+ | 2 | Migration interfaces — state migrations + event adapters (Protocols) |
106
+ | 3 | `init` + `validate` + schema/config loaders + JSONL streaming |
107
+ | 4 | Redaction engine + content-addressed artifact store + append-only event writer |
108
+ | 5 | Atomic state/handover writes + history snapshots + threshold band recompute |
109
+ | 6 | `status` human/JSON inspector |
110
+ | 7 | SQLite memory + FTS5 (memories, memories_fts, events_index) |
111
+ | 8 | `chars/4` token estimator + compaction-needed surface |
112
+ | 9 | Source-event selection + reference compactor |
113
+ | 10 | Structured compaction validator (reject-on-any-false) |
114
+ | 11 | Resume packet builder + mechanical resume gate |
115
+ | 12 | Rollback (restores derived files; raw log untouched) |
116
+
117
+ ## V1 non-goals
118
+
119
+ No vector search, no multi-writer semantics, no cross-project global user
120
+ memory, no procedural memory, no remote sync, no hosted UI, no
121
+ provider-managed conversation state as a dependency, no destructive raw-log
122
+ migration.
123
+
124
+ ## Hard rules
125
+
126
+ - Do not rewrite `events.jsonl`.
127
+ - Do not let summaries become source of truth.
128
+ - Do not store secrets in raw logs.
129
+ - Do not store huge outputs inline (threshold: 4096 bytes).
130
+ - Do not allow stale memory to override latest user instruction.
131
+ - Do not accept compaction without structured validation.
132
+ - Do not mutate files on resume if the resume packet is contradictory or unsafe.
133
+
134
+ ## Tests
135
+
136
+ ```sh
137
+ .venv/bin/python -m pytest -q
138
+ ```
139
+
140
+ 177 tests covering every phase. Adding a feature? Add a test.
141
+
142
+ ## License
143
+
144
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,98 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.25"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "remaind"
7
+ version = "0.1.0"
8
+ description = "Durable context for long-running agents."
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = { text = "MIT" }
12
+ authors = [{ name = "Magpie Labs" }]
13
+ keywords = ["agents", "context", "ledger", "compaction", "handover"]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Developers",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Topic :: Software Development :: Libraries",
23
+ ]
24
+ dependencies = [
25
+ "jsonschema>=4.18",
26
+ "pyyaml>=6.0",
27
+ ]
28
+
29
+ [project.optional-dependencies]
30
+ dev = [
31
+ "pytest>=8.0",
32
+ "pytest-cov>=5.0",
33
+ "ruff>=0.6",
34
+ "mypy>=1.10",
35
+ "types-jsonschema>=4.18",
36
+ "types-PyYAML>=6.0",
37
+ ]
38
+
39
+ [project.scripts]
40
+ remaind = "remaind.cli:main"
41
+
42
+ [project.urls]
43
+ Homepage = "https://github.com/magpiexyz-lab/Remaind"
44
+ Repository = "https://github.com/magpiexyz-lab/Remaind"
45
+
46
+ [tool.hatch.build.targets.wheel]
47
+ packages = ["src/remaind"]
48
+ # `_templates/` ships automatically as part of the `remaind` package — no
49
+ # force-include needed. Non-Python resources are picked up because hatch
50
+ # walks the whole package directory.
51
+
52
+ [tool.pytest.ini_options]
53
+ minversion = "8.0"
54
+ testpaths = ["tests"]
55
+ addopts = "-ra --strict-markers"
56
+ pythonpath = ["src"]
57
+
58
+ [tool.coverage.run]
59
+ branch = true
60
+ source = ["src/remaind"]
61
+
62
+ [tool.coverage.report]
63
+ exclude_lines = [
64
+ "pragma: no cover",
65
+ "raise NotImplementedError",
66
+ "if TYPE_CHECKING:",
67
+ ]
68
+
69
+ [tool.ruff]
70
+ line-length = 100
71
+ target-version = "py311"
72
+ extend-exclude = ["template-archive"]
73
+
74
+ [tool.ruff.lint]
75
+ select = [
76
+ "E", # pycodestyle errors
77
+ "W", # pycodestyle warnings
78
+ "F", # pyflakes
79
+ "I", # isort
80
+ "B", # flake8-bugbear
81
+ "UP", # pyupgrade
82
+ "RUF", # ruff-specific
83
+ ]
84
+ ignore = [
85
+ "E501", # line length handled by formatter
86
+ "RUF002", # ambiguous unicode in docstrings (× and — used intentionally)
87
+ ]
88
+
89
+ [tool.mypy]
90
+ python_version = "3.11"
91
+ files = ["src/remaind"]
92
+ exclude = "template-archive"
93
+ check_untyped_defs = true
94
+ warn_unused_ignores = true
95
+ warn_redundant_casts = true
96
+ no_implicit_optional = true
97
+ warn_return_any = false # too noisy with JSON-shaped dicts
98
+ strict_equality = true
@@ -0,0 +1,3 @@
1
+ """Remaind — durable context for long-running agents."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,10 @@
1
+ """Allow `python -m remaind ...` to invoke the CLI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import sys
6
+
7
+ from .cli import main
8
+
9
+ if __name__ == "__main__":
10
+ sys.exit(main())