skep 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (590) hide show
  1. skep-1.0.1/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
  2. skep-1.0.1/.github/ISSUE_TEMPLATE/question.md +21 -0
  3. skep-1.0.1/.github/workflows/ci.yml +79 -0
  4. skep-1.0.1/.github/workflows/release.yml +95 -0
  5. skep-1.0.1/.gitignore +17 -0
  6. skep-1.0.1/CLAUDE.md +115 -0
  7. skep-1.0.1/CONTRIBUTING.md +76 -0
  8. skep-1.0.1/Dockerfile +41 -0
  9. skep-1.0.1/Dockerfile.dockerignore +19 -0
  10. skep-1.0.1/LICENSE +21 -0
  11. skep-1.0.1/Makefile +90 -0
  12. skep-1.0.1/PKG-INFO +153 -0
  13. skep-1.0.1/README.md +109 -0
  14. skep-1.0.1/SECURITY.md +30 -0
  15. skep-1.0.1/agent-task-contract-spec-v0.1.md +190 -0
  16. skep-1.0.1/docker-compose.yml +26 -0
  17. skep-1.0.1/docs/README.md +63 -0
  18. skep-1.0.1/docs/adr/0001-contract-ownership.md +30 -0
  19. skep-1.0.1/docs/adr/0002-worktree-patch-approval.md +41 -0
  20. skep-1.0.1/docs/adr/0003-carve-out-boundary.md +38 -0
  21. skep-1.0.1/docs/adr/0004-licensing.md +39 -0
  22. skep-1.0.1/docs/adr/0005-seatbelt-sandbox.md +74 -0
  23. skep-1.0.1/docs/adr/0006-supervisor-reverification.md +57 -0
  24. skep-1.0.1/docs/adr/0007-auto-approval-rules.md +51 -0
  25. skep-1.0.1/docs/adr/0008-suspend-resume.md +50 -0
  26. skep-1.0.1/docs/adr/0009-usage-accounting.md +40 -0
  27. skep-1.0.1/docs/adr/0010-storage-gate.md +59 -0
  28. skep-1.0.1/docs/adr/0011-network-allowlist-proxy.md +64 -0
  29. skep-1.0.1/docs/adr/0012-scheduling.md +50 -0
  30. skep-1.0.1/docs/adr/0013-auto-approval-active-u1.md +53 -0
  31. skep-1.0.1/docs/adr/0014-container-portability.md +73 -0
  32. skep-1.0.1/docs/adr/0015-workflow-templates.md +77 -0
  33. skep-1.0.1/docs/adr/0016-learned-skills-promotion.md +124 -0
  34. skep-1.0.1/docs/adr/0017-serve-api-daemon.md +87 -0
  35. skep-1.0.1/docs/adr/0018-container-packaging.md +72 -0
  36. skep-1.0.1/docs/adr/0019-llm-chat-in-the-queen.md +88 -0
  37. skep-1.0.1/docs/adr/0020-notes-tasks-gating.md +36 -0
  38. skep-1.0.1/docs/adr/0021-browser-automation-deferred.md +44 -0
  39. skep-1.0.1/docs/adr/0022-policy-first-unified-schema.md +84 -0
  40. skep-1.0.1/docs/adr/0023-queen-file-reads.md +50 -0
  41. skep-1.0.1/docs/adr/0024-script-worker-run-code.md +50 -0
  42. skep-1.0.1/docs/adr/0025-batch-dispatch.md +37 -0
  43. skep-1.0.1/docs/adr/0026-operator-policy-resolution.md +68 -0
  44. skep-1.0.1/docs/adr/0027-chat-context-injection.md +48 -0
  45. skep-1.0.1/docs/adr/0028-profile-persona.md +44 -0
  46. skep-1.0.1/docs/adr/0029-conversation-skills.md +50 -0
  47. skep-1.0.1/docs/adr/0030-cron-context-chaining.md +47 -0
  48. skep-1.0.1/docs/adr/0031-voice-channel-layer.md +53 -0
  49. skep-1.0.1/docs/adr/0032-card-auto-deny-timeout.md +47 -0
  50. skep-1.0.1/docs/adr/0033-human-readable-cards.md +43 -0
  51. skep-1.0.1/docs/adr/0034-multi-run-pr-grouping.md +48 -0
  52. skep-1.0.1/docs/adr/0035-repo-freshness-supervisor.md +61 -0
  53. skep-1.0.1/docs/adr/0036-project-policy-copy.md +45 -0
  54. skep-1.0.1/docs/adr/0037-chat-context-budget.md +57 -0
  55. skep-1.0.1/docs/adr/0038-approvals-announce.md +51 -0
  56. skep-1.0.1/docs/adr/0039-queen-git-surface.md +50 -0
  57. skep-1.0.1/docs/adr/0040-reactive-worker-execution.md +64 -0
  58. skep-1.0.1/docs/adr/0041-reasoning-delegation.md +48 -0
  59. skep-1.0.1/docs/adr/0042-prompt-schedules.md +52 -0
  60. skep-1.0.1/docs/adr/0043-seed-skills.md +49 -0
  61. skep-1.0.1/docs/adr/0044-outbound-content-cards.md +57 -0
  62. skep-1.0.1/docs/adr/0045-skill-pack-lifecycle.md +76 -0
  63. skep-1.0.1/docs/adr/0046-session-approvals.md +59 -0
  64. skep-1.0.1/docs/adr/0047-cli-agent-engines.md +104 -0
  65. skep-1.0.1/docs/adr/0048-policy-groups.md +78 -0
  66. skep-1.0.1/docs/adr/0049-caste-registry.md +92 -0
  67. skep-1.0.1/docs/adr/0050-one-verb-three-faces.md +90 -0
  68. skep-1.0.1/docs/adr/README.md +63 -0
  69. skep-1.0.1/docs/approvals.md +138 -0
  70. skep-1.0.1/docs/assets/skep-demo.gif +0 -0
  71. skep-1.0.1/docs/assistant-tools.md +57 -0
  72. skep-1.0.1/docs/brain.md +47 -0
  73. skep-1.0.1/docs/browser.md +49 -0
  74. skep-1.0.1/docs/cli-reference.md +224 -0
  75. skep-1.0.1/docs/competitive-analysis.md +115 -0
  76. skep-1.0.1/docs/configuration.md +223 -0
  77. skep-1.0.1/docs/demo-gif.md +47 -0
  78. skep-1.0.1/docs/favicon.svg +7 -0
  79. skep-1.0.1/docs/how-it-works.md +208 -0
  80. skep-1.0.1/docs/how-to-use-on-new-machine.md +110 -0
  81. skep-1.0.1/docs/index.html +293 -0
  82. skep-1.0.1/docs/invariants.md +280 -0
  83. skep-1.0.1/docs/landing.css +516 -0
  84. skep-1.0.1/docs/landing.js +58 -0
  85. skep-1.0.1/docs/launch.md +233 -0
  86. skep-1.0.1/docs/mobile.md +73 -0
  87. skep-1.0.1/docs/post-launch.md +69 -0
  88. skep-1.0.1/docs/quickstart.md +116 -0
  89. skep-1.0.1/docs/release-checklist.md +151 -0
  90. skep-1.0.1/docs/releases/README.md +72 -0
  91. skep-1.0.1/docs/sandboxing.md +92 -0
  92. skep-1.0.1/docs/verification.md +91 -0
  93. skep-1.0.1/docs/version-history.md +2466 -0
  94. skep-1.0.1/docs/workers.md +195 -0
  95. skep-1.0.1/examples/skep-demo/README.md +23 -0
  96. skep-1.0.1/examples/skep-demo/app.py +7 -0
  97. skep-1.0.1/examples/skep-demo/tests/test_app.py +23 -0
  98. skep-1.0.1/pyproject.toml +115 -0
  99. skep-1.0.1/scripts/claude-adapter-smoke.sh +134 -0
  100. skep-1.0.1/scripts/demo_worker.py +270 -0
  101. skep-1.0.1/scripts/docker-image-smoke.sh +65 -0
  102. skep-1.0.1/scripts/docs-link-smoke.py +59 -0
  103. skep-1.0.1/scripts/install.sh +73 -0
  104. skep-1.0.1/scripts/linux-sandbox-docker-smoke.sh +16 -0
  105. skep-1.0.1/scripts/linux-sandbox-smoke.sh +83 -0
  106. skep-1.0.1/scripts/local-release-gates.sh +36 -0
  107. skep-1.0.1/scripts/mirror-demo-repo.sh +75 -0
  108. skep-1.0.1/scripts/package-install-smoke.sh +42 -0
  109. skep-1.0.1/scripts/record-demo-gif.sh +134 -0
  110. skep-1.0.1/scripts/release-hygiene-scan.sh +120 -0
  111. skep-1.0.1/scripts/reliability.sh +84 -0
  112. skep-1.0.1/scripts/scorecard.py +13 -0
  113. skep-1.0.1/src/skep/__init__.py +1 -0
  114. skep-1.0.1/src/skep/__main__.py +4 -0
  115. skep-1.0.1/src/skep/cli.py +302 -0
  116. skep-1.0.1/src/skep/cli_chat.py +1289 -0
  117. skep-1.0.1/src/skep/dashboard.py +228 -0
  118. skep-1.0.1/src/skep/mcp_servers/__init__.py +8 -0
  119. skep-1.0.1/src/skep/mcp_servers/calendar.py +258 -0
  120. skep-1.0.1/src/skep/mcp_servers/mail.py +287 -0
  121. skep-1.0.1/src/skep/netshim.py +108 -0
  122. skep-1.0.1/src/skep/profile.py +129 -0
  123. skep-1.0.1/src/skep/seeds/skills/add-a-test/SKILL.md +18 -0
  124. skep-1.0.1/src/skep/seeds/skills/airtable/SKILL.md +26 -0
  125. skep-1.0.1/src/skep/seeds/skills/architecture-diagram/SKILL.md +22 -0
  126. skep-1.0.1/src/skep/seeds/skills/arxiv/SKILL.md +21 -0
  127. skep-1.0.1/src/skep/seeds/skills/ascii-art/SKILL.md +22 -0
  128. skep-1.0.1/src/skep/seeds/skills/ascii-video/SKILL.md +23 -0
  129. skep-1.0.1/src/skep/seeds/skills/audiocraft-audio-generation/SKILL.md +26 -0
  130. skep-1.0.1/src/skep/seeds/skills/audit-an-agent-stack/SKILL.md +39 -0
  131. skep-1.0.1/src/skep/seeds/skills/baoyu-infographic/SKILL.md +25 -0
  132. skep-1.0.1/src/skep/seeds/skills/blogwatcher/SKILL.md +22 -0
  133. skep-1.0.1/src/skep/seeds/skills/briefing-a-worker-about-git/SKILL.md +78 -0
  134. skep-1.0.1/src/skep/seeds/skills/claude-code/SKILL.md +23 -0
  135. skep-1.0.1/src/skep/seeds/skills/cli-app-field-testing/SKILL.md +21 -0
  136. skep-1.0.1/src/skep/seeds/skills/codebase-architecture-analysis/SKILL.md +24 -0
  137. skep-1.0.1/src/skep/seeds/skills/codex/SKILL.md +19 -0
  138. skep-1.0.1/src/skep/seeds/skills/comfyui/SKILL.md +27 -0
  139. skep-1.0.1/src/skep/seeds/skills/company-research/SKILL.md +21 -0
  140. skep-1.0.1/src/skep/seeds/skills/compare-coding-engines/SKILL.md +37 -0
  141. skep-1.0.1/src/skep/seeds/skills/computer-use/SKILL.md +23 -0
  142. skep-1.0.1/src/skep/seeds/skills/council/SKILL.md +35 -0
  143. skep-1.0.1/src/skep/seeds/skills/create-a-new-module/SKILL.md +16 -0
  144. skep-1.0.1/src/skep/seeds/skills/daily-briefing/SKILL.md +20 -0
  145. skep-1.0.1/src/skep/seeds/skills/debug-a-failure/SKILL.md +18 -0
  146. skep-1.0.1/src/skep/seeds/skills/deck-widgets/SKILL.md +28 -0
  147. skep-1.0.1/src/skep/seeds/skills/design-md/SKILL.md +25 -0
  148. skep-1.0.1/src/skep/seeds/skills/discord-bot-development/SKILL.md +21 -0
  149. skep-1.0.1/src/skep/seeds/skills/discord-web-api/SKILL.md +28 -0
  150. skep-1.0.1/src/skep/seeds/skills/docx/SKILL.md +23 -0
  151. skep-1.0.1/src/skep/seeds/skills/dogfood/SKILL.md +22 -0
  152. skep-1.0.1/src/skep/seeds/skills/email-cleanup/SKILL.md +28 -0
  153. skep-1.0.1/src/skep/seeds/skills/evaluating-llms-harness/SKILL.md +27 -0
  154. skep-1.0.1/src/skep/seeds/skills/excalidraw/SKILL.md +26 -0
  155. skep-1.0.1/src/skep/seeds/skills/fix-a-lint-error/SKILL.md +17 -0
  156. skep-1.0.1/src/skep/seeds/skills/gif-search/SKILL.md +20 -0
  157. skep-1.0.1/src/skep/seeds/skills/git-and-github/SKILL.md +121 -0
  158. skep-1.0.1/src/skep/seeds/skills/google-workspace/SKILL.md +24 -0
  159. skep-1.0.1/src/skep/seeds/skills/himalaya/SKILL.md +26 -0
  160. skep-1.0.1/src/skep/seeds/skills/html-design/SKILL.md +25 -0
  161. skep-1.0.1/src/skep/seeds/skills/huggingface-hub/SKILL.md +25 -0
  162. skep-1.0.1/src/skep/seeds/skills/humanizer/SKILL.md +26 -0
  163. skep-1.0.1/src/skep/seeds/skills/investigate-a-codebase/SKILL.md +20 -0
  164. skep-1.0.1/src/skep/seeds/skills/jupyter-live-kernel/SKILL.md +20 -0
  165. skep-1.0.1/src/skep/seeds/skills/llama-cpp/SKILL.md +28 -0
  166. skep-1.0.1/src/skep/seeds/skills/llm-wiki/SKILL.md +21 -0
  167. skep-1.0.1/src/skep/seeds/skills/manim-video/SKILL.md +26 -0
  168. skep-1.0.1/src/skep/seeds/skills/maps/SKILL.md +25 -0
  169. skep-1.0.1/src/skep/seeds/skills/nano-pdf/SKILL.md +23 -0
  170. skep-1.0.1/src/skep/seeds/skills/node-inspect-debugger/SKILL.md +20 -0
  171. skep-1.0.1/src/skep/seeds/skills/notion/SKILL.md +24 -0
  172. skep-1.0.1/src/skep/seeds/skills/obsidian/SKILL.md +23 -0
  173. skep-1.0.1/src/skep/seeds/skills/ocr-and-documents/SKILL.md +27 -0
  174. skep-1.0.1/src/skep/seeds/skills/opencode/SKILL.md +17 -0
  175. skep-1.0.1/src/skep/seeds/skills/orchestrate-cli-coding-agent/SKILL.md +25 -0
  176. skep-1.0.1/src/skep/seeds/skills/p5js/SKILL.md +24 -0
  177. skep-1.0.1/src/skep/seeds/skills/pdf/SKILL.md +24 -0
  178. skep-1.0.1/src/skep/seeds/skills/plan/SKILL.md +23 -0
  179. skep-1.0.1/src/skep/seeds/skills/polymarket/SKILL.md +21 -0
  180. skep-1.0.1/src/skep/seeds/skills/popular-web-designs/SKILL.md +27 -0
  181. skep-1.0.1/src/skep/seeds/skills/postmortem-a-run/SKILL.md +38 -0
  182. skep-1.0.1/src/skep/seeds/skills/powerpoint/SKILL.md +23 -0
  183. skep-1.0.1/src/skep/seeds/skills/prepare-a-release/SKILL.md +18 -0
  184. skep-1.0.1/src/skep/seeds/skills/pretext/SKILL.md +26 -0
  185. skep-1.0.1/src/skep/seeds/skills/production-readiness/SKILL.md +41 -0
  186. skep-1.0.1/src/skep/seeds/skills/python-debugpy/SKILL.md +23 -0
  187. skep-1.0.1/src/skep/seeds/skills/requesting-code-review/SKILL.md +22 -0
  188. skep-1.0.1/src/skep/seeds/skills/research-a-topic/SKILL.md +23 -0
  189. skep-1.0.1/src/skep/seeds/skills/review-a-pr/SKILL.md +19 -0
  190. skep-1.0.1/src/skep/seeds/skills/security-audit/SKILL.md +40 -0
  191. skep-1.0.1/src/skep/seeds/skills/segment-anything-model/SKILL.md +26 -0
  192. skep-1.0.1/src/skep/seeds/skills/serving-llms-vllm/SKILL.md +27 -0
  193. skep-1.0.1/src/skep/seeds/skills/simplify-code/SKILL.md +20 -0
  194. skep-1.0.1/src/skep/seeds/skills/skep-agent/SKILL.md +23 -0
  195. skep-1.0.1/src/skep/seeds/skills/skep-skill-authoring/SKILL.md +25 -0
  196. skep-1.0.1/src/skep/seeds/skills/sketch/SKILL.md +25 -0
  197. skep-1.0.1/src/skep/seeds/skills/songwriting-and-ai-music/SKILL.md +26 -0
  198. skep-1.0.1/src/skep/seeds/skills/spike/SKILL.md +21 -0
  199. skep-1.0.1/src/skep/seeds/skills/summarize-a-youtube-video/SKILL.md +20 -0
  200. skep-1.0.1/src/skep/seeds/skills/systematic-debugging/SKILL.md +23 -0
  201. skep-1.0.1/src/skep/seeds/skills/teams-meeting-pipeline/SKILL.md +25 -0
  202. skep-1.0.1/src/skep/seeds/skills/test-driven-development/SKILL.md +21 -0
  203. skep-1.0.1/src/skep/seeds/skills/touchdesigner-mcp/SKILL.md +28 -0
  204. skep-1.0.1/src/skep/seeds/skills/weights-and-biases/SKILL.md +27 -0
  205. skep-1.0.1/src/skep/seeds/skills/write-an-adr/SKILL.md +34 -0
  206. skep-1.0.1/src/skep/seeds/skills/xlsx/SKILL.md +23 -0
  207. skep-1.0.1/src/skep/seeds/skills/xurl/SKILL.md +28 -0
  208. skep-1.0.1/src/skep/seeds/tools/yt_transcript.py +197 -0
  209. skep-1.0.1/src/skep/server.py +42 -0
  210. skep-1.0.1/src/skep/status.py +565 -0
  211. skep-1.0.1/src/skep/supervisor/__init__.py +147 -0
  212. skep-1.0.1/src/skep/supervisor/apply.py +234 -0
  213. skep-1.0.1/src/skep/supervisor/autonomy.py +211 -0
  214. skep-1.0.1/src/skep/supervisor/castes.py +183 -0
  215. skep-1.0.1/src/skep/supervisor/channel_cmds.py +78 -0
  216. skep-1.0.1/src/skep/supervisor/cli_cmds.py +2784 -0
  217. skep-1.0.1/src/skep/supervisor/config.py +75 -0
  218. skep-1.0.1/src/skep/supervisor/container.py +88 -0
  219. skep-1.0.1/src/skep/supervisor/contracts_io.py +129 -0
  220. skep-1.0.1/src/skep/supervisor/dispatch.py +868 -0
  221. skep-1.0.1/src/skep/supervisor/engines.py +140 -0
  222. skep-1.0.1/src/skep/supervisor/forge.py +405 -0
  223. skep-1.0.1/src/skep/supervisor/github.py +245 -0
  224. skep-1.0.1/src/skep/supervisor/hermes_cmds.py +271 -0
  225. skep-1.0.1/src/skep/supervisor/ids.py +16 -0
  226. skep-1.0.1/src/skep/supervisor/ingest.py +339 -0
  227. skep-1.0.1/src/skep/supervisor/mcp_client.py +539 -0
  228. skep-1.0.1/src/skep/supervisor/memory.py +127 -0
  229. skep-1.0.1/src/skep/supervisor/memory_cmds.py +332 -0
  230. skep-1.0.1/src/skep/supervisor/monitor.py +187 -0
  231. skep-1.0.1/src/skep/supervisor/netproxy.py +323 -0
  232. skep-1.0.1/src/skep/supervisor/nodes.py +81 -0
  233. skep-1.0.1/src/skep/supervisor/observe.py +201 -0
  234. skep-1.0.1/src/skep/supervisor/obsidian.py +102 -0
  235. skep-1.0.1/src/skep/supervisor/ops_cmds.py +241 -0
  236. skep-1.0.1/src/skep/supervisor/packs.py +308 -0
  237. skep-1.0.1/src/skep/supervisor/permission_profile.py +127 -0
  238. skep-1.0.1/src/skep/supervisor/plugin_lifecycle.py +129 -0
  239. skep-1.0.1/src/skep/supervisor/policy.py +210 -0
  240. skep-1.0.1/src/skep/supervisor/policy_resolver.py +755 -0
  241. skep-1.0.1/src/skep/supervisor/policy_schema.py +370 -0
  242. skep-1.0.1/src/skep/supervisor/policy_templates/__init__.py +135 -0
  243. skep-1.0.1/src/skep/supervisor/policy_templates/assistant.json +59 -0
  244. skep-1.0.1/src/skep/supervisor/policy_templates/homelab-ops.json +56 -0
  245. skep-1.0.1/src/skep/supervisor/policy_templates/locked-down.json +48 -0
  246. skep-1.0.1/src/skep/supervisor/policy_templates/personal-dev.json +55 -0
  247. skep-1.0.1/src/skep/supervisor/projects.py +560 -0
  248. skep-1.0.1/src/skep/supervisor/provider_hosts.py +50 -0
  249. skep-1.0.1/src/skep/supervisor/providers.py +250 -0
  250. skep-1.0.1/src/skep/supervisor/reverify.py +292 -0
  251. skep-1.0.1/src/skep/supervisor/sandbox.py +561 -0
  252. skep-1.0.1/src/skep/supervisor/scheduler.py +742 -0
  253. skep-1.0.1/src/skep/supervisor/scorecard.py +174 -0
  254. skep-1.0.1/src/skep/supervisor/scorecard_runner.py +256 -0
  255. skep-1.0.1/src/skep/supervisor/seed_skills.py +138 -0
  256. skep-1.0.1/src/skep/supervisor/serve/__init__.py +17 -0
  257. skep-1.0.1/src/skep/supervisor/serve/actions.py +3197 -0
  258. skep-1.0.1/src/skep/supervisor/serve/app.py +825 -0
  259. skep-1.0.1/src/skep/supervisor/serve/auth.py +72 -0
  260. skep-1.0.1/src/skep/supervisor/serve/cards.py +235 -0
  261. skep-1.0.1/src/skep/supervisor/serve/channels/__init__.py +254 -0
  262. skep-1.0.1/src/skep/supervisor/serve/channels/discord.py +200 -0
  263. skep-1.0.1/src/skep/supervisor/serve/channels/outbound.py +225 -0
  264. skep-1.0.1/src/skep/supervisor/serve/channels/runtime.py +1377 -0
  265. skep-1.0.1/src/skep/supervisor/serve/channels/slack.py +154 -0
  266. skep-1.0.1/src/skep/supervisor/serve/channels/telegram.py +190 -0
  267. skep-1.0.1/src/skep/supervisor/serve/chat.py +2284 -0
  268. skep-1.0.1/src/skep/supervisor/serve/discord_admin.py +42 -0
  269. skep-1.0.1/src/skep/supervisor/serve/fastlane.py +96 -0
  270. skep-1.0.1/src/skep/supervisor/serve/fileio.py +312 -0
  271. skep-1.0.1/src/skep/supervisor/serve/jobs.py +139 -0
  272. skep-1.0.1/src/skep/supervisor/serve/llm.py +850 -0
  273. skep-1.0.1/src/skep/supervisor/serve/memory.py +75 -0
  274. skep-1.0.1/src/skep/supervisor/serve/notes.py +139 -0
  275. skep-1.0.1/src/skep/supervisor/serve/persona.py +64 -0
  276. skep-1.0.1/src/skep/supervisor/serve/processes.py +163 -0
  277. skep-1.0.1/src/skep/supervisor/serve/registry.py +1679 -0
  278. skep-1.0.1/src/skep/supervisor/serve/remediation.py +68 -0
  279. skep-1.0.1/src/skep/supervisor/serve/run_status.py +350 -0
  280. skep-1.0.1/src/skep/supervisor/serve/serve_cmds.py +97 -0
  281. skep-1.0.1/src/skep/supervisor/serve/settings.py +297 -0
  282. skep-1.0.1/src/skep/supervisor/serve/setup.py +159 -0
  283. skep-1.0.1/src/skep/supervisor/serve/static/app.js +5503 -0
  284. skep-1.0.1/src/skep/supervisor/serve/static/fonts/OFL.txt +93 -0
  285. skep-1.0.1/src/skep/supervisor/serve/static/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  286. skep-1.0.1/src/skep/supervisor/serve/static/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
  287. skep-1.0.1/src/skep/supervisor/serve/static/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
  288. skep-1.0.1/src/skep/supervisor/serve/static/index.html +85 -0
  289. skep-1.0.1/src/skep/supervisor/serve/static/style.css +1473 -0
  290. skep-1.0.1/src/skep/supervisor/serve/ticker.py +286 -0
  291. skep-1.0.1/src/skep/supervisor/serve/tools.py +4717 -0
  292. skep-1.0.1/src/skep/supervisor/serve/webhooks.py +154 -0
  293. skep-1.0.1/src/skep/supervisor/serve/websearch.py +167 -0
  294. skep-1.0.1/src/skep/supervisor/shell_prefixes.py +277 -0
  295. skep-1.0.1/src/skep/supervisor/skill_bundle.py +132 -0
  296. skep-1.0.1/src/skep/supervisor/skill_cmds.py +1008 -0
  297. skep-1.0.1/src/skep/supervisor/skill_curator.py +38 -0
  298. skep-1.0.1/src/skep/supervisor/skill_md.py +155 -0
  299. skep-1.0.1/src/skep/supervisor/skill_packs.py +498 -0
  300. skep-1.0.1/src/skep/supervisor/skills.py +336 -0
  301. skep-1.0.1/src/skep/supervisor/spawner.py +210 -0
  302. skep-1.0.1/src/skep/supervisor/store.py +3926 -0
  303. skep-1.0.1/src/skep/supervisor/template_suggestion.py +106 -0
  304. skep-1.0.1/src/skep/supervisor/templates.py +364 -0
  305. skep-1.0.1/src/skep/supervisor/voice.py +119 -0
  306. skep-1.0.1/src/skep/supervisor/worker_state.py +62 -0
  307. skep-1.0.1/src/skep/supervisor/worktree.py +134 -0
  308. skep-1.0.1/src/skep/worker_contract/__init__.py +102 -0
  309. skep-1.0.1/src/skep/worker_contract/events.py +132 -0
  310. skep-1.0.1/src/skep/worker_contract/py.typed +1 -0
  311. skep-1.0.1/src/skep/worker_contract/result.py +89 -0
  312. skep-1.0.1/src/skep/worker_contract/states.py +33 -0
  313. skep-1.0.1/src/skep/worker_contract/task.py +183 -0
  314. skep-1.0.1/src/skep/worker_contract/version.py +67 -0
  315. skep-1.0.1/src/skep/worker_contract/worker_state.py +234 -0
  316. skep-1.0.1/src/skep/workers/__init__.py +6 -0
  317. skep-1.0.1/src/skep/workers/aider/__init__.py +5 -0
  318. skep-1.0.1/src/skep/workers/aider/__main__.py +54 -0
  319. skep-1.0.1/src/skep/workers/audit.py +389 -0
  320. skep-1.0.1/src/skep/workers/capabilities.py +1697 -0
  321. skep-1.0.1/src/skep/workers/claude_code/__init__.py +5 -0
  322. skep-1.0.1/src/skep/workers/claude_code/__main__.py +49 -0
  323. skep-1.0.1/src/skep/workers/cli_adapter.py +415 -0
  324. skep-1.0.1/src/skep/workers/codex/__init__.py +5 -0
  325. skep-1.0.1/src/skep/workers/codex/__main__.py +41 -0
  326. skep-1.0.1/src/skep/workers/coding/__init__.py +5 -0
  327. skep-1.0.1/src/skep/workers/coding/__main__.py +6 -0
  328. skep-1.0.1/src/skep/workers/coding_minimal.py +2233 -0
  329. skep-1.0.1/src/skep/workers/curator.py +297 -0
  330. skep-1.0.1/src/skep/workers/document.py +376 -0
  331. skep-1.0.1/src/skep/workers/html_text.py +204 -0
  332. skep-1.0.1/src/skep/workers/llm_plan.py +880 -0
  333. skep-1.0.1/src/skep/workers/ollama/__init__.py +5 -0
  334. skep-1.0.1/src/skep/workers/ollama/__main__.py +70 -0
  335. skep-1.0.1/src/skep/workers/ops.py +157 -0
  336. skep-1.0.1/src/skep/workers/ops_executor.py +243 -0
  337. skep-1.0.1/src/skep/workers/researcher.py +445 -0
  338. skep-1.0.1/src/skep/workers/reviewer.py +473 -0
  339. skep-1.0.1/src/skep/workers/runtime_plugins.py +646 -0
  340. skep-1.0.1/src/skep/workers/script_worker.py +332 -0
  341. skep-1.0.1/src/skep/workers/shell_worker/__init__.py +5 -0
  342. skep-1.0.1/src/skep/workers/shell_worker/__main__.py +6 -0
  343. skep-1.0.1/src/skep/workers/shell_worker/runner.py +288 -0
  344. skep-1.0.1/src/skep/workers/verifier.py +302 -0
  345. skep-1.0.1/src/skep/workers/worker_runtime.py +109 -0
  346. skep-1.0.1/tests/__init__.py +0 -0
  347. skep-1.0.1/tests/external/__init__.py +1 -0
  348. skep-1.0.1/tests/external/test_feature_smokes.py +344 -0
  349. skep-1.0.1/tests/external/test_whole_app_external.py +220 -0
  350. skep-1.0.1/tests/field-test-tasks.md +83 -0
  351. skep-1.0.1/tests/fixtures/__init__.py +0 -0
  352. skep-1.0.1/tests/fixtures/capability_policy_matrix.json +229 -0
  353. skep-1.0.1/tests/fixtures/policy_regression/build_phase_manual_landing.json +11 -0
  354. skep-1.0.1/tests/fixtures/policy_regression/disallowed_network_denied.json +12 -0
  355. skep-1.0.1/tests/fixtures/policy_regression/explicit_override_requires_approval.json +12 -0
  356. skep-1.0.1/tests/fixtures/policy_regression/git_push_denied_regardless_of_grants.json +16 -0
  357. skep-1.0.1/tests/fixtures/policy_regression/maintain_phase_auto_landing.json +11 -0
  358. skep-1.0.1/tests/fixtures/policy_regression/missing_execution_mode_blocks_schedule.json +14 -0
  359. skep-1.0.1/tests/fixtures/policy_regression/publish_candidate_strict_landing.json +11 -0
  360. skep-1.0.1/tests/fixtures/policy_regression/remembered_command_normalized.json +30 -0
  361. skep-1.0.1/tests/fixtures/policy_regression/trusted_maintain_safe_dispatch.json +12 -0
  362. skep-1.0.1/tests/fixtures/policy_regression/unknown_repo_requires_approval.json +11 -0
  363. skep-1.0.1/tests/fixtures/policy_regression/v19_f2_provider_host_in_network.json +25 -0
  364. skep-1.0.1/tests/fixtures/policy_regression/v19_f3_remote_git_denied.json +30 -0
  365. skep-1.0.1/tests/fixtures/policy_regression/v19_f4_remembered_command_guarded.json +24 -0
  366. skep-1.0.1/tests/fixtures/policy_scopes/deny_wins_ties.json +25 -0
  367. skep-1.0.1/tests/fixtures/policy_scopes/most_specific_wins.json +65 -0
  368. skep-1.0.1/tests/fixtures/policy_scopes/overlay_tightens_base.json +48 -0
  369. skep-1.0.1/tests/fixtures/policy_templates/assistant.resolved.json +46 -0
  370. skep-1.0.1/tests/fixtures/policy_templates/homelab-ops.resolved.json +104 -0
  371. skep-1.0.1/tests/fixtures/policy_templates/locked-down.resolved.json +68 -0
  372. skep-1.0.1/tests/fixtures/policy_templates/personal-dev.resolved.json +98 -0
  373. skep-1.0.1/tests/fixtures/project_policy_v9_golden.json +48 -0
  374. skep-1.0.1/tests/fixtures/toy_repo.py +157 -0
  375. skep-1.0.1/tests/smoke/__init__.py +0 -0
  376. skep-1.0.1/tests/smoke/test_autonomy_scorecard.py +343 -0
  377. skep-1.0.1/tests/smoke/test_public_free_acceptance.py +124 -0
  378. skep-1.0.1/tests/smoke/test_setup_flow.py +115 -0
  379. skep-1.0.1/tests/smoke/test_skills_acceptance.py +206 -0
  380. skep-1.0.1/tests/smoke/test_templates_acceptance.py +110 -0
  381. skep-1.0.1/tests/smoke/test_u1_acceptance.py +109 -0
  382. skep-1.0.1/tests/smoke/test_whole_system.py +148 -0
  383. skep-1.0.1/tests/supervisor/__init__.py +0 -0
  384. skep-1.0.1/tests/supervisor/conftest.py +79 -0
  385. skep-1.0.1/tests/supervisor/fake_anthropic.py +152 -0
  386. skep-1.0.1/tests/supervisor/fake_ollama.py +170 -0
  387. skep-1.0.1/tests/supervisor/fake_openai.py +166 -0
  388. skep-1.0.1/tests/supervisor/fake_worker.py +306 -0
  389. skep-1.0.1/tests/supervisor/test_adr_launch_updates.py +30 -0
  390. skep-1.0.1/tests/supervisor/test_approval_grants.py +194 -0
  391. skep-1.0.1/tests/supervisor/test_approval_ledger.py +146 -0
  392. skep-1.0.1/tests/supervisor/test_audit_worker.py +89 -0
  393. skep-1.0.1/tests/supervisor/test_autonomy_parity.py +180 -0
  394. skep-1.0.1/tests/supervisor/test_await_runs.py +192 -0
  395. skep-1.0.1/tests/supervisor/test_batch_dispatch.py +369 -0
  396. skep-1.0.1/tests/supervisor/test_boundary_teaching.py +111 -0
  397. skep-1.0.1/tests/supervisor/test_browse_scope.py +248 -0
  398. skep-1.0.1/tests/supervisor/test_capability_policy_matrix.py +96 -0
  399. skep-1.0.1/tests/supervisor/test_card_description.py +59 -0
  400. skep-1.0.1/tests/supervisor/test_card_timeout.py +270 -0
  401. skep-1.0.1/tests/supervisor/test_cards.py +112 -0
  402. skep-1.0.1/tests/supervisor/test_castes.py +131 -0
  403. skep-1.0.1/tests/supervisor/test_channel_cli.py +50 -0
  404. skep-1.0.1/tests/supervisor/test_channels.py +223 -0
  405. skep-1.0.1/tests/supervisor/test_channels_live.py +951 -0
  406. skep-1.0.1/tests/supervisor/test_chat_attachments.py +120 -0
  407. skep-1.0.1/tests/supervisor/test_chat_context_budget.py +219 -0
  408. skep-1.0.1/tests/supervisor/test_chat_memory_injection.py +147 -0
  409. skep-1.0.1/tests/supervisor/test_chat_project_binding.py +125 -0
  410. skep-1.0.1/tests/supervisor/test_chat_search.py +234 -0
  411. skep-1.0.1/tests/supervisor/test_chat_skill_index.py +93 -0
  412. skep-1.0.1/tests/supervisor/test_chat_skill_mgmt.py +179 -0
  413. skep-1.0.1/tests/supervisor/test_chat_stream_retry.py +87 -0
  414. skep-1.0.1/tests/supervisor/test_ci_workflow.py +53 -0
  415. skep-1.0.1/tests/supervisor/test_clarify.py +127 -0
  416. skep-1.0.1/tests/supervisor/test_claude_adapter_smoke_script.py +175 -0
  417. skep-1.0.1/tests/supervisor/test_claude_code_worker.py +170 -0
  418. skep-1.0.1/tests/supervisor/test_cli.py +2575 -0
  419. skep-1.0.1/tests/supervisor/test_cli_adapters.py +289 -0
  420. skep-1.0.1/tests/supervisor/test_cli_chat.py +1233 -0
  421. skep-1.0.1/tests/supervisor/test_coding_engines.py +274 -0
  422. skep-1.0.1/tests/supervisor/test_coding_minimal_worker.py +5377 -0
  423. skep-1.0.1/tests/supervisor/test_command_deck.py +494 -0
  424. skep-1.0.1/tests/supervisor/test_composition_pin.py +133 -0
  425. skep-1.0.1/tests/supervisor/test_container.py +148 -0
  426. skep-1.0.1/tests/supervisor/test_conversation_skills.py +130 -0
  427. skep-1.0.1/tests/supervisor/test_crash_resume.py +231 -0
  428. skep-1.0.1/tests/supervisor/test_curator_worker.py +180 -0
  429. skep-1.0.1/tests/supervisor/test_decided_by.py +125 -0
  430. skep-1.0.1/tests/supervisor/test_deep_research_template.py +55 -0
  431. skep-1.0.1/tests/supervisor/test_delegate_analysis.py +144 -0
  432. skep-1.0.1/tests/supervisor/test_demo_repo.py +56 -0
  433. skep-1.0.1/tests/supervisor/test_discord_admin.py +98 -0
  434. skep-1.0.1/tests/supervisor/test_discord_channel.py +263 -0
  435. skep-1.0.1/tests/supervisor/test_discord_gateway.py +1124 -0
  436. skep-1.0.1/tests/supervisor/test_dispatch.py +395 -0
  437. skep-1.0.1/tests/supervisor/test_document_worker.py +240 -0
  438. skep-1.0.1/tests/supervisor/test_fastlane.py +135 -0
  439. skep-1.0.1/tests/supervisor/test_fetch_grant.py +191 -0
  440. skep-1.0.1/tests/supervisor/test_field_test_v19.py +142 -0
  441. skep-1.0.1/tests/supervisor/test_field_test_v20.py +180 -0
  442. skep-1.0.1/tests/supervisor/test_final_pass_guards.py +138 -0
  443. skep-1.0.1/tests/supervisor/test_forge.py +342 -0
  444. skep-1.0.1/tests/supervisor/test_gate_cards.py +92 -0
  445. skep-1.0.1/tests/supervisor/test_git_surface.py +609 -0
  446. skep-1.0.1/tests/supervisor/test_github.py +185 -0
  447. skep-1.0.1/tests/supervisor/test_grouped_pr.py +229 -0
  448. skep-1.0.1/tests/supervisor/test_hermes_import.py +164 -0
  449. skep-1.0.1/tests/supervisor/test_html_text.py +99 -0
  450. skep-1.0.1/tests/supervisor/test_install_script.py +49 -0
  451. skep-1.0.1/tests/supervisor/test_landing_page.py +52 -0
  452. skep-1.0.1/tests/supervisor/test_launch_plan.py +45 -0
  453. skep-1.0.1/tests/supervisor/test_linux_egress_e2e.py +151 -0
  454. skep-1.0.1/tests/supervisor/test_linux_sandbox_docker_smoke_script.py +25 -0
  455. skep-1.0.1/tests/supervisor/test_linux_sandbox_smoke_script.py +39 -0
  456. skep-1.0.1/tests/supervisor/test_llm_anthropic.py +256 -0
  457. skep-1.0.1/tests/supervisor/test_llm_usage.py +112 -0
  458. skep-1.0.1/tests/supervisor/test_local_release_gates_script.py +36 -0
  459. skep-1.0.1/tests/supervisor/test_mcp_capabilities.py +103 -0
  460. skep-1.0.1/tests/supervisor/test_mcp_client.py +207 -0
  461. skep-1.0.1/tests/supervisor/test_mcp_live.py +459 -0
  462. skep-1.0.1/tests/supervisor/test_mcp_registry.py +66 -0
  463. skep-1.0.1/tests/supervisor/test_mcp_servers.py +174 -0
  464. skep-1.0.1/tests/supervisor/test_memory_cli.py +125 -0
  465. skep-1.0.1/tests/supervisor/test_memory_store.py +277 -0
  466. skep-1.0.1/tests/supervisor/test_missing_path_guard.py +110 -0
  467. skep-1.0.1/tests/supervisor/test_netproxy.py +313 -0
  468. skep-1.0.1/tests/supervisor/test_netshim.py +123 -0
  469. skep-1.0.1/tests/supervisor/test_nodes.py +90 -0
  470. skep-1.0.1/tests/supervisor/test_num_ctx_autosize.py +183 -0
  471. skep-1.0.1/tests/supervisor/test_observation_harvest.py +117 -0
  472. skep-1.0.1/tests/supervisor/test_observation_memory.py +144 -0
  473. skep-1.0.1/tests/supervisor/test_obsidian_sync.py +125 -0
  474. skep-1.0.1/tests/supervisor/test_ollama_worker.py +147 -0
  475. skep-1.0.1/tests/supervisor/test_operator_clock.py +49 -0
  476. skep-1.0.1/tests/supervisor/test_ops_cli.py +200 -0
  477. skep-1.0.1/tests/supervisor/test_ops_executor.py +184 -0
  478. skep-1.0.1/tests/supervisor/test_ops_schedules.py +42 -0
  479. skep-1.0.1/tests/supervisor/test_ops_scopes.py +166 -0
  480. skep-1.0.1/tests/supervisor/test_ops_worker.py +225 -0
  481. skep-1.0.1/tests/supervisor/test_outbound_push.py +397 -0
  482. skep-1.0.1/tests/supervisor/test_package_metadata.py +48 -0
  483. skep-1.0.1/tests/supervisor/test_packs.py +157 -0
  484. skep-1.0.1/tests/supervisor/test_parallel.py +131 -0
  485. skep-1.0.1/tests/supervisor/test_permission_profile.py +98 -0
  486. skep-1.0.1/tests/supervisor/test_persona.py +113 -0
  487. skep-1.0.1/tests/supervisor/test_personalities.py +91 -0
  488. skep-1.0.1/tests/supervisor/test_plugin_promotion.py +70 -0
  489. skep-1.0.1/tests/supervisor/test_policy.py +242 -0
  490. skep-1.0.1/tests/supervisor/test_policy_compilation.py +135 -0
  491. skep-1.0.1/tests/supervisor/test_policy_groups.py +570 -0
  492. skep-1.0.1/tests/supervisor/test_policy_regression.py +166 -0
  493. skep-1.0.1/tests/supervisor/test_policy_resolver.py +311 -0
  494. skep-1.0.1/tests/supervisor/test_policy_schema.py +212 -0
  495. skep-1.0.1/tests/supervisor/test_policy_templates.py +163 -0
  496. skep-1.0.1/tests/supervisor/test_post_launch_docs.py +44 -0
  497. skep-1.0.1/tests/supervisor/test_processes.py +227 -0
  498. skep-1.0.1/tests/supervisor/test_project_policy_copy.py +95 -0
  499. skep-1.0.1/tests/supervisor/test_project_policy_store.py +191 -0
  500. skep-1.0.1/tests/supervisor/test_prompt_schedule_turn.py +164 -0
  501. skep-1.0.1/tests/supervisor/test_provider_fallback.py +82 -0
  502. skep-1.0.1/tests/supervisor/test_provider_health.py +138 -0
  503. skep-1.0.1/tests/supervisor/test_provider_routing.py +147 -0
  504. skep-1.0.1/tests/supervisor/test_providers.py +135 -0
  505. skep-1.0.1/tests/supervisor/test_public_run_examples.py +86 -0
  506. skep-1.0.1/tests/supervisor/test_push_sweep.py +268 -0
  507. skep-1.0.1/tests/supervisor/test_queen_fileio.py +464 -0
  508. skep-1.0.1/tests/supervisor/test_reach_index.py +129 -0
  509. skep-1.0.1/tests/supervisor/test_read_payload_caps.py +120 -0
  510. skep-1.0.1/tests/supervisor/test_recover.py +185 -0
  511. skep-1.0.1/tests/supervisor/test_release_checklist.py +198 -0
  512. skep-1.0.1/tests/supervisor/test_release_hygiene.py +131 -0
  513. skep-1.0.1/tests/supervisor/test_release_hygiene_scan_script.py +30 -0
  514. skep-1.0.1/tests/supervisor/test_reliability_script.py +20 -0
  515. skep-1.0.1/tests/supervisor/test_remediation.py +78 -0
  516. skep-1.0.1/tests/supervisor/test_repo_refresh.py +191 -0
  517. skep-1.0.1/tests/supervisor/test_researcher_worker.py +319 -0
  518. skep-1.0.1/tests/supervisor/test_resume.py +237 -0
  519. skep-1.0.1/tests/supervisor/test_reverify.py +302 -0
  520. skep-1.0.1/tests/supervisor/test_reviewer_worker.py +217 -0
  521. skep-1.0.1/tests/supervisor/test_run_provenance.py +129 -0
  522. skep-1.0.1/tests/supervisor/test_run_shell.py +229 -0
  523. skep-1.0.1/tests/supervisor/test_run_status.py +505 -0
  524. skep-1.0.1/tests/supervisor/test_runtime_plugins.py +318 -0
  525. skep-1.0.1/tests/supervisor/test_sandbox.py +226 -0
  526. skep-1.0.1/tests/supervisor/test_sandbox_availability.py +35 -0
  527. skep-1.0.1/tests/supervisor/test_sandbox_bubblewrap.py +169 -0
  528. skep-1.0.1/tests/supervisor/test_sandbox_podman.py +159 -0
  529. skep-1.0.1/tests/supervisor/test_schedule_chaining.py +119 -0
  530. skep-1.0.1/tests/supervisor/test_schedule_health.py +126 -0
  531. skep-1.0.1/tests/supervisor/test_scheduler.py +1050 -0
  532. skep-1.0.1/tests/supervisor/test_scorecard.py +89 -0
  533. skep-1.0.1/tests/supervisor/test_scorecard_runner.py +100 -0
  534. skep-1.0.1/tests/supervisor/test_scorecard_script.py +20 -0
  535. skep-1.0.1/tests/supervisor/test_script_worker.py +282 -0
  536. skep-1.0.1/tests/supervisor/test_seed_skills.py +398 -0
  537. skep-1.0.1/tests/supervisor/test_seed_tools.py +151 -0
  538. skep-1.0.1/tests/supervisor/test_serve.py +476 -0
  539. skep-1.0.1/tests/supervisor/test_serve_approvals.py +1044 -0
  540. skep-1.0.1/tests/supervisor/test_serve_auth.py +77 -0
  541. skep-1.0.1/tests/supervisor/test_serve_chat.py +360 -0
  542. skep-1.0.1/tests/supervisor/test_serve_chat_tools.py +2677 -0
  543. skep-1.0.1/tests/supervisor/test_serve_llm.py +269 -0
  544. skep-1.0.1/tests/supervisor/test_serve_log.py +68 -0
  545. skep-1.0.1/tests/supervisor/test_serve_notes_tasks.py +229 -0
  546. skep-1.0.1/tests/supervisor/test_serve_policy.py +1718 -0
  547. skep-1.0.1/tests/supervisor/test_serve_registry.py +1155 -0
  548. skep-1.0.1/tests/supervisor/test_serve_setup.py +112 -0
  549. skep-1.0.1/tests/supervisor/test_serve_ui.py +1755 -0
  550. skep-1.0.1/tests/supervisor/test_session_approvals.py +72 -0
  551. skep-1.0.1/tests/supervisor/test_session_policy_rules.py +102 -0
  552. skep-1.0.1/tests/supervisor/test_setup_template.py +183 -0
  553. skep-1.0.1/tests/supervisor/test_shell_prefixes.py +193 -0
  554. skep-1.0.1/tests/supervisor/test_shell_worker.py +123 -0
  555. skep-1.0.1/tests/supervisor/test_skill_bundle.py +102 -0
  556. skep-1.0.1/tests/supervisor/test_skill_cli.py +131 -0
  557. skep-1.0.1/tests/supervisor/test_skill_distribution_cli.py +167 -0
  558. skep-1.0.1/tests/supervisor/test_skill_lifecycle.py +271 -0
  559. skep-1.0.1/tests/supervisor/test_skill_md.py +176 -0
  560. skep-1.0.1/tests/supervisor/test_skill_packs.py +505 -0
  561. skep-1.0.1/tests/supervisor/test_skill_store.py +154 -0
  562. skep-1.0.1/tests/supervisor/test_skills.py +169 -0
  563. skep-1.0.1/tests/supervisor/test_slack_channel.py +97 -0
  564. skep-1.0.1/tests/supervisor/test_spawner.py +269 -0
  565. skep-1.0.1/tests/supervisor/test_steering.py +110 -0
  566. skep-1.0.1/tests/supervisor/test_store_concurrency.py +86 -0
  567. skep-1.0.1/tests/supervisor/test_style_tokens.py +271 -0
  568. skep-1.0.1/tests/supervisor/test_surface_parity.py +332 -0
  569. skep-1.0.1/tests/supervisor/test_telegram_channel.py +149 -0
  570. skep-1.0.1/tests/supervisor/test_template_cli.py +876 -0
  571. skep-1.0.1/tests/supervisor/test_template_schedule.py +358 -0
  572. skep-1.0.1/tests/supervisor/test_template_store.py +240 -0
  573. skep-1.0.1/tests/supervisor/test_templates.py +213 -0
  574. skep-1.0.1/tests/supervisor/test_tool_index.py +294 -0
  575. skep-1.0.1/tests/supervisor/test_units.py +265 -0
  576. skep-1.0.1/tests/supervisor/test_usage.py +29 -0
  577. skep-1.0.1/tests/supervisor/test_verifier_worker.py +160 -0
  578. skep-1.0.1/tests/supervisor/test_verify_before_victory.py +147 -0
  579. skep-1.0.1/tests/supervisor/test_version_history.py +22 -0
  580. skep-1.0.1/tests/supervisor/test_voice.py +122 -0
  581. skep-1.0.1/tests/supervisor/test_webhooks.py +148 -0
  582. skep-1.0.1/tests/supervisor/test_websearch.py +348 -0
  583. skep-1.0.1/tests/supervisor/test_wedged_chat.py +136 -0
  584. skep-1.0.1/tests/supervisor/test_worker_capabilities.py +1965 -0
  585. skep-1.0.1/tests/supervisor/test_worker_contract_ownership.py +71 -0
  586. skep-1.0.1/tests/supervisor/test_worker_protocol.py +145 -0
  587. skep-1.0.1/tests/supervisor/test_worker_runtime.py +17 -0
  588. skep-1.0.1/tests/supervisor/test_workon.py +162 -0
  589. skep-1.0.1/tests/test_personal_mode.py +359 -0
  590. skep-1.0.1/uv.lock +1836 -0
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Bug report
3
+ about: Something skep did wrong — a crash, a wrong verdict, a stuck run
4
+ labels: bug
5
+ ---
6
+
7
+ **What happened**
8
+
9
+ **What you expected**
10
+
11
+ **Environment**
12
+
13
+ - `skep --version`:
14
+ - OS and sandbox backend (paste the `skep doctor` output):
15
+
16
+ ```
17
+ (skep doctor output here)
18
+ ```
19
+
20
+ **Reproduction**
21
+
22
+ Steps, or the failing command. If a run is involved, the run id and the
23
+ relevant lines from the run view help a lot.
24
+
25
+ **Safety note**
26
+
27
+ If this looks exploitable (sandbox escape, approval bypass, allowlist
28
+ bypass), do NOT file it here — see [SECURITY.md](../../SECURITY.md).
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: Question / configuration help
3
+ about: How do I…? Why does my setup…?
4
+ labels: question
5
+ ---
6
+
7
+ **What are you trying to do**
8
+
9
+ **What you tried**
10
+
11
+ **Environment**
12
+
13
+ - `skep --version`:
14
+ - `skep doctor` output (redact anything private):
15
+
16
+ ```
17
+ (skep doctor output here)
18
+ ```
19
+
20
+ Check the [docs index](../../docs/README.md) first — quickstart,
21
+ configuration, and the approvals guide answer the most common questions.
@@ -0,0 +1,79 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ pull_request:
6
+
7
+ jobs:
8
+ checks:
9
+ name: checks (${{ matrix.os }})
10
+ runs-on: ${{ matrix.os }}
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: astral-sh/setup-uv@v5
18
+ with:
19
+ python-version: "3.12"
20
+ - name: Install Linux sandbox backend
21
+ if: runner.os == 'Linux'
22
+ run: |
23
+ sudo apt-get update
24
+ sudo apt-get install -y bubblewrap ripgrep
25
+ - name: Install ripgrep (macOS)
26
+ if: runner.os == 'macOS'
27
+ run: brew install ripgrep
28
+ - name: Sync
29
+ run: uv sync --frozen
30
+ - name: Lint
31
+ run: |
32
+ uv run ruff check .
33
+ uv run ruff format --check src/skep tests scripts
34
+ - name: Types
35
+ run: uv run mypy
36
+ - name: Unit tests
37
+ # TMPDIR outside /tmp is mandatory wherever bubblewrap runs: bwrap
38
+ # tmpfs-masks /tmp, which eats sandbox evidence files and wedges
39
+ # dispatched test runs into worker_timeout (same rule as CLAUDE.md's
40
+ # local gates).
41
+ run: |
42
+ mkdir -p "$HOME/.cache/skep-test-tmp"
43
+ TMPDIR="$HOME/.cache/skep-test-tmp" uv run pytest -m "not smoke and not container"
44
+ - name: First-party smoke
45
+ run: make smoke
46
+ - name: Linux sandbox smoke
47
+ if: runner.os == 'Linux'
48
+ run: UV_CACHE_DIR=.uv-cache scripts/linux-sandbox-smoke.sh
49
+ - name: Release hygiene scan
50
+ if: runner.os == 'Linux'
51
+ env:
52
+ GH_TOKEN: ${{ github.token }}
53
+ run: |
54
+ gh release download --repo gitleaks/gitleaks \
55
+ --pattern 'gitleaks_*_linux_x64.tar.gz' --output - | tar -xz gitleaks
56
+ sudo mv gitleaks /usr/local/bin/gitleaks
57
+ ./scripts/release-hygiene-scan.sh
58
+
59
+ image:
60
+ runs-on: ubuntu-latest
61
+ permissions:
62
+ contents: read
63
+ packages: write
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+ - name: Build and boot-check image
67
+ run: |
68
+ SKEP_DOCKER_IMAGE=ghcr.io/anmolnoor/skep:ci \
69
+ SKEP_DOCKER_CONTAINER=skep-ci \
70
+ SKEP_DOCKER_PORT=8765 \
71
+ scripts/docker-image-smoke.sh
72
+ - name: Push on tag
73
+ if: startsWith(github.ref, 'refs/tags/v')
74
+ run: |
75
+ echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
76
+ docker tag ghcr.io/anmolnoor/skep:ci "ghcr.io/anmolnoor/skep:${{ github.ref_name }}"
77
+ docker tag ghcr.io/anmolnoor/skep:ci ghcr.io/anmolnoor/skep:latest
78
+ docker push "ghcr.io/anmolnoor/skep:${{ github.ref_name }}"
79
+ docker push ghcr.io/anmolnoor/skep:latest
@@ -0,0 +1,95 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ # Manual trigger runs the TestPyPI rehearsal lane only (see the
8
+ # testpypi-rehearsal job); it can never publish to real PyPI or cut a
9
+ # GitHub release.
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ release-gate:
14
+ name: Release gate
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: astral-sh/setup-uv@v5
19
+ with:
20
+ python-version: "3.12"
21
+ - name: Install Linux sandbox backend
22
+ run: |
23
+ sudo apt-get update
24
+ sudo apt-get install -y bubblewrap ripgrep
25
+ - name: Sync
26
+ run: uv sync --frozen
27
+ - name: Install gitleaks
28
+ env:
29
+ GH_TOKEN: ${{ github.token }}
30
+ run: |
31
+ gh release download --repo gitleaks/gitleaks \
32
+ --pattern 'gitleaks_*_linux_x64.tar.gz' --output - | tar -xz gitleaks
33
+ sudo mv gitleaks /usr/local/bin/gitleaks
34
+ - name: Gate
35
+ # TMPDIR outside /tmp, same rule as ci.yml's unit tests and
36
+ # CLAUDE.md's local gates: bwrap tmpfs-masks /tmp.
37
+ run: |
38
+ mkdir -p "$HOME/.cache/skep-test-tmp"
39
+ TMPDIR="$HOME/.cache/skep-test-tmp" UV_CACHE_DIR=.uv-cache scripts/local-release-gates.sh
40
+
41
+ package:
42
+ needs: release-gate
43
+ # Tags only — a manual dispatch must never reach the GitHub-release step.
44
+ if: startsWith(github.ref, 'refs/tags/')
45
+ runs-on: ubuntu-latest
46
+ permissions:
47
+ contents: write
48
+ id-token: write
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+ - uses: astral-sh/setup-uv@v5
52
+ with:
53
+ python-version: "3.12"
54
+ - name: Build distribution
55
+ run: uv build
56
+ - name: Check distribution metadata
57
+ run: uvx twine check dist/*
58
+ - name: Install built wheel smoke
59
+ run: UV_CACHE_DIR=.uv-cache scripts/package-install-smoke.sh
60
+ # Publishes via the PyPI trusted publisher (Anmolnoor/skep +
61
+ # release.yml, configured at LAUNCH-1-L7); id-token: write above is the
62
+ # OIDC half of that handshake.
63
+ - name: Publish to PyPI
64
+ uses: pypa/gh-action-pypi-publish@release/v1
65
+ - name: Create GitHub release
66
+ uses: softprops/action-gh-release@v2
67
+ with:
68
+ files: |
69
+ dist/skep-*.tar.gz
70
+ dist/skep-*-py3-none-any.whl
71
+ generate_release_notes: true
72
+
73
+ # v37-F1: the publish rehearsal. Manual-only; exercises the exact trusted-
74
+ # publisher OIDC path against test.pypi.org with zero public commitment.
75
+ # Requires a TestPyPI trusted publisher (repository Anmolnoor/skep,
76
+ # workflow release.yml) — see docs/releases/README.md "Go/no-go".
77
+ testpypi-rehearsal:
78
+ needs: release-gate
79
+ if: github.event_name == 'workflow_dispatch'
80
+ runs-on: ubuntu-latest
81
+ permissions:
82
+ id-token: write
83
+ steps:
84
+ - uses: actions/checkout@v4
85
+ - uses: astral-sh/setup-uv@v5
86
+ with:
87
+ python-version: "3.12"
88
+ - name: Build distribution
89
+ run: uv build
90
+ - name: Check distribution metadata
91
+ run: uvx twine check dist/*
92
+ - name: Publish to TestPyPI
93
+ uses: pypa/gh-action-pypi-publish@release/v1
94
+ with:
95
+ repository-url: https://test.pypi.org/legacy/
skep-1.0.1/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .pytest_cache/
4
+ .mypy_cache/
5
+ .ruff_cache/
6
+ .uv-cache/
7
+ .venv/
8
+ .claude/
9
+ output/
10
+ reports/
11
+ dist/
12
+ build/
13
+ *.egg-info/
14
+ .skep-dev/
15
+ .skep-dev.reset-*/
16
+ .skep-linux-sandbox.*/
17
+ .DS_Store
skep-1.0.1/CLAUDE.md ADDED
@@ -0,0 +1,115 @@
1
+ # skep — assistant context
2
+
3
+ Local-first autonomous coding supervisor. A Queen (chat daemon) dispatches
4
+ disposable, contract-governed workers into isolated git worktrees; every side
5
+ effect goes through the policy/capability engine; completed work lands as a
6
+ **patch via a human approval** — landing IS the commit.
7
+
8
+ ## Non-negotiable safety posture
9
+
10
+ Patch-as-approval, supervisor-side re-verification (G10), the Queen/worker
11
+ split, the trust engine, no shadow permission systems. Workers can NEVER push,
12
+ pull, fetch, or switch branches (guards: v19-F3/F5) — no allowlist, grant, or
13
+ verify label overrides those denies, and the same list binds the Queen
14
+ (v83-F9). `git add`/`git commit` are denied through `shell.run` (v22-F2) but
15
+ grantable via the explicit `git.stage`/`git.commit` capability path — safe
16
+ because the worktree is disposable and the patch diffs against the startup
17
+ baseline, not because it is absolute (see I4). G10 re-verifies with the
18
+ project's pinned `verify_command`, not the worker's own nomination (v88-F4) —
19
+ re-running the worker's choice of command is still trusting it. Since v91-F1
20
+ project setup infers that pin from the repo's own entry point, so it is the
21
+ default; a repo with no detectable entry point is pinned to nothing on
22
+ purpose and keeps the worker-nominated fallback.
23
+
24
+ ## Gates (run after every fix commit, all green before moving on)
25
+
26
+ ```sh
27
+ TMPDIR=$HOME/.cache/skep-test-tmp uv run pytest # TMPDIR outside /tmp is
28
+ uv run ruff check . # MANDATORY on Linux: bwrap
29
+ uv run ruff format --check src/skep tests scripts # tmpfs-masks /tmp
30
+ uv run mypy
31
+ TMPDIR=$HOME/.cache/skep-test-tmp uv run python scripts/scorecard.py # Overall: PASS
32
+ ```
33
+
34
+ (`ruff format --check` joined the list at LAUNCH-1: CI always ran it, the
35
+ local ritual never did, and 174 files drifted before the public repo's first
36
+ CI run caught it.)
37
+
38
+ The suite is fully green — NO pre-existing failures are allowed. (History: the
39
+ stale-links failure was fixed in v27-F1; the Linux per-domain egress skip —
40
+ v14-7 — was closed in v28, so `test_default_coding_worker_uses_saved_
41
+ assistant_llm_config` now passes on Linux. Any failure is yours.)
42
+
43
+ ## How this project evolves
44
+
45
+ Every new plan and ADR starts from `docs/invariants.md` — the traits that
46
+ must never be traded away (Part I + review checklist) and the refinement
47
+ backlog (Part II). Cite the invariant numbers a change touches.
48
+
49
+ **A new mutating verb needs an operator face** (ADR 0050, v104): reachable
50
+ from the chat tool surface AND from the CLI or REST. Four rounds fixed this
51
+ one key at a time (v94-F5, v100-F9, v101-F13, v104) before it became a rule —
52
+ I5 says one authorization boundary, not that the operator gets the narrow half
53
+ of it. `tests/supervisor/test_surface_parity.py` enforces it; genuine
54
+ exceptions go in its `CHAT_ONLY` map with a reason.
55
+
56
+ Field test → reconstruct findings from the store/audit trail → write an
57
+ executor-style plan in `plans/vNN/README.md` (observed failure, root cause
58
+ with file:line anchors, change, tests, acceptance) → implement fix-by-fix,
59
+ one commit per fix (`vNN-F<N>: title`) → push to main. History:
60
+
61
+ - v1–v17: the roadmap (v12–v17 implemented in one unattended run; the
62
+ authoritative record is `plans/EXECUTION_LEDGER.md`).
63
+ - v19–v24: field-test friction fixes. Read `plans/v19/README.md` for the
64
+ house-rules briefing every later plan inherits, and skim v20→v24 for the
65
+ landing/policy arc. v18 (public release) is intentionally not done.
66
+ - Resolved (v30, was the v24 deferral): maintain-phase auto-apply accumulates
67
+ on ONE integration branch `skep/maintain` (project policy `auto_apply_branch`,
68
+ constrained to the `skep/` namespace); other phases keep per-task
69
+ `skep/<task_id>`. `main` never advances automatically. The landing branch is
70
+ persisted on the approval (`approvals.landing_branch`) so `applied_branch`
71
+ is accurate for every landing path.
72
+
73
+ ## Operational notes
74
+
75
+ - Operator state lives in `~/.skep` (sqlite store, serve token, registered
76
+ repos incl. the `skep-testing` test repo). NEVER mutate it in tests — use a
77
+ temp home. Server: `uv run skep serve` (port 8765, log `~/.skep/serve.log`).
78
+ - `make` is not installed on the dev machine; call scripts via `uv run`.
79
+ - Container builds use podman (docker CLI points at an absent Docker Desktop).
80
+ - The chat Queen runs a small model (glm-5.2 via ollama.com); it skims tool
81
+ descriptions — treat tool descriptions as load-bearing code and keep them
82
+ truthful (a stale preset description once caused repeated "hallucinations").
83
+ - The UI is a NO-BUILD static app (`src/skep/supervisor/serve/static/`) — no
84
+ bundler, no npm; plain ES modules + CSS tokens; fonts vendored.
85
+ - Skills (v85): `skep skill shelf add <dir>` registers external Agent Skills
86
+ shelves (`~/.claude/skills` convention) — instruction packs load zero-grant;
87
+ script-shipping packs draft onto the v17 ladder (`skill_packs.py`, ADR 0045)
88
+ and activate only via `skep skill promote` / the `promote_skill_pack` card.
89
+ - Coding engines (v90, ADR 0047; hardened v94): the `coding_engine`
90
+ project-policy key picks which agent runs a coding task — `builtin` (skep's
91
+ own worker, defers to `SKEP_WORKER_CMD`/`--worker-cmd`) or a CLI adapter
92
+ (`claude_code`, `codex`, `aider`); set it with `skep project setup --engine`
93
+ (v94-F5), from chat via `setup_project engine=`, or per-dispatch via
94
+ `dispatch_run engine=` — an explicit per-dispatch choice always cards
95
+ (v95-F3/F4). An external agent's own commands do NOT pass the capability layer —
96
+ the sandbox confines it — so it requires a project-pinned `verify_command`
97
+ (its built-in verify is `git diff --check`), is FORCED into sandbox execution
98
+ (v94-F4), and declares the env it needs in the engine registry (v94-F3:
99
+ claude_code needs USER/LOGNAME for keychain auth). `skep doctor` probes each
100
+ binary. Re-verify primes uv deps from the baseline before applying the patch
101
+ so the default `uv run pytest` pin confirms offline (v94-F7).
102
+ - The command deck (v25): chat messages starting with `/` are parsed client-side
103
+ (`COMMANDS` in app.js) and mapped onto existing verbs — the model never sees
104
+ them. Mutations become `chat_actions` rows with `source='operator'`, resolved
105
+ on `/api/chats/{id}/commands/{action_id}/confirm|deny` under actor
106
+ `operator-command`. `/workon <path>` is the local-dir on-ramp (confirmed git
107
+ baseline, then project setup). Keep `COMMANDS`, the executor, and `/help` in
108
+ lockstep — a test pins the table against the parser branches.
109
+
110
+ ## Where to look first
111
+
112
+ `plans/` (all plans + `EXECUTION_LEDGER.md`), `docs/version-history.md`,
113
+ `src/skep/supervisor/policy_resolver.py` (run policy), `serve/actions.py`
114
+ (shared verbs), `serve/tools.py` (chat tool surface), `workers/capabilities.py`
115
+ (worker-side gates), `apply.py` (landing).
@@ -0,0 +1,76 @@
1
+ # Contributing
2
+
3
+ Thanks for working on Skep. This project is a local supervisor for coding
4
+ agents, so changes should preserve the core safety model: sandbox when requested,
5
+ record durable evidence, re-verify claims, and land patches only through review.
6
+
7
+ ## Development Setup
8
+
9
+ ```sh
10
+ git clone https://github.com/Anmolnoor/skep.git
11
+ cd skep
12
+ uv sync --frozen
13
+ ```
14
+
15
+ Run the full default gate before opening a pull request:
16
+
17
+ ```sh
18
+ make all
19
+ ```
20
+
21
+ That runs lint, type checking, and the default test suite. The default suite is
22
+ hermetic: no live model, no credentials, no network dependency, and no Docker.
23
+
24
+ ## Focused Checks
25
+
26
+ Use the smallest relevant check while iterating:
27
+
28
+ ```sh
29
+ make lint
30
+ make type
31
+ uv run pytest tests/supervisor/test_reverify.py
32
+ uv run pytest tests/supervisor/test_sandbox_bubblewrap.py
33
+ make smoke
34
+ ```
35
+
36
+ Use opt-in checks only when the change touches that surface:
37
+
38
+ ```sh
39
+ make container
40
+ make image
41
+ ```
42
+
43
+ `make container` needs Docker. `make image` builds the local container image.
44
+
45
+ ## Coding Standards
46
+
47
+ - Keep changes surgical and tied to the issue or roadmap item.
48
+ - Add or update tests for behavior changes.
49
+ - Prefer existing supervisor, worker-contract, and serve APIs over new
50
+ abstractions.
51
+ - Keep user-facing docs honest about what is physically enforced, what is policy,
52
+ and what is planned.
53
+ - Do not add secrets, local state, screenshots, build output, or machine-specific
54
+ launcher files.
55
+
56
+ ## Security Model Expectations
57
+
58
+ When changing worker execution, approval, sandboxing, or re-verification, include
59
+ tests that prove the failure path:
60
+
61
+ - sandbox unavailable means the worker does not silently start unsandboxed in
62
+ sandbox mode
63
+ - unconfirmed re-verification blocks auto-approval
64
+ - denied approvals stop or leave the run pending without granting the action
65
+ - workers do not mutate the user's active checkout or default branch directly
66
+
67
+ ## Pull Request Notes
68
+
69
+ In the PR description, include:
70
+
71
+ - what changed
72
+ - how it was verified
73
+ - any safety boundary affected
74
+ - any known limits or follow-up work
75
+
76
+ Keep generated artifacts out of the diff unless they are the actual deliverable.
skep-1.0.1/Dockerfile ADDED
@@ -0,0 +1,41 @@
1
+ # The box. Build from this skep checkout:
2
+ #
3
+ # docker build -f Dockerfile -t ghcr.io/anmolnoor/skep .
4
+ #
5
+ # or `make image`.
6
+ #
7
+ # One runtime stage. A node stage does not exist at all (the UI is no-build
8
+ # static files, RFC decision 1).
9
+
10
+ FROM python:3.12-slim
11
+
12
+ # git: worktrees + repo clones. bubblewrap: Linux sandbox. gh: the PR action (U1 land).
13
+ # curl: gh's apt repo.
14
+ RUN apt-get update \
15
+ && apt-get install -y --no-install-recommends git bubblewrap curl ca-certificates \
16
+ && curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
17
+ -o /usr/share/keyrings/githubcli-archive-keyring.gpg \
18
+ && echo "deb [arch=$(dpkg --print-architecture) \
19
+ signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] \
20
+ https://cli.github.com/packages stable main" \
21
+ > /etc/apt/sources.list.d/github-cli.list \
22
+ && apt-get update \
23
+ && apt-get install -y --no-install-recommends gh \
24
+ && rm -rf /var/lib/apt/lists/*
25
+
26
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
27
+ ENV UV_PYTHON_DOWNLOADS=never
28
+
29
+ WORKDIR /opt/skep
30
+ COPY . .
31
+
32
+ RUN uv sync --frozen --no-dev
33
+
34
+ # Everything skep writes lives under SKEP_HOME -> one disposable volume (D2).
35
+ ENV PATH="/opt/skep/.venv/bin:${PATH}" \
36
+ SKEP_HOME=/data/skep
37
+
38
+ VOLUME /data
39
+ EXPOSE 8765
40
+
41
+ ENTRYPOINT ["skep", "serve", "--host", "0.0.0.0", "--port", "8765"]
@@ -0,0 +1,19 @@
1
+ # BuildKit per-Dockerfile ignore. The build context is this skep checkout.
2
+ .git
3
+ .venv
4
+ # Dev state carries secrets (llm-secret, serve-token) — never bake it in.
5
+ .skep-dev*
6
+ .uv-cache
7
+ __pycache__
8
+ .pytest_cache
9
+ .mypy_cache
10
+ .ruff_cache
11
+ .DS_Store
12
+ dist
13
+ build
14
+ *.egg-info
15
+ output
16
+ node_modules
17
+ plans
18
+ plan
19
+ .claude
skep-1.0.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Anmol Noor
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.
skep-1.0.1/Makefile ADDED
@@ -0,0 +1,90 @@
1
+ .PHONY: all lint format type unit smoke test u1 templates skills public-free whole-app-external container image image-smoke linux-sandbox-docker-smoke docs-link-smoke release-hygiene-scan local-release-gates serve scorecard
2
+
3
+ all: lint type test
4
+
5
+ lint:
6
+ uv run ruff check .
7
+ uv run ruff format --check src/skep tests scripts
8
+
9
+ format:
10
+ uv run ruff check --fix .
11
+ uv run ruff format src/skep tests scripts
12
+
13
+ type:
14
+ uv run mypy
15
+
16
+ unit:
17
+ uv run pytest -m "not smoke and not container"
18
+
19
+ # Default smoke: first-party skep paths only.
20
+ smoke:
21
+ uv run pytest tests/smoke -m smoke
22
+
23
+ # The v3 acceptance demo (U1): the nightly dependency/audit bot — scheduled,
24
+ # audit caste, G10 re-verified, D3 auto-approval active. Deterministic, offline.
25
+ u1:
26
+ uv run pytest tests/smoke/test_u1_acceptance.py -m smoke -v
27
+
28
+ # The v3.5 acceptance demo: author a workflow template once, then both run it on
29
+ # demand AND bind it to a schedule. Deterministic, offline (audit caste).
30
+ templates:
31
+ uv run pytest tests/smoke/test_templates_acceptance.py -m smoke -v
32
+
33
+ # The v4 acceptance demo: from observed successful runs, GENERATE a candidate skill,
34
+ # TEST it (G10 gate), a human APPROVES it into the registry, then run AND schedule it
35
+ # exactly like a v3.5 template — and prove a failed-test or denied candidate NEVER
36
+ # enters the registry. Deterministic, offline (audit caste).
37
+ skills:
38
+ uv run pytest tests/smoke/test_skills_acceptance.py -m smoke -v
39
+
40
+ # The v11 public-free acceptance demo: preview/save the first-party pack,
41
+ # confirm zero-cost assumptions, seed templates/schedules, and dispatch once.
42
+ public-free:
43
+ uv run pytest tests/smoke/test_public_free_acceptance.py -m smoke -v
44
+
45
+ # Opt-in whole-app proof against a real external provider — needs OLLAMA_API_KEY,
46
+ # a running Docker daemon; never the gate.
47
+ whole-app-external:
48
+ @test -n "$$OLLAMA_API_KEY" || (echo "OLLAMA_API_KEY is required" >&2; exit 2)
49
+ SKEP_WHOLE_APP_EXTERNAL=1 uv run pytest tests/external/test_whole_app_external.py -m external_app --override-ini "addopts=" -v
50
+
51
+ # The v5 acceptance demo: the whole loop over the HTTP API — boot, token auth,
52
+ # assign, SSE-stream the events, approve (patch lands on a branch), edit a
53
+ # policy.
54
+ serve:
55
+ uv run pytest \
56
+ tests/supervisor/test_serve.py \
57
+ tests/supervisor/test_serve_approvals.py \
58
+ tests/supervisor/test_serve_policy.py \
59
+ -q
60
+
61
+ # The v12 autonomy scorecard: run the deterministic trust-loop suites and emit
62
+ # output/scorecard/scorecard.{json,md}. Fails (non-zero) on any verdict drift.
63
+ scorecard:
64
+ uv run python scripts/scorecard.py
65
+
66
+ test:
67
+ uv run pytest
68
+
69
+ # Opt-in container portability proof (Q1-B) — needs Docker, never the gate.
70
+ container:
71
+ SKEP_CONTAINER=1 uv run pytest -m container --override-ini "addopts=" -v
72
+
73
+ # The box: build the image from this skep checkout.
74
+ image:
75
+ docker build -f Dockerfile -t ghcr.io/anmolnoor/skep:dev .
76
+
77
+ image-smoke:
78
+ scripts/docker-image-smoke.sh
79
+
80
+ linux-sandbox-docker-smoke:
81
+ scripts/linux-sandbox-docker-smoke.sh
82
+
83
+ docs-link-smoke:
84
+ uv run python scripts/docs-link-smoke.py
85
+
86
+ release-hygiene-scan:
87
+ scripts/release-hygiene-scan.sh
88
+
89
+ local-release-gates:
90
+ scripts/local-release-gates.sh