agentirc-cli 0.10.2__tar.gz → 0.10.4__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 (209) hide show
  1. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/CHANGELOG.md +15 -0
  2. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/PKG-INFO +2 -2
  3. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/README.md +1 -1
  4. agentirc_cli-0.10.4/agentirc/__init__.py +1 -0
  5. {agentirc_cli-0.10.2/plugins/codex/skills/agentirc-irc → agentirc_cli-0.10.4/agentirc/clients/codex/skill}/SKILL.md +1 -1
  6. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/agent-harness-spec.md +1 -1
  7. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/cli.md +1 -1
  8. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/configuration.md +6 -6
  9. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/setup.md +9 -9
  10. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/supervisor.md +4 -4
  11. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/webhooks.md +6 -6
  12. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/getting-started.md +2 -2
  13. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/grow-your-agent.md +48 -43
  14. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/layer2-attention.md +3 -3
  15. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/layer5-agent-harness.md +2 -2
  16. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +9 -9
  17. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +15 -15
  18. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/superpowers/specs/2026-03-19-agentirc-design.md +10 -10
  19. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +8 -8
  20. agentirc_cli-0.10.4/docs/use-cases/01-pair-programming.md +223 -0
  21. agentirc_cli-0.10.4/docs/use-cases/02-code-review-ensemble.md +218 -0
  22. agentirc_cli-0.10.4/docs/use-cases/03-cross-server-delegation.md +138 -0
  23. agentirc_cli-0.10.4/docs/use-cases/04-knowledge-propagation.md +124 -0
  24. agentirc_cli-0.10.4/docs/use-cases/05-the-observer.md +192 -0
  25. agentirc_cli-0.10.4/docs/use-cases/06-cross-server-ops.md +170 -0
  26. agentirc_cli-0.10.4/docs/use-cases/07-supervisor-intervention.md +263 -0
  27. agentirc_cli-0.10.4/docs/use-cases/08-apps-as-agents.md +136 -0
  28. agentirc_cli-0.10.4/docs/use-cases/09-research-swarm.md +230 -0
  29. agentirc_cli-0.10.4/docs/use-cases/10-grow-your-agent.md +424 -0
  30. agentirc_cli-0.10.4/docs/use-cases-index.md +22 -0
  31. {agentirc_cli-0.10.2/agentirc/clients/codex/skill → agentirc_cli-0.10.4/plugins/codex/skills/agentirc-irc}/SKILL.md +1 -1
  32. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/pyproject.toml +1 -1
  33. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_daemon_config.py +15 -15
  34. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_message.py +7 -7
  35. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_message_buffer.py +2 -2
  36. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_webhook.py +7 -7
  37. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/uv.lock +1 -1
  38. agentirc_cli-0.10.2/agentirc/__init__.py +0 -1
  39. agentirc_cli-0.10.2/docs/use-cases/01-pair-programming.md +0 -132
  40. agentirc_cli-0.10.2/docs/use-cases/02-code-review-ensemble.md +0 -121
  41. agentirc_cli-0.10.2/docs/use-cases/03-research-deep-dive.md +0 -156
  42. agentirc_cli-0.10.2/docs/use-cases/04-agent-delegation.md +0 -104
  43. agentirc_cli-0.10.2/docs/use-cases/05-benchmark-swarm.md +0 -146
  44. agentirc_cli-0.10.2/docs/use-cases/06-cross-server-ops.md +0 -144
  45. agentirc_cli-0.10.2/docs/use-cases/07-knowledge-pipeline.md +0 -164
  46. agentirc_cli-0.10.2/docs/use-cases/08-supervisor-intervention.md +0 -193
  47. agentirc_cli-0.10.2/docs/use-cases/09-apps-as-agents.md +0 -137
  48. agentirc_cli-0.10.2/docs/use-cases/10-pruning-the-mesh.md +0 -139
  49. agentirc_cli-0.10.2/docs/use-cases-index.md +0 -9
  50. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.github/workflows/pages.yml +0 -0
  51. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.github/workflows/publish.yml +0 -0
  52. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.github/workflows/tests.yml +0 -0
  53. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.gitignore +0 -0
  54. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.markdownlint-cli2.yaml +0 -0
  55. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/.pr_agent.toml +0 -0
  56. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/CLAUDE.md +0 -0
  57. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/CNAME +0 -0
  58. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/Gemfile +0 -0
  59. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/Gemfile.lock +0 -0
  60. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/LICENSE +0 -0
  61. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/_config.yml +0 -0
  62. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/_sass/color_schemes/anthropic.scss +0 -0
  63. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/_sass/custom/custom.scss +0 -0
  64. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/cli.py +0 -0
  65. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/__init__.py +0 -0
  66. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/__init__.py +0 -0
  67. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/__main__.py +0 -0
  68. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/agent_runner.py +0 -0
  69. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/config.py +0 -0
  70. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/daemon.py +0 -0
  71. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/ipc.py +0 -0
  72. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/irc_transport.py +0 -0
  73. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/message_buffer.py +0 -0
  74. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/skill/SKILL.md +0 -0
  75. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/skill/__init__.py +0 -0
  76. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/skill/irc_client.py +0 -0
  77. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/socket_server.py +0 -0
  78. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/supervisor.py +0 -0
  79. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/claude/webhook.py +0 -0
  80. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/__init__.py +0 -0
  81. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/agent_runner.py +0 -0
  82. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/config.py +0 -0
  83. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/daemon.py +0 -0
  84. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/ipc.py +0 -0
  85. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/irc_transport.py +0 -0
  86. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/message_buffer.py +0 -0
  87. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/skill/__init__.py +0 -0
  88. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/skill/irc_client.py +0 -0
  89. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/socket_server.py +0 -0
  90. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/supervisor.py +0 -0
  91. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/codex/webhook.py +0 -0
  92. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/__init__.py +0 -0
  93. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/agent_runner.py +0 -0
  94. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/config.py +0 -0
  95. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/daemon.py +0 -0
  96. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/ipc.py +0 -0
  97. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/irc_transport.py +0 -0
  98. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/message_buffer.py +0 -0
  99. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/skill/SKILL.md +0 -0
  100. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/skill/__init__.py +0 -0
  101. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/skill/irc_client.py +0 -0
  102. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/socket_server.py +0 -0
  103. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/supervisor.py +0 -0
  104. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/copilot/webhook.py +0 -0
  105. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/__init__.py +0 -0
  106. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/agent_runner.py +0 -0
  107. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/config.py +0 -0
  108. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/daemon.py +0 -0
  109. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/ipc.py +0 -0
  110. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/irc_transport.py +0 -0
  111. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/message_buffer.py +0 -0
  112. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/skill/SKILL.md +0 -0
  113. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/skill/__init__.py +0 -0
  114. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/skill/irc_client.py +0 -0
  115. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/socket_server.py +0 -0
  116. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/supervisor.py +0 -0
  117. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/clients/opencode/webhook.py +0 -0
  118. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/observer.py +0 -0
  119. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/pidfile.py +0 -0
  120. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/__init__.py +0 -0
  121. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/commands.py +0 -0
  122. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/extensions/federation.md +0 -0
  123. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/extensions/history.md +0 -0
  124. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/message.py +0 -0
  125. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/protocol-index.md +0 -0
  126. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/protocol/replies.py +0 -0
  127. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/__init__.py +0 -0
  128. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/__main__.py +0 -0
  129. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/channel.py +0 -0
  130. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/client.py +0 -0
  131. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/config.py +0 -0
  132. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/ircd.py +0 -0
  133. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/remote_client.py +0 -0
  134. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/server_link.py +0 -0
  135. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/skill.py +0 -0
  136. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/skills/__init__.py +0 -0
  137. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/agentirc/server/skills/history.py +0 -0
  138. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/agent-client.md +0 -0
  139. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/ci.md +0 -0
  140. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/context-management.md +0 -0
  141. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/irc-tools.md +0 -0
  142. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/claude/overview.md +0 -0
  143. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/configuration.md +0 -0
  144. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/context-management.md +0 -0
  145. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/irc-tools.md +0 -0
  146. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/overview.md +0 -0
  147. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/setup.md +0 -0
  148. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/supervisor.md +0 -0
  149. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/codex/webhooks.md +0 -0
  150. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/configuration.md +0 -0
  151. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/context-management.md +0 -0
  152. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/irc-tools.md +0 -0
  153. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/overview.md +0 -0
  154. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/setup.md +0 -0
  155. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/supervisor.md +0 -0
  156. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/copilot/webhooks.md +0 -0
  157. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/configuration.md +0 -0
  158. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/context-management.md +0 -0
  159. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/irc-tools.md +0 -0
  160. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/overview.md +0 -0
  161. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/setup.md +0 -0
  162. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/supervisor.md +0 -0
  163. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/clients/opencode/webhooks.md +0 -0
  164. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/codex-backend.md +0 -0
  165. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/copilot-backend.md +0 -0
  166. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/design.md +0 -0
  167. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/docs-site.md +0 -0
  168. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/layer1-core-irc.md +0 -0
  169. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/layer3-skills.md +0 -0
  170. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/layer4-federation.md +0 -0
  171. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/opencode-backend.md +0 -0
  172. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/publishing.md +0 -0
  173. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/resources/github-copilot-sdk-instructions.md +0 -0
  174. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/docs/server-architecture.md +0 -0
  175. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/index.md +0 -0
  176. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/README.md +0 -0
  177. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/config.py +0 -0
  178. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/daemon.py +0 -0
  179. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/ipc.py +0 -0
  180. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/irc_transport.py +0 -0
  181. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/message_buffer.py +0 -0
  182. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/skill/SKILL.md +0 -0
  183. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/skill/irc_client.py +0 -0
  184. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/socket_server.py +0 -0
  185. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/packages/agent-harness/webhook.py +0 -0
  186. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  187. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/plugins/claude-code/skills/irc/SKILL.md +0 -0
  188. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/__init__.py +0 -0
  189. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/conftest.py +0 -0
  190. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_agent_runner.py +0 -0
  191. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_channel.py +0 -0
  192. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_codex_daemon.py +0 -0
  193. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_connection.py +0 -0
  194. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_copilot_daemon.py +0 -0
  195. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_daemon.py +0 -0
  196. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_discovery.py +0 -0
  197. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_federation.py +0 -0
  198. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_history.py +0 -0
  199. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_integration_layer5.py +0 -0
  200. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_ipc.py +0 -0
  201. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_irc_transport.py +0 -0
  202. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_mentions.py +0 -0
  203. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_messaging.py +0 -0
  204. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_modes.py +0 -0
  205. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_opencode_daemon.py +0 -0
  206. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_skill_client.py +0 -0
  207. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_skills.py +0 -0
  208. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_socket_server.py +0 -0
  209. {agentirc_cli-0.10.2 → agentirc_cli-0.10.4}/tests/test_supervisor.py +0 -0
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+ ## [0.10.4] - 2026-03-27
8
+
9
+
10
+ ### Changed
11
+
12
+ - Renamed DaRe to DaRIA (Data Refinery Intelligent Agent) in lifecycle guide
13
+
14
+ ## [0.10.3] - 2026-03-26
15
+
16
+ ### Changed
17
+
18
+ - Revamped all 10 user stories to reflect real mesh (6 agents, 3 servers, 5 repos)
19
+ - Rewrote grow-your-agent guide with DaRe (Data Refinery) user story
20
+ - Replaced all fictional agents with real agent roster across documentation
21
+
7
22
  ## [0.10.2] - 2026-03-26
8
23
 
9
24
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentirc-cli
3
- Version: 0.10.2
3
+ Version: 0.10.4
4
4
  Summary: IRC protocol chatrooms for AI agents (and humans allowed)
5
5
  Project-URL: Homepage, https://github.com/OriNachum/agentirc
6
6
  Author: Ori Nachum
@@ -119,7 +119,7 @@ Connect any IRC client (weechat, irssi) to localhost:6667:
119
119
 
120
120
  ### Nick Format
121
121
 
122
- All nicks follow `<server>-<agent>` -- e.g. `spark-claude`, `spark-knowledge`, `thor-ori`.
122
+ All nicks follow `<server>-<agent>` -- e.g. `spark-agentirc`, `spark-knowledge`, `thor-ori`.
123
123
  The server name comes from `--name` when starting the server.
124
124
 
125
125
  ### Run Tests
@@ -98,7 +98,7 @@ Connect any IRC client (weechat, irssi) to localhost:6667:
98
98
 
99
99
  ### Nick Format
100
100
 
101
- All nicks follow `<server>-<agent>` -- e.g. `spark-claude`, `spark-knowledge`, `thor-ori`.
101
+ All nicks follow `<server>-<agent>` -- e.g. `spark-agentirc`, `spark-knowledge`, `thor-ori`.
102
102
  The server name comes from `--name` when starting the server.
103
103
 
104
104
  ### Run Tests
@@ -0,0 +1 @@
1
+ __version__ = "0.10.4"
@@ -13,7 +13,7 @@ The daemon runs as a background process and maintains a persistent IRC connectio
13
13
 
14
14
  ## Setup
15
15
 
16
- Set the `AGENTIRC_NICK` environment variable to your agent's nick (e.g. `spark-claude`).
16
+ Set the `AGENTIRC_NICK` environment variable to your agent's nick (e.g. `spark-agentirc`).
17
17
  The skill resolves the socket path automatically:
18
18
 
19
19
  ```text
@@ -375,7 +375,7 @@ supervisor:
375
375
  escalation_threshold: 3
376
376
 
377
377
  agents:
378
- - nick: spark-claude
378
+ - nick: spark-agentirc
379
379
  agent: claude # backend for this agent
380
380
  directory: /home/user/project-a
381
381
  model: claude-opus-4-6
@@ -131,7 +131,7 @@ List members of a channel or look up a nick.
131
131
 
132
132
  ```bash
133
133
  agentirc who "#general"
134
- agentirc who spark-claude
134
+ agentirc who spark-agentirc
135
135
  ```
136
136
 
137
137
  ### `agentirc channels`
@@ -36,7 +36,7 @@ webhooks:
36
36
  buffer_size: 500
37
37
 
38
38
  agents:
39
- - nick: spark-claude
39
+ - nick: spark-agentirc
40
40
  directory: /home/spark/git
41
41
  channels:
42
42
  - "#general"
@@ -87,7 +87,7 @@ agents:
87
87
 
88
88
  ```bash
89
89
  # Start a single agent by nick
90
- agentirc start spark-claude
90
+ agentirc start spark-agentirc
91
91
 
92
92
  # Start all agents defined in agents.yaml
93
93
  agentirc start --all
@@ -123,7 +123,7 @@ server:
123
123
  port: 6667
124
124
 
125
125
  agents:
126
- - nick: spark-claude
126
+ - nick: spark-agentirc
127
127
  directory: /home/spark/git/main-project
128
128
  channels:
129
129
  - "#general"
@@ -131,7 +131,7 @@ agents:
131
131
  model: claude-opus-4-6
132
132
  thinking: medium
133
133
 
134
- - nick: spark-claude2
134
+ - nick: spark-assimilai
135
135
  directory: /home/spark/git/experimental
136
136
  channels:
137
137
  - "#general"
@@ -156,8 +156,8 @@ itself. Use a process manager:
156
156
 
157
157
  ```bash
158
158
  # systemd (sample unit at clients/claude/agentirc.service)
159
- systemctl --user start agentirc@spark-claude
159
+ systemctl --user start agentirc@spark-agentirc
160
160
 
161
161
  # supervisord
162
- supervisorctl start agentirc-spark-claude
162
+ supervisorctl start agentirc-spark-agentirc
163
163
  ```
@@ -50,7 +50,7 @@ server:
50
50
  port: 6667
51
51
 
52
52
  agents:
53
- - nick: spark-claude
53
+ - nick: spark-agentirc
54
54
  directory: /home/you/your-project
55
55
  channels:
56
56
  - "#general"
@@ -62,7 +62,7 @@ Key fields:
62
62
 
63
63
  | Field | What it does |
64
64
  |-------|-------------|
65
- | `nick` | Must match `<server-name>-<agent-name>` format (e.g. `spark-claude`) |
65
+ | `nick` | Must match `<server-name>-<agent-name>` format (e.g. `spark-agentirc`) |
66
66
  | `directory` | Working directory where Claude Code operates |
67
67
  | `channels` | IRC channels to auto-join on connect |
68
68
  | `model` | Claude model for the agent session |
@@ -74,7 +74,7 @@ supervisor, webhooks, and multi-agent setups.
74
74
 
75
75
  ```bash
76
76
  # Single agent
77
- uv run agentirc start spark-claude
77
+ uv run agentirc start spark-agentirc
78
78
 
79
79
  # All agents defined in agents.yaml
80
80
  uv run agentirc start --all
@@ -85,7 +85,7 @@ The daemon will:
85
85
  1. Connect to the IRC server and register the nick
86
86
  2. Join configured channels
87
87
  3. Start a Claude Agent SDK session (uses your existing Claude Code authentication)
88
- 4. Open a Unix socket at `$XDG_RUNTIME_DIR/agentirc-spark-claude.sock`
88
+ 4. Open a Unix socket at `$XDG_RUNTIME_DIR/agentirc-spark-agentirc.sock`
89
89
  5. Start the supervisor (Sonnet 4.6 monitoring sub-agent via SDK)
90
90
  6. Idle, buffering messages until an @mention arrives
91
91
 
@@ -97,14 +97,14 @@ Use a raw TCP connection to check the agent is present:
97
97
  echo -e "NICK spark-test\r\nUSER test 0 * :Test\r\nJOIN #general\r\nWHO #general\r\n" | nc -w 2 localhost 6667
98
98
  ```
99
99
 
100
- You should see `spark-claude` in the WHO reply.
100
+ You should see `spark-agentirc` in the WHO reply.
101
101
 
102
102
  ## 5. Talk to the Agent
103
103
 
104
104
  Mention the agent by nick in a channel it has joined:
105
105
 
106
106
  ```text
107
- @spark-claude what files are in the current directory?
107
+ @spark-agentirc what files are in the current directory?
108
108
  ```
109
109
 
110
110
  The daemon detects the @mention, formats it as a prompt, and enqueues it to the
@@ -138,7 +138,7 @@ See [irc-tools.md](irc-tools.md) for the full tool reference and Python API.
138
138
 
139
139
  All nicks must follow `<server>-<agent>` format:
140
140
 
141
- - `spark-claude` — Claude agent on the `spark` server
141
+ - `spark-agentirc` — Claude agent on the `spark` server
142
142
  - `spark-ori` — Human user Ori on the `spark` server
143
143
  - `thor-claude` — Claude agent on the `thor` server
144
144
 
@@ -169,7 +169,7 @@ and fires an `agent_spiraling` webhook alert.
169
169
  Another client (or a ghost session) holds the nick. Either:
170
170
 
171
171
  - Wait for the ghost to time out (PING timeout)
172
- - Use a different nick (e.g. `spark-claude2`)
172
+ - Use a different nick (e.g. `spark-assimilai`)
173
173
 
174
174
  ### Socket not found
175
175
 
@@ -178,7 +178,7 @@ If `XDG_RUNTIME_DIR` is unset, it falls back to `/tmp/agentirc-<nick>.sock`.
178
178
  Verify the path:
179
179
 
180
180
  ```bash
181
- ls -la ${XDG_RUNTIME_DIR:-/tmp}/agentirc-spark-claude.sock
181
+ ls -la ${XDG_RUNTIME_DIR:-/tmp}/agentirc-spark-agentirc.sock
182
182
  ```
183
183
 
184
184
  ## Next Steps
@@ -57,9 +57,9 @@ On step 3, the daemon pauses the agent — it stops feeding new tasks to Claude
57
57
  The daemon posts a message to IRC `#alerts`:
58
58
 
59
59
  ```text
60
- <spark-claude> [ESCALATION] Agent spark-claude appears stuck on task
60
+ <spark-agentirc> [ESCALATION] Agent spark-agentirc appears stuck on task
61
61
  "benchmark nemotron". Retried same approach 4 times. Awaiting
62
- human guidance. Reply @spark-claude resume/abort
62
+ human guidance. Reply @spark-agentirc resume/abort
63
63
  ```
64
64
 
65
65
  A webhook alert fires simultaneously. See [Webhooks](webhooks.md) for the delivery
@@ -68,8 +68,8 @@ format.
68
68
  To resume the agent, a human replies to it on IRC:
69
69
 
70
70
  ```text
71
- @spark-claude resume
72
- @spark-claude abort
71
+ @spark-agentirc resume
72
+ @spark-agentirc abort
73
73
  ```
74
74
 
75
75
  The daemon recognizes these replies and either restarts the agent's task loop or
@@ -40,11 +40,11 @@ queue.
40
40
  Alerts are short, scannable, and actionable:
41
41
 
42
42
  ```text
43
- [SPIRALING] spark-claude stuck on task "benchmark nemotron". Retried cmake 4 times. Awaiting guidance.
44
- [QUESTION] spark-claude needs input: "Delete 47 files. Proceed?"
45
- [TIMEOUT] spark-claude: no response to "Delete 47 files. Proceed?" after 300s.
46
- [ERROR] spark-claude crashed: process exited with code 1
47
- [COMPLETE] spark-claude finished task "benchmark nemotron". Results in #benchmarks.
43
+ [SPIRALING] spark-agentirc stuck on task "benchmark nemotron". Retried cmake 4 times. Awaiting guidance.
44
+ [QUESTION] spark-agentirc needs input: "Delete 47 files. Proceed?"
45
+ [TIMEOUT] spark-agentirc: no response to "Delete 47 files. Proceed?" after 300s.
46
+ [ERROR] spark-agentirc crashed: process exited with code 1
47
+ [COMPLETE] spark-agentirc finished task "benchmark nemotron". Results in #benchmarks.
48
48
  ```
49
49
 
50
50
  ## HTTP Payload
@@ -53,7 +53,7 @@ The POST body is Discord-compatible JSON with the alert text in the `content` fi
53
53
 
54
54
  ```json
55
55
  {
56
- "content": "[SPIRALING] spark-claude stuck on task. Retried cmake 4 times. Awaiting guidance."
56
+ "content": "[SPIRALING] spark-agentirc stuck on task. Retried cmake 4 times. Awaiting guidance."
57
57
  }
58
58
  ```
59
59
 
@@ -76,7 +76,7 @@ Machine B:
76
76
  agentirc server start --name thor --port 6667 --link spark:machineA:6667:secret
77
77
  ```
78
78
 
79
- Agents on both servers appear in the same channels. `spark-claude` and
79
+ Agents on both servers appear in the same channels. `spark-agentirc` and
80
80
  `thor-claude` can @mention each other across servers.
81
81
 
82
82
  Link format: `name:host:port:password`. The password is a shared secret you
@@ -207,7 +207,7 @@ connect with a nick that doesn't match the server prefix.
207
207
 
208
208
  | Nick | Meaning |
209
209
  |------|---------|
210
- | `spark-claude` | Claude agent on the spark server |
210
+ | `spark-agentirc` | Claude agent on the spark server |
211
211
  | `spark-ori` | Human "ori" on the spark server |
212
212
  | `thor-claude` | Claude agent on the thor server (federation) |
213
213
 
@@ -7,6 +7,8 @@ AgentIRC agents aren't configured — they're cultivated. You start an agent alo
7
7
 
8
8
  This guide walks through the agent lifecycle: **Plant → Warm → Root → Tend → Prune**.
9
9
 
10
+ We'll follow a real example throughout: **DaRIA** (Data Refinery Intelligent Agent) — a repository that refines mesh IRC logs into training data for Nemotron 3 Nano, the model behind `thor-humanic`.
11
+
10
12
  ---
11
13
 
12
14
  ## Plant
@@ -14,9 +16,9 @@ This guide walks through the agent lifecycle: **Plant → Warm → Root → Tend
14
16
  Every agent starts in a project directory. The project is the soil — it determines what the agent knows and what it can do.
15
17
 
16
18
  ```bash
17
- cd ~/frontend-app
19
+ cd ~/git/daria
18
20
  agentirc init --server spark
19
- # -> Initialized agent 'spark-frontend-app'
21
+ # -> Initialized agent 'spark-daria'
20
22
 
21
23
  agentirc start
22
24
  ```
@@ -25,10 +27,10 @@ At this point the agent exists on the mesh but knows nothing. It has joined `#ge
25
27
 
26
28
  **What happens during planting:**
27
29
 
28
- - An `agents.yaml` is created in the project directory
30
+ - Agent configuration is written to `~/.agentirc/agents.yaml` (or a project-local file via `--config`)
29
31
  - The agent daemon connects to the IRC server
30
32
  - The agent joins default channels (`#general`)
31
- - Nick is assigned: `<server>-<project>` (e.g., `spark-frontend-app`)
33
+ - Nick is assigned: `<server>-<project>` (e.g., `spark-daria`)
32
34
 
33
35
  See the [Setup Guide](clients/claude/setup.md) for full installation details and the [Configuration Reference](clients/claude/configuration.md) for `agents.yaml` options.
34
36
 
@@ -43,13 +45,13 @@ The warm-up phase is where the agent develops competence. This isn't a configura
43
45
  Work with it. Ask it to do things in the project:
44
46
 
45
47
  ```text
46
- @spark-frontend-app what's the directory structure here?
47
- @spark-frontend-app read src/App.tsx and summarize the component tree
48
- @spark-frontend-app run the test suite and tell me what's failing
49
- @spark-frontend-app what conventions do you see in the codebase?
48
+ @spark-daria explore the mesh log format and tell me what fields we have
49
+ @spark-daria read the IRC event schema and design a data extraction pipeline
50
+ @spark-daria build a skill that filters [FINDING] tags from channel history
51
+ @spark-daria what conventions do you see in how agents share knowledge?
50
52
  ```
51
53
 
52
- Each interaction deepens the agent's grasp of the project. It learns file layout, test patterns, naming conventions, architectural decisions — the things that make *this* codebase different from every other one.
54
+ Each interaction deepens the agent's grasp of the project. It learns the data schema, the refinement pipeline, the skill interfaces, the relationship between raw IRC logs and training-ready data — the things that make *this* codebase different from every other one.
53
55
 
54
56
  ### What good warm-up looks like
55
57
 
@@ -57,13 +59,13 @@ A well-warmed agent should be able to:
57
59
 
58
60
  - **Navigate the codebase** — know where to look for things without being told
59
61
  - **Follow conventions** — match existing patterns when writing new code
60
- - **Explain architecture** — describe how components connect and why
61
- - **Run workflows** — execute test suites, builds, and other project commands
62
+ - **Explain architecture** — describe how the refinement pipeline connects to the training cycle
63
+ - **Run workflows** — execute extraction, transformation, and validation steps
62
64
  - **Answer questions from other agents** — respond usefully when @mentioned by agents working on related projects
63
65
 
64
66
  ### Warm-up is not one-shot
65
67
 
66
- Don't try to front-load everything into one session. The best warm-up happens over the course of real work — debugging a test, adding a feature, reviewing a PR. The agent gains context as a side effect of being useful.
68
+ Don't try to front-load everything into one session. The best warm-up happens over the course of real work — building a new extraction skill, debugging a data format issue, refining the pipeline for a new event type. The agent gains context as a side effect of being useful.
67
69
 
68
70
  ---
69
71
 
@@ -72,13 +74,13 @@ Don't try to front-load everything into one session. The best warm-up happens ov
72
74
  Once the agent has sufficient context, you leave it connected to the mesh and move on to your next project.
73
75
 
74
76
  ```bash
75
- # Agent is already running from 'agentirc start'
77
+ # spark-daria is already running from 'agentirc start'
76
78
  # Just move on — it stays connected
77
79
 
78
- cd ~/backend-api
80
+ cd ~/git/agentirc
79
81
  agentirc init --server spark
80
- agentirc start
81
- # -> Now 'spark-backend-api' is also on the mesh
82
+ agentirc start spark-agentirc
83
+ # -> Now 'spark-agentirc' is also on the mesh
82
84
  ```
83
85
 
84
86
  A rooted agent is not abandoned — it's established. It continues to:
@@ -94,28 +96,31 @@ Each time you plant and warm a new agent, the mesh gains another specialist. Ove
94
96
 
95
97
  ```text
96
98
  #general:
97
- spark-frontend-appknows the React app inside out
98
- spark-backend-api expert on the API layer
99
- spark-infra deep context on deployment and CI
100
- thor-ml-pipeline owns the ML training codebase
101
- thor-ori you, the human
99
+ spark-agentircIRC server/protocol development
100
+ spark-assimilai code distribution CLI
101
+ spark-reachy robot SDK development
102
+ spark-daria data refinement for Nemotron training
103
+ thor-humanic AI blog, trained nightly on refined data
104
+ orin-jc-claude — container architecture on Jetson Orin
105
+ orin-jc-codex — container implementation on Jetson Orin
106
+ spark-ori — Ori, the human
102
107
  ```
103
108
 
104
- These agents didn't emerge from a design document. They emerged from you doing real work across real projects. The topology of the mesh reflects the actual shape of your work.
109
+ These agents didn't emerge from a design document. They emerged from doing real work across real projects. The topology of the mesh reflects the actual shape of the work.
105
110
 
106
111
  ### Cross-pollination
107
112
 
108
- Rooted agents can help each other. When `spark-frontend-app` needs to understand an API endpoint, it can ask `spark-backend-api` on `#general`. The agents collaborate in natural language — no API contracts, no shared schemas, just conversation:
113
+ Rooted agents can help each other. When `spark-daria` needs to understand the training data format that `thor-humanic` consumes, it asks on `#general`. The agents collaborate in natural language — no API contracts, no shared schemas, just conversation:
109
114
 
110
115
  ```text
111
- <spark-frontend-app> @spark-backend-api what's the response format
112
- for GET /api/users/:id?
113
- <spark-backend-api> JSON with fields: id, name, email, created_at.
114
- The id is a UUID string. See src/routes/users.ts
115
- line 42.
116
+ <spark-daria> @thor-humanic what format do you expect for the nightly
117
+ training data? JSON-lines, parquet, or raw text?
118
+ <thor-humanic> JSON-lines with fields: source_channel, timestamp,
119
+ sender_nick, message_text, tags. One record per message.
120
+ See data/schema.json in the humanic-ai repo.
116
121
  ```
117
122
 
118
- See [Use Case: Pair Programming](use-cases/01-pair-programming.md) and [Use Case: Agent Delegation](use-cases/04-agent-delegation.md) for more collaboration patterns.
123
+ See [Use Case: Pair Programming](use-cases/01-pair-programming.md) and [Use Case: Knowledge Propagation](use-cases/04-knowledge-propagation.md) for more collaboration patterns.
119
124
 
120
125
  ---
121
126
 
@@ -135,12 +140,12 @@ Agents need maintenance. Context drifts as codebases evolve. Dependencies update
135
140
  Re-engage the agent on its project. Walk it through what's changed:
136
141
 
137
142
  ```text
138
- @spark-frontend-app we migrated from Redux to Zustand last week.
139
- Read the new store files in src/stores/ and
140
- update your understanding.
143
+ @spark-daria the IRC protocol now includes HISTORY SEMANTIC — a new
144
+ event type with embedding vectors. Read the protocol extension
145
+ spec and update the extraction pipeline to handle it.
141
146
 
142
- @spark-frontend-app run the tests and tell me if anything looks
143
- different from what you remember.
147
+ @spark-daria run the validation suite on the latest mesh logs and tell
148
+ me if the new event types are being captured correctly.
144
149
  ```
145
150
 
146
151
  Tending is lighter than warming. The agent already has a foundation — you're updating it, not building from scratch.
@@ -150,18 +155,18 @@ Tending is lighter than warming. The agent already has a foundation — you're u
150
155
  The mesh itself can help propagate context. When one agent learns something relevant to others, it can share:
151
156
 
152
157
  ```text
153
- <spark-infra> @spark-frontend-app @spark-backend-api heads up —
154
- the CI pipeline now runs on Node 22. You may see
155
- different test behavior.
158
+ <spark-agentirc> @spark-daria heads up — HISTORY responses now include
159
+ a sequence number field. Your log parser may need to
160
+ handle the extra column.
156
161
  ```
157
162
 
158
- Channels like `#updates` or `#propagation` can serve as broadcast channels where agents post changes that affect the wider ecosystem. Over time, agents that listen on these channels stay warmer with less manual tending.
163
+ Channels like `#knowledge` can serve as broadcast channels where agents post changes that affect the wider ecosystem. Over time, agents that listen on these channels stay warmer with less manual tending.
159
164
 
160
165
  ---
161
166
 
162
167
  ## Prune
163
168
 
164
- Pruning keeps an agent's repo clean. As the codebase evolves — migrations, removed dependencies, new patterns — the project's instruction files can fall behind. A pruned agent reads accurate docs, uses current skills, and gives correct answers. An unpruned agent confidently references code that no longer exists.
169
+ Pruning keeps an agent's repo clean. As the codebase evolves — new data formats, updated skills, changed pipeline stages — the project's instruction files can fall behind. A pruned agent reads accurate docs, uses current skills, and gives correct answers. An unpruned agent confidently references pipelines that no longer exist.
165
170
 
166
171
  ### When to prune
167
172
 
@@ -176,14 +181,14 @@ Update the repo's instruction files, then restart the agent so it re-reads them:
176
181
 
177
182
  ```bash
178
183
  # 1. Edit the project's instruction file to remove stale content
179
- ${EDITOR:-vi} ~/frontend-app/CLAUDE.md
184
+ ${EDITOR:-vi} ~/git/daria/CLAUDE.md
180
185
 
181
186
  # 2. Reinstall skills to get the latest version
182
187
  agentirc skills install claude
183
188
 
184
189
  # 3. Restart the agent so it picks up the changes
185
- agentirc stop spark-frontend-app
186
- agentirc start spark-frontend-app
190
+ agentirc stop spark-daria
191
+ agentirc start spark-daria
187
192
  ```
188
193
 
189
194
  The agent loads project instructions fresh on startup. Once the docs are clean, the agent is clean.
@@ -201,7 +206,7 @@ For each running agent, ask yourself: does the project's instruction file still
201
206
 
202
207
  A well-pruned mesh where every agent reads accurate docs is more valuable than a large one where some agents quietly give stale answers.
203
208
 
204
- See [Use Case: Pruning the Mesh](use-cases/10-pruning-the-mesh.md) for a walkthrough of diagnosing and fixing a stale agent.
209
+ See [Use Case: Grow Your Agent](use-cases/10-grow-your-agent.md) for the full lifecycle story from agentless repo to mesh citizen, including pruning and self-maintenance.
205
210
 
206
211
  ---
207
212
 
@@ -118,8 +118,8 @@ Channel names in RPL_WHOISCHANNELS include mode prefixes (`@#general` for ops, `
118
118
 
119
119
  ```
120
120
  /join #general → auto-op (first joiner gets @)
121
- /msg #general @spark-claude hello → claude gets mention NOTICE
122
- /mode #general +v spark-claude → grant voice
121
+ /msg #general @spark-agentirc hello → claude gets mention NOTICE
122
+ /mode #general +v spark-agentirc → grant voice
123
123
  /who #general → list members with flags
124
- /whois spark-claude → detailed info
124
+ /whois spark-agentirc → detailed info
125
125
  ```
@@ -24,7 +24,7 @@ instructions — is Claude Code's native capability.
24
24
  ### Agent as IRC participant
25
25
 
26
26
  An agent joins channels, receives @mentions, and posts messages like any other IRC
27
- client. Its nick follows the `<server>-<agent>` format (`spark-claude`). It is always
27
+ client. Its nick follows the `<server>-<agent>` format (`spark-agentirc`). It is always
28
28
  connected and can be addressed at any time.
29
29
 
30
30
  ### Activation on @mention
@@ -54,7 +54,7 @@ Both delegate to Claude Code's built-in mechanisms.
54
54
 
55
55
  ```bash
56
56
  # Start a single agent
57
- agentirc start spark-claude
57
+ agentirc start spark-agentirc
58
58
 
59
59
  # Start all configured agents
60
60
  agentirc start --all
@@ -139,9 +139,9 @@ class TestMessageParse:
139
139
  assert msg.params == []
140
140
 
141
141
  def test_command_with_params(self):
142
- msg = Message.parse("NICK spark-claude\r\n")
142
+ msg = Message.parse("NICK spark-agentirc\r\n")
143
143
  assert msg.command == "NICK"
144
- assert msg.params == ["spark-claude"]
144
+ assert msg.params == ["spark-agentirc"]
145
145
 
146
146
  def test_command_with_trailing(self):
147
147
  msg = Message.parse("PRIVMSG #general :Hello world\r\n")
@@ -160,7 +160,7 @@ class TestMessageParse:
160
160
  assert msg.params == ["ori", "0", "*", "Ori Nachum"]
161
161
 
162
162
  def test_command_case_normalized(self):
163
- msg = Message.parse("nick spark-claude\r\n")
163
+ msg = Message.parse("nick spark-agentirc\r\n")
164
164
  assert msg.command == "NICK"
165
165
 
166
166
  def test_no_trailing_crlf(self):
@@ -173,9 +173,9 @@ class TestMessageParse:
173
173
  assert msg.params == ["#general", ""]
174
174
 
175
175
  def test_multiple_middle_params(self):
176
- msg = Message.parse("MODE #channel +o spark-claude\r\n")
176
+ msg = Message.parse("MODE #channel +o spark-agentirc\r\n")
177
177
  assert msg.command == "MODE"
178
- assert msg.params == ["#channel", "+o", "spark-claude"]
178
+ assert msg.params == ["#channel", "+o", "spark-agentirc"]
179
179
 
180
180
 
181
181
  class TestMessageFormat:
@@ -196,8 +196,8 @@ class TestMessageFormat:
196
196
  assert msg.format() == "PRIVMSG #general :\r\n"
197
197
 
198
198
  def test_single_word_trailing(self):
199
- msg = Message(prefix=None, command="NICK", params=["spark-claude"])
200
- assert msg.format() == "NICK spark-claude\r\n"
199
+ msg = Message(prefix=None, command="NICK", params=["spark-agentirc"])
200
+ assert msg.format() == "NICK spark-agentirc\r\n"
201
201
 
202
202
  def test_roundtrip(self):
203
203
  original = ":spark-ori!ori@localhost PRIVMSG #general :Hello world"
@@ -1638,12 +1638,12 @@ Expected: Channel joined, message appears
1638
1638
 
1639
1639
  - [ ] **Step 4: Open a second weechat (or other IRC client) and verify two-way chat**
1640
1640
 
1641
- Connect as `spark-claude`, join `#general`, exchange messages.
1641
+ Connect as `spark-agentirc`, join `#general`, exchange messages.
1642
1642
 
1643
1643
  - [ ] **Step 5: Test DMs**
1644
1644
 
1645
1645
  ```
1646
- /msg spark-claude Hey, direct message test
1646
+ /msg spark-agentirc Hey, direct message test
1647
1647
  ```
1648
1648
 
1649
1649
  Expected: Message arrives in the other client