klayout-tools 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 (383) hide show
  1. klayout_tools-0.1.0/.claude/README.md +248 -0
  2. klayout_tools-0.1.0/.claude/agents/loom-architect.md +29 -0
  3. klayout_tools-0.1.0/.claude/agents/loom-auditor.md +19 -0
  4. klayout_tools-0.1.0/.claude/agents/loom-builder.md +22 -0
  5. klayout_tools-0.1.0/.claude/agents/loom-champion.md +30 -0
  6. klayout_tools-0.1.0/.claude/agents/loom-curator.md +24 -0
  7. klayout_tools-0.1.0/.claude/agents/loom-daemon.md +19 -0
  8. klayout_tools-0.1.0/.claude/agents/loom-doctor.md +28 -0
  9. klayout_tools-0.1.0/.claude/agents/loom-guide.md +22 -0
  10. klayout_tools-0.1.0/.claude/agents/loom-hermit.md +28 -0
  11. klayout_tools-0.1.0/.claude/agents/loom-judge.md +22 -0
  12. klayout_tools-0.1.0/.claude/commands/loom/architect-patterns.md +555 -0
  13. klayout_tools-0.1.0/.claude/commands/loom/architect-reference.md +265 -0
  14. klayout_tools-0.1.0/.claude/commands/loom/architect.md +326 -0
  15. klayout_tools-0.1.0/.claude/commands/loom/auditor.md +478 -0
  16. klayout_tools-0.1.0/.claude/commands/loom/builder-complexity.md +526 -0
  17. klayout_tools-0.1.0/.claude/commands/loom/builder-pr.md +813 -0
  18. klayout_tools-0.1.0/.claude/commands/loom/builder-worktree.md +380 -0
  19. klayout_tools-0.1.0/.claude/commands/loom/builder.md +923 -0
  20. klayout_tools-0.1.0/.claude/commands/loom/bump.md +427 -0
  21. klayout_tools-0.1.0/.claude/commands/loom/champion-common.md +119 -0
  22. klayout_tools-0.1.0/.claude/commands/loom/champion-epic.md +223 -0
  23. klayout_tools-0.1.0/.claude/commands/loom/champion-issue-promo.md +306 -0
  24. klayout_tools-0.1.0/.claude/commands/loom/champion-pr-merge.md +753 -0
  25. klayout_tools-0.1.0/.claude/commands/loom/champion-reference.md +362 -0
  26. klayout_tools-0.1.0/.claude/commands/loom/champion.md +200 -0
  27. klayout_tools-0.1.0/.claude/commands/loom/curator.md +942 -0
  28. klayout_tools-0.1.0/.claude/commands/loom/doctor.md +862 -0
  29. klayout_tools-0.1.0/.claude/commands/loom/driver.md +11 -0
  30. klayout_tools-0.1.0/.claude/commands/loom/epic.md +396 -0
  31. klayout_tools-0.1.0/.claude/commands/loom/guide.md +1135 -0
  32. klayout_tools-0.1.0/.claude/commands/loom/help.md +115 -0
  33. klayout_tools-0.1.0/.claude/commands/loom/hermit-patterns.md +1184 -0
  34. klayout_tools-0.1.0/.claude/commands/loom/hermit.md +472 -0
  35. klayout_tools-0.1.0/.claude/commands/loom/imagine.md +619 -0
  36. klayout_tools-0.1.0/.claude/commands/loom/judge-reference.md +242 -0
  37. klayout_tools-0.1.0/.claude/commands/loom/judge.md +1465 -0
  38. klayout_tools-0.1.0/.claude/commands/loom/loom-iteration.md +26 -0
  39. klayout_tools-0.1.0/.claude/commands/loom/loom-parent.md +23 -0
  40. klayout_tools-0.1.0/.claude/commands/loom/loom.md +709 -0
  41. klayout_tools-0.1.0/.claude/commands/loom/probe-protocol.md +79 -0
  42. klayout_tools-0.1.0/.claude/commands/loom/sweep.md +2082 -0
  43. klayout_tools-0.1.0/.claude/commands/repo/all.md +111 -0
  44. klayout_tools-0.1.0/.claude/commands/repo/audit.md +91 -0
  45. klayout_tools-0.1.0/.claude/commands/repo/branches.md +244 -0
  46. klayout_tools-0.1.0/.claude/commands/repo/docs.md +125 -0
  47. klayout_tools-0.1.0/.claude/commands/repo/followups.md +180 -0
  48. klayout_tools-0.1.0/.claude/commands/repo/gitignore.md +77 -0
  49. klayout_tools-0.1.0/.claude/commands/repo/handoff.md +149 -0
  50. klayout_tools-0.1.0/.claude/commands/repo/help.md +110 -0
  51. klayout_tools-0.1.0/.claude/commands/repo/host-optimize.md +370 -0
  52. klayout_tools-0.1.0/.claude/commands/repo/links.md +72 -0
  53. klayout_tools-0.1.0/.claude/commands/repo/orphans.md +61 -0
  54. klayout_tools-0.1.0/.claude/commands/repo/readme.md +81 -0
  55. klayout_tools-0.1.0/.claude/commands/repo/release.md +483 -0
  56. klayout_tools-0.1.0/.claude/commands/repo/remote.md +581 -0
  57. klayout_tools-0.1.0/.claude/commands/repo/reset.md +99 -0
  58. klayout_tools-0.1.0/.claude/commands/repo/sudo.md +275 -0
  59. klayout_tools-0.1.0/.claude/commands/repo/tidy.md +197 -0
  60. klayout_tools-0.1.0/.claude/commands/repo/update-tools.md +199 -0
  61. klayout_tools-0.1.0/.claude/settings.json +130 -0
  62. klayout_tools-0.1.0/.claude/skills/repo/SKILL.md +167 -0
  63. klayout_tools-0.1.0/.claude/skills/repo/hooks/guard-destructive.sh +2247 -0
  64. klayout_tools-0.1.0/.claude/skills/repo/hooks/session-start-handoff.sh +196 -0
  65. klayout_tools-0.1.0/.claude/skills/repo/install-metadata.json +6 -0
  66. klayout_tools-0.1.0/.claude/skills/repo/scripts/repo-remote.sh +790 -0
  67. klayout_tools-0.1.0/.github/CONFIGURATION.md +78 -0
  68. klayout_tools-0.1.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  69. klayout_tools-0.1.0/.github/ISSUE_TEMPLATE/task.yml +81 -0
  70. klayout_tools-0.1.0/.github/labels.yml +153 -0
  71. klayout_tools-0.1.0/.github/workflows/ci.yml +77 -0
  72. klayout_tools-0.1.0/.github/workflows/publish.yml +48 -0
  73. klayout_tools-0.1.0/.gitignore +60 -0
  74. klayout_tools-0.1.0/.loom/CLAUDE.md +367 -0
  75. klayout_tools-0.1.0/.loom/README.md +167 -0
  76. klayout_tools-0.1.0/.loom/bin/loom +222 -0
  77. klayout_tools-0.1.0/.loom/config/skill-routes.json +51 -0
  78. klayout_tools-0.1.0/.loom/config.json +104 -0
  79. klayout_tools-0.1.0/.loom/docs/advanced-hooks.md +189 -0
  80. klayout_tools-0.1.0/.loom/docs/blame-issue.md +69 -0
  81. klayout_tools-0.1.0/.loom/docs/build-gate.md +318 -0
  82. klayout_tools-0.1.0/.loom/docs/ci-integration.md +171 -0
  83. klayout_tools-0.1.0/.loom/docs/commit-signoff.md +68 -0
  84. klayout_tools-0.1.0/.loom/docs/daemon-reference.md +3450 -0
  85. klayout_tools-0.1.0/.loom/docs/fleet-comms.md +151 -0
  86. klayout_tools-0.1.0/.loom/docs/forge-authentication.md +191 -0
  87. klayout_tools-0.1.0/.loom/docs/github-authentication.md +187 -0
  88. klayout_tools-0.1.0/.loom/docs/guard-hooks.md +692 -0
  89. klayout_tools-0.1.0/.loom/docs/health-monitoring.md +118 -0
  90. klayout_tools-0.1.0/.loom/docs/machine-dispatcher.md +526 -0
  91. klayout_tools-0.1.0/.loom/docs/macos-tcc-codesign.md +112 -0
  92. klayout_tools-0.1.0/.loom/docs/model-cost-experiment.md +78 -0
  93. klayout_tools-0.1.0/.loom/docs/model-selection.md +154 -0
  94. klayout_tools-0.1.0/.loom/docs/runtime-adapters.md +443 -0
  95. klayout_tools-0.1.0/.loom/docs/semantic-search.md +105 -0
  96. klayout_tools-0.1.0/.loom/docs/tool-use-concurrency-errors.md +198 -0
  97. klayout_tools-0.1.0/.loom/docs/troubleshooting.md +566 -0
  98. klayout_tools-0.1.0/.loom/hooks/example-context/roles/builder.md +9 -0
  99. klayout_tools-0.1.0/.loom/hooks/example-context/topics/security.md +11 -0
  100. klayout_tools-0.1.0/.loom/hooks/example-context/topics/security.pattern +1 -0
  101. klayout_tools-0.1.0/.loom/hooks/example-context/universal.md +11 -0
  102. klayout_tools-0.1.0/.loom/hooks/guard-background-subagents.sh +114 -0
  103. klayout_tools-0.1.0/.loom/hooks/guard-destructive.sh +83 -0
  104. klayout_tools-0.1.0/.loom/hooks/guard-loom-workflow.sh +366 -0
  105. klayout_tools-0.1.0/.loom/hooks/guard-readonly-dirs.sh.template +154 -0
  106. klayout_tools-0.1.0/.loom/hooks/guard-worktree-paths.sh +320 -0
  107. klayout_tools-0.1.0/.loom/hooks/methodology-inject.sh +304 -0
  108. klayout_tools-0.1.0/.loom/hooks/skill-router.sh +232 -0
  109. klayout_tools-0.1.0/.loom/hooks/tests/test-guard-background-subagents.sh +208 -0
  110. klayout_tools-0.1.0/.loom/hooks/tests/test-guard-loom-workspace.sh +215 -0
  111. klayout_tools-0.1.0/.loom/hooks/tests/test-guard-worktree-paths.sh +281 -0
  112. klayout_tools-0.1.0/.loom/hooks/tests/test-methodology-inject.sh +304 -0
  113. klayout_tools-0.1.0/.loom/hooks/tests/test-skill-router.sh +252 -0
  114. klayout_tools-0.1.0/.loom/install-metadata.json +7 -0
  115. klayout_tools-0.1.0/.loom/roles/README.md +145 -0
  116. klayout_tools-0.1.0/.loom/roles/architect.json +13 -0
  117. klayout_tools-0.1.0/.loom/roles/architect.md +326 -0
  118. klayout_tools-0.1.0/.loom/roles/auditor.json +17 -0
  119. klayout_tools-0.1.0/.loom/roles/auditor.md +478 -0
  120. klayout_tools-0.1.0/.loom/roles/builder-complexity.md +526 -0
  121. klayout_tools-0.1.0/.loom/roles/builder-pr.md +813 -0
  122. klayout_tools-0.1.0/.loom/roles/builder-worktree.md +380 -0
  123. klayout_tools-0.1.0/.loom/roles/builder.json +18 -0
  124. klayout_tools-0.1.0/.loom/roles/builder.md +923 -0
  125. klayout_tools-0.1.0/.loom/roles/champion.json +36 -0
  126. klayout_tools-0.1.0/.loom/roles/champion.md +200 -0
  127. klayout_tools-0.1.0/.loom/roles/curator.json +13 -0
  128. klayout_tools-0.1.0/.loom/roles/curator.md +942 -0
  129. klayout_tools-0.1.0/.loom/roles/doctor.json +13 -0
  130. klayout_tools-0.1.0/.loom/roles/doctor.md +862 -0
  131. klayout_tools-0.1.0/.loom/roles/driver.json +9 -0
  132. klayout_tools-0.1.0/.loom/roles/driver.md +11 -0
  133. klayout_tools-0.1.0/.loom/roles/guide.json +9 -0
  134. klayout_tools-0.1.0/.loom/roles/guide.md +1135 -0
  135. klayout_tools-0.1.0/.loom/roles/hermit-patterns.md +1184 -0
  136. klayout_tools-0.1.0/.loom/roles/hermit.json +13 -0
  137. klayout_tools-0.1.0/.loom/roles/hermit.md +472 -0
  138. klayout_tools-0.1.0/.loom/roles/judge-reference.md +242 -0
  139. klayout_tools-0.1.0/.loom/roles/judge.json +18 -0
  140. klayout_tools-0.1.0/.loom/roles/judge.md +1465 -0
  141. klayout_tools-0.1.0/.loom/roles/loom.json +13 -0
  142. klayout_tools-0.1.0/.loom/roles/loom.md +709 -0
  143. klayout_tools-0.1.0/.loom/roles/probe-protocol.md +79 -0
  144. klayout_tools-0.1.0/.loom/scripts/agent-destroy.sh +197 -0
  145. klayout_tools-0.1.0/.loom/scripts/agent-metrics.sh +37 -0
  146. klayout_tools-0.1.0/.loom/scripts/agent-spawn.sh +22 -0
  147. klayout_tools-0.1.0/.loom/scripts/agent-wait.sh +24 -0
  148. klayout_tools-0.1.0/.loom/scripts/archive-logs.sh +295 -0
  149. klayout_tools-0.1.0/.loom/scripts/archive-transcripts.sh +373 -0
  150. klayout_tools-0.1.0/.loom/scripts/blame-issue.sh +306 -0
  151. klayout_tools-0.1.0/.loom/scripts/build-gate.sh +101 -0
  152. klayout_tools-0.1.0/.loom/scripts/check-ci-status.sh +313 -0
  153. klayout_tools-0.1.0/.loom/scripts/check-duplicate.sh +622 -0
  154. klayout_tools-0.1.0/.loom/scripts/check-host-sleep.sh +213 -0
  155. klayout_tools-0.1.0/.loom/scripts/check-label-descriptions.sh +124 -0
  156. klayout_tools-0.1.0/.loom/scripts/check-labels-drift.sh +87 -0
  157. klayout_tools-0.1.0/.loom/scripts/check-main-clean.sh +271 -0
  158. klayout_tools-0.1.0/.loom/scripts/check-main-freshness.sh +219 -0
  159. klayout_tools-0.1.0/.loom/scripts/check-phantom-labels.sh +127 -0
  160. klayout_tools-0.1.0/.loom/scripts/check-runtime-capabilities.sh +205 -0
  161. klayout_tools-0.1.0/.loom/scripts/check-shutdown.sh +58 -0
  162. klayout_tools-0.1.0/.loom/scripts/check-usage.sh +22 -0
  163. klayout_tools-0.1.0/.loom/scripts/checkpoint.sh +49 -0
  164. klayout_tools-0.1.0/.loom/scripts/claude-wrapper.sh +2155 -0
  165. klayout_tools-0.1.0/.loom/scripts/clean-labels.sh +14 -0
  166. klayout_tools-0.1.0/.loom/scripts/clean.sh +42 -0
  167. klayout_tools-0.1.0/.loom/scripts/cleanup-branches.sh +109 -0
  168. klayout_tools-0.1.0/.loom/scripts/cleanup.sh +44 -0
  169. klayout_tools-0.1.0/.loom/scripts/cli/loom-attach.sh +176 -0
  170. klayout_tools-0.1.0/.loom/scripts/cli/loom-daemon-start.sh +1231 -0
  171. klayout_tools-0.1.0/.loom/scripts/cli/loom-daemon-stop.sh +421 -0
  172. klayout_tools-0.1.0/.loom/scripts/cli/loom-daemon-update.sh +1244 -0
  173. klayout_tools-0.1.0/.loom/scripts/cli/loom-daemon-watchdog.sh +358 -0
  174. klayout_tools-0.1.0/.loom/scripts/cli/loom-help.sh +263 -0
  175. klayout_tools-0.1.0/.loom/scripts/cli/loom-logs.sh +330 -0
  176. klayout_tools-0.1.0/.loom/scripts/cli/loom-scale.sh +446 -0
  177. klayout_tools-0.1.0/.loom/scripts/cli/loom-send.sh +297 -0
  178. klayout_tools-0.1.0/.loom/scripts/cli/loom-start.sh +428 -0
  179. klayout_tools-0.1.0/.loom/scripts/cli/loom-status.sh +455 -0
  180. klayout_tools-0.1.0/.loom/scripts/cli/loom-stop.sh +359 -0
  181. klayout_tools-0.1.0/.loom/scripts/cli/safehoused-service.sh +474 -0
  182. klayout_tools-0.1.0/.loom/scripts/experiments/README.md +57 -0
  183. klayout_tools-0.1.0/.loom/scripts/experiments/judge-fanout-corpus-runner.sh +206 -0
  184. klayout_tools-0.1.0/.loom/scripts/experiments/judge-fanout-experiment.sh +114 -0
  185. klayout_tools-0.1.0/.loom/scripts/experiments/judge-fanout-results-template.md +61 -0
  186. klayout_tools-0.1.0/.loom/scripts/experiments/judge-fanout-workflow.js +363 -0
  187. klayout_tools-0.1.0/.loom/scripts/fleet-check.sh +166 -0
  188. klayout_tools-0.1.0/.loom/scripts/fleet-send.sh +176 -0
  189. klayout_tools-0.1.0/.loom/scripts/gh-cached +422 -0
  190. klayout_tools-0.1.0/.loom/scripts/kill-session-tree.sh +170 -0
  191. klayout_tools-0.1.0/.loom/scripts/lib/classify-error.sh +272 -0
  192. klayout_tools-0.1.0/.loom/scripts/lib/config-resolver.sh +142 -0
  193. klayout_tools-0.1.0/.loom/scripts/lib/default-branch.sh +91 -0
  194. klayout_tools-0.1.0/.loom/scripts/lib/disk-headroom.sh +264 -0
  195. klayout_tools-0.1.0/.loom/scripts/lib/forge-helpers.sh +915 -0
  196. klayout_tools-0.1.0/.loom/scripts/lib/launchd-domain.sh +60 -0
  197. klayout_tools-0.1.0/.loom/scripts/lib/locate-daemon-bin.sh +40 -0
  198. klayout_tools-0.1.0/.loom/scripts/lib/loom-tools.sh +157 -0
  199. klayout_tools-0.1.0/.loom/scripts/lib/mcp-config.sh +192 -0
  200. klayout_tools-0.1.0/.loom/scripts/lib/pipe-pane-cmd.sh +31 -0
  201. klayout_tools-0.1.0/.loom/scripts/lib/systemd-user.sh +107 -0
  202. klayout_tools-0.1.0/.loom/scripts/lib/worktree-root.sh +97 -0
  203. klayout_tools-0.1.0/.loom/scripts/merge-pr.sh +1741 -0
  204. klayout_tools-0.1.0/.loom/scripts/pr-worktree.sh +166 -0
  205. klayout_tools-0.1.0/.loom/scripts/probe-tokens.sh +70 -0
  206. klayout_tools-0.1.0/.loom/scripts/random-file.sh +457 -0
  207. klayout_tools-0.1.0/.loom/scripts/rebase-stacked-children.sh +273 -0
  208. klayout_tools-0.1.0/.loom/scripts/reconcile-stack.sh +215 -0
  209. klayout_tools-0.1.0/.loom/scripts/recover-orphaned-shepherds.sh +41 -0
  210. klayout_tools-0.1.0/.loom/scripts/require-complexity-marker.sh +57 -0
  211. klayout_tools-0.1.0/.loom/scripts/resolve-model.sh +46 -0
  212. klayout_tools-0.1.0/.loom/scripts/resolve-tier-model.sh +74 -0
  213. klayout_tools-0.1.0/.loom/scripts/resync-installed.sh +666 -0
  214. klayout_tools-0.1.0/.loom/scripts/run-tests.sh +56 -0
  215. klayout_tools-0.1.0/.loom/scripts/signal.sh +272 -0
  216. klayout_tools-0.1.0/.loom/scripts/spawn-claude.sh +530 -0
  217. klayout_tools-0.1.0/.loom/scripts/spawn-worker.sh +143 -0
  218. klayout_tools-0.1.0/.loom/scripts/start-daemon.sh +50 -0
  219. klayout_tools-0.1.0/.loom/scripts/status.sh +430 -0
  220. klayout_tools-0.1.0/.loom/scripts/stop-daemon.sh +41 -0
  221. klayout_tools-0.1.0/.loom/scripts/strip-ansi.sh +9 -0
  222. klayout_tools-0.1.0/.loom/scripts/sweep-checkpoint.sh +283 -0
  223. klayout_tools-0.1.0/.loom/scripts/sweep-experiment.sh +30 -0
  224. klayout_tools-0.1.0/.loom/scripts/sweep-run-registry.sh +222 -0
  225. klayout_tools-0.1.0/.loom/scripts/sync-labels.sh +286 -0
  226. klayout_tools-0.1.0/.loom/scripts/tests/lib/launchd-sandbox.sh +129 -0
  227. klayout_tools-0.1.0/.loom/scripts/tests/test-archive-transcripts.sh +142 -0
  228. klayout_tools-0.1.0/.loom/scripts/tests/test-blame-issue.sh +225 -0
  229. klayout_tools-0.1.0/.loom/scripts/tests/test-build-rs-watchset.sh +232 -0
  230. klayout_tools-0.1.0/.loom/scripts/tests/test-check-duplicate.sh +296 -0
  231. klayout_tools-0.1.0/.loom/scripts/tests/test-check-host-sleep.sh +150 -0
  232. klayout_tools-0.1.0/.loom/scripts/tests/test-check-main-clean.sh +351 -0
  233. klayout_tools-0.1.0/.loom/scripts/tests/test-check-main-freshness.sh +239 -0
  234. klayout_tools-0.1.0/.loom/scripts/tests/test-check-runtime-capabilities.sh +209 -0
  235. klayout_tools-0.1.0/.loom/scripts/tests/test-config-resolver.sh +197 -0
  236. klayout_tools-0.1.0/.loom/scripts/tests/test-config-tiers-cli-migration.sh +289 -0
  237. klayout_tools-0.1.0/.loom/scripts/tests/test-default-branch.sh +198 -0
  238. klayout_tools-0.1.0/.loom/scripts/tests/test-disk-headroom.sh +325 -0
  239. klayout_tools-0.1.0/.loom/scripts/tests/test-fleet-check.sh +360 -0
  240. klayout_tools-0.1.0/.loom/scripts/tests/test-fleet-send.sh +263 -0
  241. klayout_tools-0.1.0/.loom/scripts/tests/test-forge-helpers.sh +389 -0
  242. klayout_tools-0.1.0/.loom/scripts/tests/test-gitignore-guard.sh +216 -0
  243. klayout_tools-0.1.0/.loom/scripts/tests/test-guard-hook-schema.sh +221 -0
  244. klayout_tools-0.1.0/.loom/scripts/tests/test-install-active-session.sh +378 -0
  245. klayout_tools-0.1.0/.loom/scripts/tests/test-install-pr-markers.sh +403 -0
  246. klayout_tools-0.1.0/.loom/scripts/tests/test-install-reinstall-safety.sh +321 -0
  247. klayout_tools-0.1.0/.loom/scripts/tests/test-install-source-guard.sh +287 -0
  248. klayout_tools-0.1.0/.loom/scripts/tests/test-install-stash-scope.sh +149 -0
  249. klayout_tools-0.1.0/.loom/scripts/tests/test-judge-fanout-experiment.sh +157 -0
  250. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-daemon-launchd-plist.sh +265 -0
  251. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-daemon-start.sh +717 -0
  252. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-daemon-stop.sh +544 -0
  253. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-daemon-update.sh +2213 -0
  254. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-daemon-watchdog.sh +391 -0
  255. klayout_tools-0.1.0/.loom/scripts/tests/test-loom-dispatcher.sh +370 -0
  256. klayout_tools-0.1.0/.loom/scripts/tests/test-mcp-config.sh +487 -0
  257. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-auto-merge-disabled-fallback.sh +373 -0
  258. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-auto-reconcile.sh +300 -0
  259. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-help.sh +127 -0
  260. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-local-branch-cleanup.sh +247 -0
  261. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-merge-ordering-guard.sh +281 -0
  262. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-partial-increment.sh +279 -0
  263. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-primary-checkout-advice.sh +245 -0
  264. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-primary-worktree-guard.sh +278 -0
  265. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-unstable-fallback.sh +748 -0
  266. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-worktree-awk.sh +187 -0
  267. klayout_tools-0.1.0/.loom/scripts/tests/test-merge-pr-worktree-path.sh +359 -0
  268. klayout_tools-0.1.0/.loom/scripts/tests/test-pr-worktree-isolation.sh +193 -0
  269. klayout_tools-0.1.0/.loom/scripts/tests/test-probe-tokens-fallback.sh +140 -0
  270. klayout_tools-0.1.0/.loom/scripts/tests/test-provision-hooks.sh +212 -0
  271. klayout_tools-0.1.0/.loom/scripts/tests/test-provision-skills.sh +228 -0
  272. klayout_tools-0.1.0/.loom/scripts/tests/test-rebase-stacked-children.sh +331 -0
  273. klayout_tools-0.1.0/.loom/scripts/tests/test-reconcile-stack.sh +280 -0
  274. klayout_tools-0.1.0/.loom/scripts/tests/test-resync-installed.sh +570 -0
  275. klayout_tools-0.1.0/.loom/scripts/tests/test-safehoused-service.sh +172 -0
  276. klayout_tools-0.1.0/.loom/scripts/tests/test-spawn-claude.sh +1226 -0
  277. klayout_tools-0.1.0/.loom/scripts/tests/test-spawn-worker.sh +279 -0
  278. klayout_tools-0.1.0/.loom/scripts/tests/test-sweep-auto-stack.sh +163 -0
  279. klayout_tools-0.1.0/.loom/scripts/tests/test-sweep-checkpoint.sh +366 -0
  280. klayout_tools-0.1.0/.loom/scripts/tests/test-sweep-experiment.sh +100 -0
  281. klayout_tools-0.1.0/.loom/scripts/tests/test-sweep-pr-mode.sh +180 -0
  282. klayout_tools-0.1.0/.loom/scripts/tests/test-sweep-run-registry.sh +188 -0
  283. klayout_tools-0.1.0/.loom/scripts/tests/test-verify-install-scope.sh +267 -0
  284. klayout_tools-0.1.0/.loom/scripts/tests/test-warn-out-of-set-deps.sh +245 -0
  285. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-base-override.sh +151 -0
  286. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-concurrency.sh +283 -0
  287. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-hookspath.sh +111 -0
  288. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-json-purity.sh +252 -0
  289. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-nested-symlinks.sh +292 -0
  290. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-remove.sh +174 -0
  291. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-root-override.sh +262 -0
  292. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-sentinel-reinvoke.sh +186 -0
  293. klayout_tools-0.1.0/.loom/scripts/tests/test-worktree-sentinel.sh +167 -0
  294. klayout_tools-0.1.0/.loom/scripts/validate-phase.sh +25 -0
  295. klayout_tools-0.1.0/.loom/scripts/validate-roles.sh +258 -0
  296. klayout_tools-0.1.0/.loom/scripts/validate-toolchain.sh +354 -0
  297. klayout_tools-0.1.0/.loom/scripts/verify-install.sh +890 -0
  298. klayout_tools-0.1.0/.loom/scripts/verify-token-precedence.sh +83 -0
  299. klayout_tools-0.1.0/.loom/scripts/warn-out-of-set-deps.sh +174 -0
  300. klayout_tools-0.1.0/.loom/scripts/worktree-return.sh +218 -0
  301. klayout_tools-0.1.0/.loom/scripts/worktree.sh +1695 -0
  302. klayout_tools-0.1.0/CHANGELOG.md +22 -0
  303. klayout_tools-0.1.0/CLAUDE.md +45 -0
  304. klayout_tools-0.1.0/LICENSE +21 -0
  305. klayout_tools-0.1.0/PKG-INFO +127 -0
  306. klayout_tools-0.1.0/README.md +110 -0
  307. klayout_tools-0.1.0/RELEASING.md +95 -0
  308. klayout_tools-0.1.0/ROADMAP.md +87 -0
  309. klayout_tools-0.1.0/docs/ARCHITECTURE.md +120 -0
  310. klayout_tools-0.1.0/docs/README.md +32 -0
  311. klayout_tools-0.1.0/docs/cli/cells.md +140 -0
  312. klayout_tools-0.1.0/docs/cli/drc.md +204 -0
  313. klayout_tools-0.1.0/docs/cli/layers.md +111 -0
  314. klayout_tools-0.1.0/docs/cli/pdk.md +240 -0
  315. klayout_tools-0.1.0/docs/cli/stats.md +191 -0
  316. klayout_tools-0.1.0/docs/design/lambdalib-survey.md +166 -0
  317. klayout_tools-0.1.0/docs/design/sc-leflib-evaluation.md +244 -0
  318. klayout_tools-0.1.0/docs/design/scgallery-zerosoc-survey.md +159 -0
  319. klayout_tools-0.1.0/docs/design/siliconcompiler-core-survey.md +262 -0
  320. klayout_tools-0.1.0/docs/design/spice-corner-runner-spike.md +359 -0
  321. klayout_tools-0.1.0/docs/guides/building-klayout-macos.md +338 -0
  322. klayout_tools-0.1.0/docs/json-contract.md +109 -0
  323. klayout_tools-0.1.0/examples/drc/example.drc.json +169 -0
  324. klayout_tools-0.1.0/examples/drc/example.gds +0 -0
  325. klayout_tools-0.1.0/examples/drc/generate.py +59 -0
  326. klayout_tools-0.1.0/kb/README.md +90 -0
  327. klayout_tools-0.1.0/kb/entries/inverter-based-comparator.json +23 -0
  328. klayout_tools-0.1.0/kb/entries/sky130-bandgap-reference.json +23 -0
  329. klayout_tools-0.1.0/kb/entries/sky130-spiral-inductor.json +23 -0
  330. klayout_tools-0.1.0/kb/schema/entry.schema.json +83 -0
  331. klayout_tools-0.1.0/loom.sh +29 -0
  332. klayout_tools-0.1.0/package.json +13 -0
  333. klayout_tools-0.1.0/pdks/README.md +29 -0
  334. klayout_tools-0.1.0/pyproject.toml +58 -0
  335. klayout_tools-0.1.0/scripts/README.md +25 -0
  336. klayout_tools-0.1.0/scripts/deploy-site.sh +20 -0
  337. klayout_tools-0.1.0/scripts/fetch-pdks.sh +48 -0
  338. klayout_tools-0.1.0/site/README.md +22 -0
  339. klayout_tools-0.1.0/site/index.html +97 -0
  340. klayout_tools-0.1.0/src/klayout_tools/__init__.py +3 -0
  341. klayout_tools-0.1.0/src/klayout_tools/cells.py +148 -0
  342. klayout_tools-0.1.0/src/klayout_tools/cli/__init__.py +28 -0
  343. klayout_tools-0.1.0/src/klayout_tools/cli/__main__.py +8 -0
  344. klayout_tools-0.1.0/src/klayout_tools/cli/cells_cmd.py +84 -0
  345. klayout_tools-0.1.0/src/klayout_tools/cli/drc_cmd.py +59 -0
  346. klayout_tools-0.1.0/src/klayout_tools/cli/layers_cmd.py +54 -0
  347. klayout_tools-0.1.0/src/klayout_tools/cli/output.py +79 -0
  348. klayout_tools-0.1.0/src/klayout_tools/cli/parser.py +222 -0
  349. klayout_tools-0.1.0/src/klayout_tools/cli/pdk_cmd.py +82 -0
  350. klayout_tools-0.1.0/src/klayout_tools/cli/stats_cmd.py +82 -0
  351. klayout_tools-0.1.0/src/klayout_tools/decks/__init__.py +84 -0
  352. klayout_tools-0.1.0/src/klayout_tools/decks/gf180mcu.py +208 -0
  353. klayout_tools-0.1.0/src/klayout_tools/decks/sky130.py +167 -0
  354. klayout_tools-0.1.0/src/klayout_tools/drc.py +185 -0
  355. klayout_tools-0.1.0/src/klayout_tools/layers.py +98 -0
  356. klayout_tools-0.1.0/src/klayout_tools/pdk.py +254 -0
  357. klayout_tools-0.1.0/src/klayout_tools/stats.py +207 -0
  358. klayout_tools-0.1.0/tests/corpus/README.md +87 -0
  359. klayout_tools-0.1.0/tests/corpus/generate_golden.py +55 -0
  360. klayout_tools-0.1.0/tests/corpus/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__and2_1.gds +0 -0
  361. klayout_tools-0.1.0/tests/corpus/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__clkinv_1.gds +0 -0
  362. klayout_tools-0.1.0/tests/corpus/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__dffnq_1.gds +0 -0
  363. klayout_tools-0.1.0/tests/corpus/golden/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__and2_1.layers.json +86 -0
  364. klayout_tools-0.1.0/tests/corpus/golden/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__clkinv_1.layers.json +86 -0
  365. klayout_tools-0.1.0/tests/corpus/golden/gf180mcu/gf180mcu_fd_sc_mcu9t5v0__dffnq_1.layers.json +86 -0
  366. klayout_tools-0.1.0/tests/corpus/golden/sky130/sky130_fd_sc_hd__buf_4.layers.json +140 -0
  367. klayout_tools-0.1.0/tests/corpus/golden/sky130/sky130_fd_sc_hd__dfxtp_2.layers.json +140 -0
  368. klayout_tools-0.1.0/tests/corpus/golden/sky130/sky130_fd_sc_hd__inv_1.layers.json +140 -0
  369. klayout_tools-0.1.0/tests/corpus/golden/sky130/sky130_fd_sc_hd__nand2_2.layers.json +140 -0
  370. klayout_tools-0.1.0/tests/corpus/sky130/sky130_fd_sc_hd__buf_4.gds +0 -0
  371. klayout_tools-0.1.0/tests/corpus/sky130/sky130_fd_sc_hd__dfxtp_2.gds +0 -0
  372. klayout_tools-0.1.0/tests/corpus/sky130/sky130_fd_sc_hd__inv_1.gds +0 -0
  373. klayout_tools-0.1.0/tests/corpus/sky130/sky130_fd_sc_hd__nand2_2.gds +0 -0
  374. klayout_tools-0.1.0/tests/test_cells.py +262 -0
  375. klayout_tools-0.1.0/tests/test_cli.py +42 -0
  376. klayout_tools-0.1.0/tests/test_corpus.py +100 -0
  377. klayout_tools-0.1.0/tests/test_drc.py +421 -0
  378. klayout_tools-0.1.0/tests/test_kb.py +150 -0
  379. klayout_tools-0.1.0/tests/test_layers.py +176 -0
  380. klayout_tools-0.1.0/tests/test_output.py +56 -0
  381. klayout_tools-0.1.0/tests/test_pdk.py +367 -0
  382. klayout_tools-0.1.0/tests/test_stats.py +271 -0
  383. klayout_tools-0.1.0/uv.lock +545 -0
@@ -0,0 +1,248 @@
1
+ # Claude Code Settings
2
+
3
+ This directory contains Claude Code configuration for the Loom project.
4
+
5
+ ## Files
6
+
7
+ - **`settings.json`**: Team-wide permissions and settings (committed to git)
8
+ - **`settings.local.json`**: Personal preferences (gitignored, create if needed)
9
+ - **`../.mcp.json`**: MCP server configuration (at project root, committed to git)
10
+ - **`agents/`**: Custom subagent definitions for Loom roles (see below)
11
+
12
+ ## Pre-approved Commands
13
+
14
+ The `settings.json` file pre-approves common development commands to streamline the AI workflow:
15
+
16
+ ### GitHub CLI (`gh`)
17
+ - PR operations: create, edit, view, list, checkout, diff, review, checks
18
+ - Issue operations: create, edit, view, list, close
19
+ - Workflow runs: view
20
+
21
+ ### Git Operations
22
+ - Status, add, commit, push, pull, fetch, merge
23
+ - Branch management: checkout, branch, log, diff
24
+ - Working tree operations: restore, stash, reset, clean
25
+ - Worktree operations: add
26
+ - Configuration: config, check-ignore
27
+
28
+ ### Package Management
29
+ - `pnpm daemon:dev` - Run daemon in dev mode
30
+ - `pnpm daemon:build` - Build daemon (release)
31
+ - `pnpm check:all` - Run all checks
32
+ - `pnpm check:ci` - Run CI checks locally
33
+
34
+ ### Code Quality
35
+ - `pnpm clippy` - Rust linting
36
+ - `pnpm test` - Run tests
37
+
38
+ ### Rust/Cargo
39
+ - `cargo check` - Check compilation
40
+ - `cargo build` - Build project
41
+ - `cargo test` - Run tests
42
+
43
+ ### Utilities
44
+ - File operations: cat, ls, pwd, cd, mkdir
45
+ - Image conversion: convert, magick, iconutil
46
+ - Terminal management: tmux list-sessions
47
+ - Web search: Enabled
48
+
49
+ ## Local Overrides
50
+
51
+ Create `.claude/settings.local.json` for personal preferences:
52
+
53
+ ```json
54
+ {
55
+ "permissions": {
56
+ "allow": [
57
+ "Bash(your custom command:*)"
58
+ ]
59
+ }
60
+ }
61
+ ```
62
+
63
+ Local settings override team settings for that specific configuration key.
64
+
65
+ ## MCP Server
66
+
67
+ Loom provides a single **unified `mcp-loom` MCP server** (configured in
68
+ `.mcp.json`) that consolidates log monitoring, terminal management, and UI/state
69
+ control. It replaces the historical trio of separate `loom-logs` /
70
+ `loom-terminals` / `loom-ui` servers. Representative tools by category:
71
+
72
+ **Log tools**:
73
+ - `tail_daemon_log` - View daemon logs (`~/.loom/daemon.log`)
74
+ - `list_terminal_logs` - List terminal output files
75
+ - `tail_terminal_log` - View specific terminal output
76
+
77
+ **Terminal tools**:
78
+ - `list_terminals` - List all active terminals
79
+ - `get_terminal_output` - Read terminal output
80
+ - `get_selected_terminal` - Get current terminal info
81
+ - `send_terminal_input` - Execute commands in terminals
82
+ - `create_terminal` / `configure_terminal` / `restart_terminal` - Manage terminal sessions
83
+
84
+ **UI / state tools**:
85
+ - `read_console_log` - View browser console output (JavaScript errors, console.log statements)
86
+ - `read_state_file` - Read current application state (.loom/state.json)
87
+ - `read_config_file` - Read terminal configurations (.loom/config.json)
88
+ - `trigger_start` - Trigger workspace start with confirmation dialog
89
+ - `trigger_force_start` - Trigger force start without confirmation (immediate reset)
90
+
91
+ **Label State Machine Reset**: When the workspace is started (via `trigger_start` or `trigger_force_start`), the `reset_github_labels` daemon command automatically resets the GitHub label state machine:
92
+ - Removes `loom:building` from all open issues (workers can reclaim them)
93
+ - Replaces `loom:reviewing` with `loom:review-requested` on all open PRs (reviewer can re-review)
94
+ - This ensures a clean state when restarting the workspace with fresh agent terminals
95
+
96
+ See the mcp-loom package README for the full tool catalog.
97
+
98
+ **Note**: When you first open the project, Claude Code will prompt you to approve the MCP server. You can also enable it automatically by setting `"enableAllProjectMcpServers": true` in your `.claude/settings.local.json`.
99
+
100
+ ## Slash Commands
101
+
102
+ The `commands/` directory contains slash commands that define Loom roles. Each command file contains the complete role definition - there's no indirection to separate role files.
103
+
104
+ ### Available Commands
105
+
106
+ Commands under `.claude/commands/loom/` are invoked in the namespaced
107
+ `/loom:<role>` form (Claude Code 2.1+ requires this for subdirectory commands —
108
+ see #3345):
109
+
110
+ | Command | Role | Purpose |
111
+ |---------|------|---------|
112
+ | `/loom:builder` | Builder | Implements features for `loom:issue` issues and creates PRs |
113
+ | `/loom:judge` | Judge | Reviews PRs with `loom:review-requested` label |
114
+ | `/loom:curator` | Curator | Enhances issues and marks them as `loom:curated` |
115
+ | `/loom:architect` | Architect | Creates architectural proposals with `loom:architect` |
116
+ | `/loom:hermit` | Hermit | Identifies bloat and creates simplification issues |
117
+ | `/loom:doctor` | Doctor | Addresses PR feedback and resolves conflicts |
118
+ | `/loom:guide` | Guide | Triages issues and applies `loom:urgent` to top 3 |
119
+ | `/loom:champion` | Champion | Auto-merges approved PRs with `loom:pr` label |
120
+ | `/loom:help` | Help | Read-only overview of the installed `/loom:*` commands; `/loom:help <command>` describes one |
121
+ | `/loom:help <topic>` | Help | Comprehensive help guide with sub-topics (roles, workflow, commands, etc.) |
122
+
123
+ ### How Slash Commands Work
124
+
125
+ **Manual Invocation**: Use slash commands to assume a role:
126
+ ```bash
127
+ /loom:builder # Assume Builder role, find and implement a loom:issue
128
+ /loom:judge # Assume Judge role, review a PR with loom:review-requested
129
+ /loom:help # Show comprehensive Loom help guide
130
+ ```
131
+
132
+ Each slash command contains the complete role definition, including:
133
+ 1. The role's purpose and responsibilities
134
+ 2. Workflow guidelines and label transitions
135
+ 3. Instructions for completing ONE iteration of the role's task
136
+
137
+ ### Agent Roles in Workflow
138
+
139
+ The roles work together following the label-based workflow:
140
+
141
+ 1. **architect** scans codebase → creates proposals with `loom:architect`
142
+ 2. **User approves** → adds `loom:issue` label
143
+ 3. **curator** enhances issues → marks as `loom:curated`
144
+ 4. **User approves** → adds `loom:issue` label
145
+ 5. **guide** prioritizes → adds `loom:urgent` to top 3
146
+ 6. **builder** implements → creates PR with `loom:review-requested`
147
+ 7. **judge** reviews → approves or requests changes
148
+ 8. **doctor** fixes feedback → transitions back to `loom:review-requested`
149
+ 9. **judge** approves → adds `loom:pr`
150
+ 10. **champion** auto-merges the `loom:pr` PR → issue auto-closes via `Closes #N`
151
+
152
+ ### Creating Custom Commands
153
+
154
+ To create a custom slash command:
155
+
156
+ 1. Create `.claude/commands/your-command.md` (or `.claude/commands/your-namespace/command.md`) with the complete role definition
157
+ 2. Include role purpose, workflow guidelines, and iteration instructions
158
+ 3. Use it with `/your-command` (or `/your-namespace/command`)
159
+
160
+ **Note**: `.loom/roles/` contains symlinks to `.claude/commands/loom/` for backward compatibility. The single source of truth for all Loom role definitions is `.claude/commands/loom/`.
161
+
162
+ ## Custom Subagents
163
+
164
+ The `agents/` directory contains custom subagent definitions for Loom roles. These subagents can be used with Claude Code's Task tool for spawning role-specific agents with fresh context.
165
+
166
+ ### Available Subagents
167
+
168
+ | Subagent | Purpose |
169
+ |----------|---------|
170
+ | `loom-builder` | Implement features and fixes |
171
+ | `loom-judge` | Review pull requests |
172
+ | `loom-curator` | Enhance and organize issues |
173
+ | `loom-doctor` | Fix bugs and address PR feedback |
174
+ | `loom-champion` | Evaluate proposals, auto-merge PRs |
175
+ | `loom-architect` | Create architectural proposals |
176
+ | `loom-hermit` | Identify simplification opportunities |
177
+ | `loom-guide` | Prioritize and triage issues |
178
+ | `loom-auditor` | Validate main branch build/runtime |
179
+ | `loom-daemon` | Observe/dispatch the Rust `loom-daemon` via MCP tools |
180
+
181
+ The stubs do not carry a `model:` frontmatter field — a subagent's model is
182
+ resolved through the model-selection precedence chain (role JSON
183
+ `suggestedModel`, workspace override, or explicit dispatch param), not the stub.
184
+ See CLAUDE.md → "Model Selection Strategy".
185
+
186
+ > **Note**: the `loom-shepherd` subagent was removed in v0.10.0 along with the `/shepherd` slash command — see [the migration guide](https://github.com/rjwalters/loom/blob/main/docs/migration/v0.10.0-shepherd-deprecation.md). Use `/loom:sweep <issue>` (Tier 1) for the equivalent lifecycle. The `loom-daemon` subagent is preserved and now documents the Rust `loom-daemon` binary's MCP dispatch surface (`mcp__loom__dispatch_sweep` / `mcp__loom__list_sweeps` …) rather than the deleted Python brain.
187
+
188
+ ### How Subagents Work
189
+
190
+ Subagents are specialized AI assistants that run in their own context window. Each has:
191
+ - Custom system prompt referencing the role definition in `.loom/roles/`
192
+ - Specific tool access appropriate for the role
193
+ - Model selection optimized for the task complexity
194
+
195
+ **Using Subagents with Task**:
196
+
197
+ The `/loom:sweep` orchestrator (or the Rust `loom-daemon`) can dispatch subagents for each phase. The recommended pattern is **native dispatch** -- pass the Loom role directly as `subagent_type`. Claude Code resolves `loom-<role>` against the `.claude/agents/loom-*.md` agent definitions that ship with Loom:
198
+
199
+ ```python
200
+ # Spawn builder subagent with fresh context using native dispatch.
201
+ # subagent_type matches the agent definition name (loom-builder, loom-judge,
202
+ # loom-doctor, loom-curator, loom-champion, loom-architect, loom-hermit,
203
+ # loom-guide, loom-auditor).
204
+ result = Task(
205
+ description="Builder phase for issue #123",
206
+ prompt="Implement issue #123",
207
+ subagent_type="loom-builder",
208
+ run_in_background=False
209
+ )
210
+ ```
211
+
212
+ The agent definition wires the correct system prompt and tool allowlist, so the caller only needs to supply the task-specific prompt (e.g., the issue number). The model is not set by the stub — it comes from the model-selection precedence chain (see CLAUDE.md → "Model Selection Strategy").
213
+
214
+ **Legacy pattern** (`subagent_type="general-purpose"` + a slash command in the prompt) still works for environments where the `loom-*` agent definitions are not installed, but prefer native dispatch when available:
215
+
216
+ ```python
217
+ # Legacy fallback - role selection happens via the slash command in the prompt.
218
+ # Note: Claude Code 2.1+ requires the namespaced `/loom:<role>` form for
219
+ # subdirectory commands (`.claude/commands/loom/<role>.md`). See issue #3345.
220
+ result = Task(
221
+ description="Builder phase for issue #123",
222
+ prompt="/loom:builder 123",
223
+ subagent_type="general-purpose",
224
+ run_in_background=False
225
+ )
226
+ ```
227
+
228
+ **Benefits**:
229
+ - **Fresh context**: Each subagent starts clean, avoiding context pollution
230
+ - **Role isolation**: Subagents focus on their specific task
231
+ - **Cost control**: Use faster/cheaper models for simpler roles (sonnet vs opus)
232
+ - **Better observability**: Clear which role is running
233
+
234
+ ### Subagents vs Slash Commands
235
+
236
+ | Feature | Slash Commands | Subagents |
237
+ |---------|----------------|-----------|
238
+ | Context | Shared with main conversation | Isolated, fresh context |
239
+ | Invocation | `/loom:builder 123` | `Task(subagent_type="loom-builder", prompt="Implement issue #123")` (legacy: `subagent_type="general-purpose"` + `/loom:builder 123`) |
240
+ | Use case | Manual orchestration | Automated orchestration |
241
+ | Visibility | In main conversation | Spawned as separate task |
242
+
243
+ **Use slash commands** for manual orchestration mode where you want direct control.
244
+ **Use subagents** for automated orchestration where `/loom:sweep` (or `loom-daemon`) coordinates roles with fresh context per phase.
245
+
246
+ ## Documentation
247
+
248
+ Full Claude Code settings documentation: https://docs.claude.com/en/docs/claude-code/settings
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: loom-architect
3
+ description: Loom Architect - System design specialist that scans the codebase for improvement opportunities and creates comprehensive architectural proposals with loom:architect label.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Architect (System Design Specialist) for this repository.
8
+
9
+ Your role is to identify improvement opportunities and create architectural proposals.
10
+
11
+ Follow the complete role definition in `.loom/roles/architect.md` for:
12
+ - Checking existing proposal count (`gh issue list --label="loom:architect"`)
13
+ - Scanning for opportunities across ALL domains:
14
+ - Features and enhancements
15
+ - Refactoring and code quality
16
+ - Documentation improvements
17
+ - Test coverage gaps
18
+ - CI/CD improvements
19
+ - Security hardening
20
+ - Performance optimization
21
+ - Creating comprehensive proposal issues with:
22
+ - Clear problem statement
23
+ - Proposed solution with design details
24
+ - Impact assessment
25
+ - Implementation approach
26
+ - Adding `loom:architect` label to proposals
27
+ - Assessing if `loom:urgent` is warranted
28
+
29
+ Create ONE well-formed proposal per iteration if backlog has < 3 open proposals.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: loom-auditor
3
+ description: Loom Auditor - Main branch validation specialist that builds, tests, and runs the integrated software on `main` to verify it actually works, filing bug issues with the loom:auditor label when it finds runtime breakage.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Auditor (Main Branch Validation Specialist) for this repository.
8
+
9
+ Your role is the continuous integration health monitor: while Judge reviews individual PRs before merge, you verify that the integrated system on `main` still builds, tests, and runs after merges.
10
+
11
+ Follow the complete role definition in `.loom/roles/auditor.md` for:
12
+ - Fetching and checking out the latest `origin/main` (`git fetch origin main && git checkout -B main origin/main`) — the Auditor often runs on a fresh CI checkout, so never assume `main` is already current
13
+ - CI-aware validation: skip redundant build/test when `check-ci-status.sh` reports CI already passed, and focus on runtime validation CI does not cover
14
+ - Building the project artifacts, running the test suite, and launching the application/CLI to observe startup and runtime behavior
15
+ - Analyzing stdout/stderr for errors, crashes, panics, and integration regressions
16
+ - Filing well-formed bug issues (with reproduction steps, output, and environment) labeled `loom:auditor` when validation fails — after checking for duplicates
17
+ - Raising capability requests when you hit a validation gap you lack the tooling to cover
18
+
19
+ Trust but verify - claims without runtime validation are just assumptions. A clean run has no "passed" label; the signal is the absence of a filed bug.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: loom-builder
3
+ description: Loom Builder - Development worker that implements issues labeled loom:issue. Use when implementing features, fixing bugs, writing tests, or creating PRs for approved issues.
4
+ tools: Read, Glob, Grep, Bash, Write, Edit
5
+ ---
6
+
7
+ You are the Loom Builder (Development Worker) for this repository.
8
+
9
+ Your role is to implement issues labeled `loom:issue` (human-approved, ready for work).
10
+
11
+ Follow the complete role definition in `.loom/roles/builder.md` for:
12
+ - Finding and claiming issues with `loom:issue` label
13
+ - Creating worktrees with `./.loom/scripts/worktree.sh`
14
+ - Label discipline (claim: remove `loom:issue`, add `loom:building`)
15
+ - Reading issues with `--comments` flag
16
+ - Pre-implementation review of recent main changes
17
+ - Checking dependencies before claiming
18
+ - Scope management and decomposition criteria
19
+ - PR creation with `loom:review-requested` and `Closes #N` syntax (or `Part of #N` for a partial increment of a family/epic issue)
20
+ - Handling pre-existing lint/build failures
21
+
22
+ Never abandon claimed work - always create a PR, decompose into sub-issues, or mark as blocked.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: loom-champion
3
+ description: Loom Champion - Human avatar that promotes quality issues to approved status AND auto-merges Judge-approved PRs meeting safety criteria. Use for final approval decisions.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Champion for this repository.
8
+
9
+ Your dual role is to promote curated issues to approved status AND auto-merge approved PRs.
10
+
11
+ Follow the complete role definition in `.loom/roles/champion.md` for:
12
+
13
+ **PR Merging (Priority 1)**:
14
+ - Find PRs with `gh pr list --label="loom:pr" --state=open`
15
+ - Verify 6 safety criteria before merging:
16
+ 1. Has `loom:pr` label
17
+ 2. Size within configured limit (default 200, configurable via `.loom/config.json`; waived by `loom:auto-merge-ok` label)
18
+ 3. No critical file modifications
19
+ 4. Mergeable (no conflicts)
20
+ 5. Updated within 24 hours
21
+ 6. CI checks passing
22
+ - Drain the queue — merge every qualifying PR each iteration (no numeric cap; see `champion-pr-merge.md` §"PR Auto-Merge Batch Processing")
23
+
24
+ **Issue Promotion (Priority 2)**:
25
+ - Find issues with `gh issue list --label="loom:curated" --state=open`
26
+ - Evaluate against 8 quality criteria
27
+ - Promote by adding `loom:issue` label
28
+ - Process the whole queue, bounded only by the tier-based promotion limits in `champion-issue-promo.md` (Tier 1 unlimited / Tier 2 ≤2 per iteration / Tier 3 ≤1, gated at 5 backlog) and the 1-epic-per-iteration limit in `champion-epic.md`
29
+
30
+ Conservative bias - when in doubt, do NOT act. Always leave detailed audit trail comments.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: loom-curator
3
+ description: Loom Curator - Issue enhancement specialist that enriches unlabeled issues with technical details, acceptance criteria, and implementation guidance, then marks them as loom:curated.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Curator (Issue Enhancement Specialist) for this repository.
8
+
9
+ Your role is to enhance issues and prepare them for implementation.
10
+
11
+ Follow the complete role definition in `.loom/roles/curator.md` for:
12
+ - Finding unlabeled issues needing curation
13
+ - Assessing if issues are well-formed (clear problem, acceptance criteria, test plan)
14
+ - Enhancing issues with:
15
+ - Technical context and root cause analysis
16
+ - Implementation guidance and approach options
17
+ - Acceptance criteria and test plans
18
+ - Relevant code references
19
+ - Marking enhanced issues as `loom:curated`
20
+ - NEVER adding `loom:issue` — promotion is never the Curator's call (only a human, Champion, or the `/loom:sweep` orchestrator's Approval gate promotes `loom:curated` → `loom:issue`; see `.loom/roles/curator.md` "Who promotes `loom:curated` → `loom:issue`" for the authoritative rule)
21
+
22
+ Before applying `loom:curated`, verify each path enumerated under `## Affected Files` exists on `origin/main` (curator runs in the user's working tree where uncommitted files are visible; builder runs in a worktree off `origin/main` where they are not). If any path is missing, post a warning comment, apply `loom:blocked`, and skip `loom:curated`. See `.claude/commands/loom/curator.md` (`### Verify enumerations` -> "Verify against build base") for the canonical bash.
23
+
24
+ Quality issues get marked `loom:curated` immediately; incomplete issues get enhanced first.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: loom-daemon
3
+ description: Loom Daemon operator - Tier 2 daemon-mode surface that observes the running Rust `loom-daemon` binary via MCP tools and dispatches sweeps for multi-account autonomous batches. Use to monitor and drive the daemon, not to run a work-generation loop.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Daemon operator (Tier 2 daemon-mode surface) for this repository.
8
+
9
+ The `loom-daemon` is a long-lived **Rust binary** that holds the sweep registry, the event bus, and the reaper task in memory and exposes an MCP-level dispatch + monitoring + pub/sub surface. You coordinate it via MCP tools — you do not run a Python daemon loop, maintain a shepherd pool, or spawn shell processes directly.
10
+
11
+ Follow the complete role definition in `.loom/roles/loom.md` for:
12
+ - Daemon detection — probe reachability with `mcp__loom__list_sweeps` (a healthy daemon returns a possibly-empty registry; a dead one fails fast)
13
+ - Dispatching work — `mcp__loom__dispatch_sweep` launches a `/loom:sweep <issue>` child with multi-account OAuth token rotation via `spawn-claude.sh`
14
+ - Observing state — `mcp__loom__list_sweeps`, `mcp__loom__get_sweep_status`, `mcp__loom__tail_sweep_log`
15
+ - Eventing — `mcp__loom__subscribe_to_events` / `mcp__loom__tail_event_bus` over the frozen 6-topic taxonomy
16
+ - Intervening — `mcp__loom__cancel_sweep` (SIGTERM → grace → SIGKILL); the daemon process itself keeps running
17
+ - Host-sleep readiness for long / overnight runs (`check-host-sleep.sh`, advisory-only)
18
+
19
+ **By default the daemon is not a work generator**: with no autonomous config it does not poll the forge for `loom:issue` items and it does not drive support roles on cron — operator-driven `mcp__loom__dispatch_sweep` and the GitHub Actions cron workflows own those responsibilities. Two opt-in, default-off surfaces are the exception: the autonomous work finder (#3810, `LOOM_WORK_FINDER` / `autonomous.workFinder`) polls open `loom:issue` items and auto-dispatches sweeps, and the epic supervisor (#3842) drives `loom:epic` fork-joins. See `.loom/docs/daemon-reference.md` for the full IPC/event surface and the autonomous work finder / epic supervisor sections.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: loom-doctor
3
+ description: Loom Doctor - PR fixer that addresses review feedback on PRs labeled loom:changes-requested, resolves merge conflicts, and fixes bugs. Returns PRs to review-ready state.
4
+ tools: Read, Glob, Grep, Bash, Write, Edit
5
+ ---
6
+
7
+ You are the Loom Doctor (PR Fixer) for this repository.
8
+
9
+ Your role is to address PR feedback and resolve issues blocking merge.
10
+
11
+ Follow the complete role definition in `.loom/roles/doctor.md` for:
12
+ - Finding PRs with `gh pr list --label="loom:changes-requested" --state=open`
13
+ - For each PR:
14
+ 1. Check out the branch with `gh pr checkout`
15
+ 2. Read review comments to understand requested changes
16
+ 3. Implement the fixes
17
+ 4. Run the project's check command (`buildGate.command` in `.loom/config.json`, e.g. `pnpm check:ci`) to verify
18
+ 5. Commit and push fixes
19
+ 6. Update labels (remove `loom:changes-requested`, add `loom:review-requested`)
20
+ 7. Comment that feedback is addressed
21
+ - Handling merge conflicts:
22
+ - Rebase onto main
23
+ - Resolve conflicts
24
+ - Force push with lease
25
+ - For complex changes requiring substantial refactoring:
26
+ - Create an issue with `loom:triage` + `loom:urgent` labels instead
27
+
28
+ Return PRs to review-ready state efficiently.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: loom-guide
3
+ description: Loom Guide - Issue triage specialist that continuously prioritizes loom:issue issues by managing loom:urgent labels to reflect current top priorities.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Guide (Triage Specialist) for this repository.
8
+
9
+ Your role is to prioritize issues and manage the `loom:urgent` label.
10
+
11
+ Follow the complete role definition in `.loom/roles/guide.md` for:
12
+ - Reviewing all `loom:issue` issues
13
+ - Assessing priority based on:
14
+ - Impact and urgency
15
+ - Dependencies and blocking relationships
16
+ - Resource requirements
17
+ - Strategic alignment
18
+ - Managing `loom:urgent` labels to reflect top 3 priorities
19
+ - Updating priorities as the backlog evolves
20
+ - Unblocking dependencies when possible
21
+
22
+ Maintain an accurate priority queue so Builders work on the most important issues first.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: loom-hermit
3
+ description: Loom Hermit - Simplification specialist that identifies and proposes removal of unnecessary complexity, bloat, dead code, and over-engineering. Creates proposals with loom:hermit label.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Hermit (Simplification Specialist) for this repository.
8
+
9
+ Your role is to identify opportunities to simplify and remove unnecessary complexity.
10
+
11
+ Follow the complete role definition in `.loom/roles/hermit.md` for:
12
+ - Analyzing the codebase for:
13
+ - Unused dependencies
14
+ - Dead code and unreachable paths
15
+ - Over-engineered abstractions
16
+ - Commented-out code
17
+ - Duplicated logic
18
+ - Unnecessary features
19
+ - Excessive configuration
20
+ - Creating removal proposals with:
21
+ - What to remove (be specific)
22
+ - Evidence of non-usage (grep results, etc.)
23
+ - Why it's bloat
24
+ - Benefits of removal
25
+ - Risk assessment
26
+ - Adding `loom:hermit` label to proposals
27
+
28
+ Be specific and provide evidence. The best code is code that doesn't exist.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: loom-judge
3
+ description: Loom Judge - Code review specialist that reviews PRs labeled loom:review-requested. Use when reviewing pull requests for code quality, security, and best practices.
4
+ tools: Read, Glob, Grep, Bash
5
+ ---
6
+
7
+ You are the Loom Judge (Code Review Specialist) for this repository.
8
+
9
+ Your role is to review PRs labeled `loom:review-requested` with thoroughness and expertise.
10
+
11
+ Follow the complete role definition in `.loom/roles/judge.md` for:
12
+ - Finding PRs with `gh pr list --label="loom:review-requested"`
13
+ - Checkout and review process
14
+ - Running the project's check command (`buildGate.command` in `.loom/config.json`, e.g. `pnpm check:ci`) for CI validation
15
+ - **Verifying CI passes** with `gh pr checks` before approval (REQUIRED)
16
+ - **Checking merge state** with `gh pr view --json mergeStateStatus` (must be CLEAN)
17
+ - Code quality and security assessment
18
+ - Approval workflow: `gh pr comment` with feedback, then update labels (remove `loom:review-requested`, add `loom:pr`)
19
+ - Change request workflow: `gh pr comment` with feedback, then update labels (remove `loom:review-requested`, add `loom:changes-requested`)
20
+ - Providing specific, actionable feedback
21
+
22
+ **Important**: Use `gh pr comment` + label changes — never `gh pr review --approve` or `--request-changes` (GitHub API prevents self-review, and Loom agents share the same account).