aiwg 2026.5.7 → 2026.5.8

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 (200) hide show
  1. package/README.md +6 -6
  2. package/agentic/code/addons/aiwg-fleet/behaviors/quiet-bot/BEHAVIOR.md +62 -0
  3. package/agentic/code/addons/aiwg-fleet/behaviors/quiet-business-bot/BEHAVIOR.md +76 -0
  4. package/agentic/code/addons/aiwg-fleet/docs/provider-activation.md +48 -0
  5. package/agentic/code/addons/aiwg-fleet/manifest.json +42 -0
  6. package/agentic/code/addons/aiwg-utils/docs/overview.md +24 -3
  7. package/agentic/code/addons/aiwg-utils/docs/rules-reference.md +106 -3
  8. package/agentic/code/addons/aiwg-utils/manifest.json +4 -0
  9. package/agentic/code/addons/aiwg-utils/rules/RULES-INDEX.md +25 -2
  10. package/agentic/code/addons/aiwg-utils/rules/context-budget.md +13 -0
  11. package/agentic/code/addons/aiwg-utils/rules/escalation-discipline.md +197 -0
  12. package/agentic/code/addons/aiwg-utils/rules/quiet-mode.md +121 -0
  13. package/agentic/code/addons/aiwg-utils/rules/respect-repo-access-manifest.md +56 -0
  14. package/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md +38 -0
  15. package/agentic/code/addons/aiwg-utils/rules/tool-quota.md +189 -0
  16. package/agentic/code/addons/aiwg-utils/skills/aiwg-status/SKILL.md +14 -6
  17. package/agentic/code/addons/aiwg-utils/skills/aiwg-utils-quickref/SKILL.md +15 -3
  18. package/agentic/code/addons/rlm/rules/rlm-context-management.md +12 -0
  19. package/agentic/code/addons/rlm/skills/rlm-batch/SKILL.md +11 -3
  20. package/agentic/code/frameworks/media-marketing-kit/config/models.json +19 -7
  21. package/agentic/code/frameworks/research-complete/skills/corpus-index-build/SKILL.md +29 -4
  22. package/agentic/code/frameworks/research-complete/skills/corpus-index-build/build.py +700 -0
  23. package/agentic/code/frameworks/sdlc-complete/commands/issue-audit.md +62 -0
  24. package/agentic/code/frameworks/sdlc-complete/commands/manifest.json +1 -0
  25. package/agentic/code/frameworks/sdlc-complete/config/models-v2.json +4 -1
  26. package/agentic/code/frameworks/sdlc-complete/config/models.json +19 -7
  27. package/agentic/code/frameworks/sdlc-complete/skills/issue-audit/SKILL.md +218 -0
  28. package/agentic/code/frameworks/sdlc-complete/skills/manifest.json +5 -0
  29. package/agentic/code/providers/capability-matrix.yaml +78 -8
  30. package/bin/aiwg.mjs +44 -3
  31. package/dist/src/a2a/agent-card.d.ts.map +1 -1
  32. package/dist/src/a2a/agent-card.js +26 -7
  33. package/dist/src/a2a/agent-card.js.map +1 -1
  34. package/dist/src/a2a/client.d.ts.map +1 -1
  35. package/dist/src/a2a/client.js +57 -19
  36. package/dist/src/a2a/client.js.map +1 -1
  37. package/dist/src/a2a/types.d.ts.map +1 -1
  38. package/dist/src/a2a/types.js +1 -0
  39. package/dist/src/a2a/types.js.map +1 -1
  40. package/dist/src/artifacts/cli.d.ts.map +1 -1
  41. package/dist/src/artifacts/cli.js +28 -0
  42. package/dist/src/artifacts/cli.js.map +1 -1
  43. package/dist/src/artifacts/index-builder.d.ts.map +1 -1
  44. package/dist/src/artifacts/index-builder.js +15 -4
  45. package/dist/src/artifacts/index-builder.js.map +1 -1
  46. package/dist/src/artifacts/query-engine.d.ts.map +1 -1
  47. package/dist/src/artifacts/query-engine.js +61 -2
  48. package/dist/src/artifacts/query-engine.js.map +1 -1
  49. package/dist/src/cli/handlers/agentcard.d.ts +3 -2
  50. package/dist/src/cli/handlers/agentcard.d.ts.map +1 -1
  51. package/dist/src/cli/handlers/agentcard.js +3 -2
  52. package/dist/src/cli/handlers/agentcard.js.map +1 -1
  53. package/dist/src/cli/handlers/execution-mode.d.ts +8 -0
  54. package/dist/src/cli/handlers/execution-mode.d.ts.map +1 -0
  55. package/dist/src/cli/handlers/execution-mode.js +100 -0
  56. package/dist/src/cli/handlers/execution-mode.js.map +1 -0
  57. package/dist/src/cli/handlers/index.d.ts +4 -2
  58. package/dist/src/cli/handlers/index.d.ts.map +1 -1
  59. package/dist/src/cli/handlers/index.js +9 -2
  60. package/dist/src/cli/handlers/index.js.map +1 -1
  61. package/dist/src/cli/handlers/init.d.ts.map +1 -1
  62. package/dist/src/cli/handlers/init.js +4 -0
  63. package/dist/src/cli/handlers/init.js.map +1 -1
  64. package/dist/src/cli/handlers/mc.d.ts.map +1 -1
  65. package/dist/src/cli/handlers/mc.js +41 -83
  66. package/dist/src/cli/handlers/mc.js.map +1 -1
  67. package/dist/src/cli/handlers/ralph-launcher.d.ts +12 -0
  68. package/dist/src/cli/handlers/ralph-launcher.d.ts.map +1 -1
  69. package/dist/src/cli/handlers/ralph-launcher.js +40 -0
  70. package/dist/src/cli/handlers/ralph-launcher.js.map +1 -1
  71. package/dist/src/cli/handlers/refresh.d.ts.map +1 -1
  72. package/dist/src/cli/handlers/refresh.js +24 -1
  73. package/dist/src/cli/handlers/refresh.js.map +1 -1
  74. package/dist/src/cli/handlers/regenerate.d.ts.map +1 -1
  75. package/dist/src/cli/handlers/regenerate.js +7 -1
  76. package/dist/src/cli/handlers/regenerate.js.map +1 -1
  77. package/dist/src/cli/handlers/repo-access.d.ts +4 -0
  78. package/dist/src/cli/handlers/repo-access.d.ts.map +1 -0
  79. package/dist/src/cli/handlers/repo-access.js +88 -0
  80. package/dist/src/cli/handlers/repo-access.js.map +1 -0
  81. package/dist/src/cli/handlers/serve.d.ts.map +1 -1
  82. package/dist/src/cli/handlers/serve.js +14 -0
  83. package/dist/src/cli/handlers/serve.js.map +1 -1
  84. package/dist/src/cli/handlers/skill-lint.d.ts +12 -0
  85. package/dist/src/cli/handlers/skill-lint.d.ts.map +1 -1
  86. package/dist/src/cli/handlers/skill-lint.js +42 -0
  87. package/dist/src/cli/handlers/skill-lint.js.map +1 -1
  88. package/dist/src/cli/handlers/steward.d.ts.map +1 -1
  89. package/dist/src/cli/handlers/steward.js +32 -7
  90. package/dist/src/cli/handlers/steward.js.map +1 -1
  91. package/dist/src/cli/handlers/use.d.ts.map +1 -1
  92. package/dist/src/cli/handlers/use.js +4 -1
  93. package/dist/src/cli/handlers/use.js.map +1 -1
  94. package/dist/src/config/aiwg-config.d.ts +76 -0
  95. package/dist/src/config/aiwg-config.d.ts.map +1 -1
  96. package/dist/src/config/aiwg-config.js +72 -0
  97. package/dist/src/config/aiwg-config.js.map +1 -1
  98. package/dist/src/config/cli.js +89 -1
  99. package/dist/src/config/cli.js.map +1 -1
  100. package/dist/src/extensions/commands/definitions.d.ts +1 -0
  101. package/dist/src/extensions/commands/definitions.d.ts.map +1 -1
  102. package/dist/src/extensions/commands/definitions.js +40 -2
  103. package/dist/src/extensions/commands/definitions.js.map +1 -1
  104. package/dist/src/extensions/managed-marker.d.ts +12 -0
  105. package/dist/src/extensions/managed-marker.d.ts.map +1 -1
  106. package/dist/src/extensions/managed-marker.js +16 -0
  107. package/dist/src/extensions/managed-marker.js.map +1 -1
  108. package/dist/src/extensions/project-local-doctor.d.ts.map +1 -1
  109. package/dist/src/extensions/project-local-doctor.js +8 -7
  110. package/dist/src/extensions/project-local-doctor.js.map +1 -1
  111. package/dist/src/features/catalog.d.ts +2 -2
  112. package/dist/src/features/catalog.js +2 -2
  113. package/dist/src/models/index.d.ts +2 -1
  114. package/dist/src/models/index.d.ts.map +1 -1
  115. package/dist/src/models/index.js +2 -0
  116. package/dist/src/models/index.js.map +1 -1
  117. package/dist/src/models/router.d.ts +13 -0
  118. package/dist/src/models/router.d.ts.map +1 -0
  119. package/dist/src/models/router.js +70 -0
  120. package/dist/src/models/router.js.map +1 -0
  121. package/dist/src/models/types.d.ts +35 -0
  122. package/dist/src/models/types.d.ts.map +1 -1
  123. package/dist/src/policy/repo-access.d.ts +29 -0
  124. package/dist/src/policy/repo-access.d.ts.map +1 -0
  125. package/dist/src/policy/repo-access.js +145 -0
  126. package/dist/src/policy/repo-access.js.map +1 -0
  127. package/dist/src/providers/capability-matrix.d.ts +41 -1
  128. package/dist/src/providers/capability-matrix.d.ts.map +1 -1
  129. package/dist/src/providers/capability-matrix.js +88 -0
  130. package/dist/src/providers/capability-matrix.js.map +1 -1
  131. package/dist/src/rlm/cli.d.ts +21 -0
  132. package/dist/src/rlm/cli.d.ts.map +1 -1
  133. package/dist/src/rlm/cli.js +73 -4
  134. package/dist/src/rlm/cli.js.map +1 -1
  135. package/dist/src/serve/a2a-terminal-observer.d.ts +21 -0
  136. package/dist/src/serve/a2a-terminal-observer.d.ts.map +1 -0
  137. package/dist/src/serve/a2a-terminal-observer.js +120 -0
  138. package/dist/src/serve/a2a-terminal-observer.js.map +1 -0
  139. package/dist/src/serve/agent-router.d.ts.map +1 -1
  140. package/dist/src/serve/agent-router.js +9 -0
  141. package/dist/src/serve/agent-router.js.map +1 -1
  142. package/dist/src/serve/dispatch-router.d.ts +5 -1
  143. package/dist/src/serve/dispatch-router.d.ts.map +1 -1
  144. package/dist/src/serve/dispatch-router.js +13 -2
  145. package/dist/src/serve/dispatch-router.js.map +1 -1
  146. package/dist/src/serve/executor-registry.d.ts +4 -0
  147. package/dist/src/serve/executor-registry.d.ts.map +1 -1
  148. package/dist/src/serve/executor-registry.js +12 -1
  149. package/dist/src/serve/executor-registry.js.map +1 -1
  150. package/dist/src/serve/pty-bridge.d.ts.map +1 -1
  151. package/dist/src/serve/pty-bridge.js +7 -1
  152. package/dist/src/serve/pty-bridge.js.map +1 -1
  153. package/dist/src/skills/adapters/openclaw.d.ts.map +1 -1
  154. package/dist/src/skills/adapters/openclaw.js +53 -16
  155. package/dist/src/skills/adapters/openclaw.js.map +1 -1
  156. package/dist/src/skills/run.d.ts.map +1 -1
  157. package/dist/src/skills/run.js +2 -1
  158. package/dist/src/skills/run.js.map +1 -1
  159. package/dist/src/smiths/context-pipeline/aiwg-md.d.ts.map +1 -1
  160. package/dist/src/smiths/context-pipeline/aiwg-md.js +19 -10
  161. package/dist/src/smiths/context-pipeline/aiwg-md.js.map +1 -1
  162. package/dist/src/smiths/context-pipeline/finalization.d.ts +14 -0
  163. package/dist/src/smiths/context-pipeline/finalization.d.ts.map +1 -0
  164. package/dist/src/smiths/context-pipeline/finalization.js +103 -0
  165. package/dist/src/smiths/context-pipeline/finalization.js.map +1 -0
  166. package/dist/src/smiths/context-pipeline/generator.d.ts +2 -2
  167. package/dist/src/smiths/context-pipeline/generator.d.ts.map +1 -1
  168. package/dist/src/smiths/context-pipeline/generator.js +17 -2
  169. package/dist/src/smiths/context-pipeline/generator.js.map +1 -1
  170. package/dist/src/smiths/context-pipeline/index.d.ts +1 -0
  171. package/dist/src/smiths/context-pipeline/index.d.ts.map +1 -1
  172. package/dist/src/smiths/context-pipeline/index.js +1 -0
  173. package/dist/src/smiths/context-pipeline/index.js.map +1 -1
  174. package/dist/src/smiths/context-pipeline/parallelism-section.d.ts +35 -0
  175. package/dist/src/smiths/context-pipeline/parallelism-section.d.ts.map +1 -0
  176. package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
  177. package/dist/src/smiths/context-pipeline/parallelism-section.js.map +1 -0
  178. package/dist/src/smiths/context-pipeline/provider-policy.d.ts +2 -2
  179. package/dist/src/smiths/context-pipeline/provider-policy.d.ts.map +1 -1
  180. package/dist/src/smiths/context-pipeline/provider-policy.js +2 -1
  181. package/dist/src/smiths/context-pipeline/provider-policy.js.map +1 -1
  182. package/dist/src/smiths/context-pipeline/types.d.ts +2 -0
  183. package/dist/src/smiths/context-pipeline/types.d.ts.map +1 -1
  184. package/dist/src/smiths/context-pipeline/types.js.map +1 -1
  185. package/package.json +15 -4
  186. package/tools/_resolve-impl.mjs +74 -0
  187. package/tools/agents/deploy-agents.mjs +14 -1
  188. package/tools/agents/providers/base.mjs +143 -0
  189. package/tools/agents/providers/openclaw.mjs +26 -2
  190. package/tools/cli/doctor.mjs +62 -9
  191. package/tools/cli/update.mjs +4 -4
  192. package/tools/cli/validate-writing.mjs +3 -17
  193. package/tools/cli/version.mjs +3 -3
  194. package/tools/cli/workspace-status.mjs +439 -114
  195. package/tools/daemon/web-server.mjs +13 -0
  196. package/tools/plugin/plugin-installer-cli.mjs +2 -18
  197. package/tools/plugin/plugin-status-cli.mjs +2 -18
  198. package/tools/plugin/plugin-uninstaller-cli.mjs +2 -18
  199. package/tools/scripts/record-sandbox-api.mjs +164 -0
  200. package/tools/writing/writing-validator.mjs +6 -21
package/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # AIWG
4
4
 
5
- **Multi-agent AI framework for Claude Code, Copilot, Cursor, Warp, and 4 more platforms**
5
+ **Multi-agent AI framework for Claude Code, Copilot, Cursor, Warp, and 6 more platforms**
6
6
 
7
- 200+ agents, 67+ CLI commands, 130+ skills, 8 core frameworks + training marketplace plugin, 27 addons. SDLC workflows, digital forensics, research management, marketing operations, media curation, ops infrastructure, knowledge base, and fine-tuning dataset curation — all deployable with one command.
7
+ 200+ agents, 67+ CLI commands, 400+ deployable agent/skill/command/rule artifacts, 8 core frameworks + training marketplace plugin, 27 addons. SDLC workflows, digital forensics, research management, marketing operations, media curation, ops infrastructure, knowledge base, and fine-tuning dataset curation — all deployable with one command.
8
8
 
9
9
  ```bash
10
10
  npm i -g aiwg # install globally
@@ -15,11 +15,11 @@ aiwg use sdlc # deploy SDLC framework
15
15
  [![npm downloads](https://img.shields.io/npm/dm/aiwg?color=CB3837&logo=npm&style=flat-square)](https://www.npmjs.com/package/aiwg)
16
16
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE)
17
17
  [![GitHub Stars](https://img.shields.io/github/stars/jmagly/aiwg?style=flat-square)](https://github.com/jmagly/aiwg/stargazers)
18
- [![Node Version](https://img.shields.io/badge/node-%E2%89%A518.0.0-brightgreen?style=flat-square&logo=node.js)](https://nodejs.org)
18
+ [![Node Version](https://img.shields.io/badge/node-%E2%89%A520.0.0-brightgreen?style=flat-square&logo=node.js)](https://nodejs.org)
19
19
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org)
20
- [![8 Platforms](https://img.shields.io/badge/Platforms-8-purple?style=flat-square)](#-platform-support)
20
+ [![10 Platforms](https://img.shields.io/badge/Platforms-10-purple?style=flat-square)](#-platform-support)
21
21
 
22
- [**Get Started**](#quick-start) · [**Features**](#what-you-get) · [**Agents**](#agents-162) · [**CLI Reference**](#cli-reference-47-commands) · [**Documentation**](#documentation) · [**Community**](#community--support)
22
+ [**Get Started**](#quick-start) · [**Features**](#what-you-get) · [**Agents**](#agents) · [**CLI Reference**](docs/cli-reference.md) · [**Documentation**](#documentation) · [**Community**](#community--support)
23
23
 
24
24
  [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=flat-square)](https://discord.gg/BuAusFMxdA)
25
25
  [![Telegram](https://img.shields.io/badge/Telegram-Join-26A5E4?logo=telegram&logoColor=white&style=flat-square)](https://t.me/+oJg9w2lE6A5lOGFh)
@@ -1712,7 +1712,7 @@ Full research background, citations, and methodology: [docs/research/](docs/rese
1712
1712
 
1713
1713
  - **[Quick Start Guide](docs/quickstart.md)** — Install and deploy in minutes
1714
1714
  - **[Prerequisites](docs/getting-started/prerequisites.md)** — Node.js, AI platforms, OS support
1715
- - **[CLI Reference](docs/cli-reference.md)** — All 47 commands with examples
1715
+ - **[CLI Reference](docs/cli-reference.md)** — 67+ commands with examples
1716
1716
 
1717
1717
  ### Customize
1718
1718
 
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: quiet-bot
3
+ version: 1.0.0
4
+ description: Mention-only group chat behavior for budget-sensitive bot fleets.
5
+ platforms:
6
+ - openclaw
7
+ metadata:
8
+ triggers:
9
+ - on_message_received
10
+ - chat-message
11
+ scope: daemon
12
+ mode: prompt
13
+ policy:
14
+ group_chat:
15
+ respond_only_if:
16
+ - mentioned: true
17
+ - reply_to_self: true
18
+ - direct_command:
19
+ - /help
20
+ - /status
21
+ dm:
22
+ respond: always
23
+ multi_bot:
24
+ yield_to: other-bots-mentioned-by-name
25
+ proactive_chatter: false
26
+ cost_guard:
27
+ summarize_before_long_task: true
28
+ manifest:
29
+ category: fleet
30
+ related_issues:
31
+ - 1189
32
+ ---
33
+
34
+ # Quiet Bot
35
+
36
+ You are operating in quiet-bot mode. Your default stance is to stay silent unless the message is clearly addressed to you.
37
+
38
+ ## Group Chat Policy
39
+
40
+ Respond in a group only when at least one condition is true:
41
+
42
+ - You are explicitly mentioned by configured bot name, username, or direct alias.
43
+ - The message is a reply to one of your previous messages.
44
+ - The message is a direct command you own, such as `/help` or `/status`.
45
+
46
+ Do not answer general group chatter, side conversations, or questions addressed to another bot. In multi-bot groups, yield when another bot is specifically named.
47
+
48
+ ## Direct Message Policy
49
+
50
+ Respond normally in direct messages, while still applying `tool-quota` and `escalation-discipline` for expensive work.
51
+
52
+ ## Cost Guard
53
+
54
+ Before starting any long task from a chat message:
55
+
56
+ 1. Summarize the bounded task you believe was requested.
57
+ 2. State whether tool calls, model escalation, or external fetches are needed.
58
+ 3. Ask for confirmation when the task would exceed the bot's default quiet reply.
59
+
60
+ ## Refusal Shape
61
+
62
+ When a message is not addressed to you, do not send a refusal. Silence is the correct behavior.
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: quiet-business-bot
3
+ version: 1.0.0
4
+ description: Strict business-domain variant of quiet-bot for Quickbooksbot-style deployments.
5
+ platforms:
6
+ - openclaw
7
+ metadata:
8
+ triggers:
9
+ - on_message_received
10
+ - chat-message
11
+ scope: daemon
12
+ mode: prompt
13
+ policy:
14
+ group_chat:
15
+ respond_only_if:
16
+ - mentioned: true
17
+ - reply_to_self: true
18
+ - direct_command:
19
+ - /help
20
+ - /status
21
+ dm:
22
+ respond: domain_only
23
+ domain:
24
+ mode: strict
25
+ examples:
26
+ - accounting
27
+ - bookkeeping
28
+ - invoices
29
+ - reconciliation
30
+ - expenses
31
+ - reports
32
+ proactive_chatter: false
33
+ cost_guard:
34
+ summarize_before_long_task: true
35
+ manifest:
36
+ category: fleet
37
+ related_issues:
38
+ - 1189
39
+ ---
40
+
41
+ # Quiet Business Bot
42
+
43
+ You are operating in quiet-business-bot mode. You follow quiet-bot group-chat rules and also restrict responses to your configured business domain.
44
+
45
+ ## Domain Policy
46
+
47
+ Answer only when the request is both addressed to you and within your business domain. For a Quickbooksbot-style deployment, the domain includes accounting, bookkeeping, invoices, reconciliation, expenses, exports, reports, and status checks.
48
+
49
+ Decline or stay silent on general chat:
50
+
51
+ - In a group, stay silent unless directly addressed.
52
+ - In a direct message, briefly decline non-domain requests and point the user to the right bot or human owner when known.
53
+
54
+ ## Quickbooksbot Example
55
+
56
+ Respond:
57
+
58
+ ```
59
+ @quickbooksbot why is March reconciliation off?
60
+ ```
61
+
62
+ Do not respond:
63
+
64
+ ```
65
+ What does everyone think about the new office layout?
66
+ ```
67
+
68
+ Direct-message decline:
69
+
70
+ ```
71
+ I only handle bookkeeping and QuickBooks-related requests. Ask the workspace bot for general help.
72
+ ```
73
+
74
+ ## Cost Guard
75
+
76
+ For domain requests that require exports, ledger scans, tool calls, or model escalation, summarize the bounded task and ask for confirmation before spending beyond the default reply.
@@ -0,0 +1,48 @@
1
+ # AIWG Fleet Provider Activation
2
+
3
+ The `aiwg-fleet` addon ships stock quiet-mode behavior bundles for small-plan bot fleets.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ aiwg use aiwg-fleet --provider openclaw
9
+ ```
10
+
11
+ OpenClaw receives native behavior bundles under `~/.openclaw/behaviors/`. Other providers should install `aiwg-utils` and use the `quiet-mode` prompt-level rule until they have native behavior hooks.
12
+
13
+ ## Provider Table
14
+
15
+ | Provider | Activation Pattern |
16
+ |----------|--------------------|
17
+ | OpenClaw | Native behaviors: `quiet-bot` and `quiet-business-bot` deploy to `~/.openclaw/behaviors/` |
18
+ | Claude Code | Fallback rule via `aiwg use aiwg-utils --provider claude` |
19
+ | Warp | Fallback rule via `aiwg use aiwg-utils --provider warp` |
20
+ | Copilot | Fallback rule via `aiwg use aiwg-utils --provider copilot` |
21
+ | Cursor | Fallback rule via `aiwg use aiwg-utils --provider cursor` |
22
+ | Windsurf | Fallback rule via `aiwg use aiwg-utils --provider windsurf` |
23
+ | OpenCode | Fallback rule via `aiwg use aiwg-utils --provider opencode` |
24
+ | Factory | Fallback rule via `aiwg use aiwg-utils --provider factory` |
25
+ | Codex | Fallback rule via `aiwg use aiwg-utils --provider codex` |
26
+
27
+ ## Worked Examples
28
+
29
+ ### Quickbooksbot
30
+
31
+ Use `quiet-business-bot`.
32
+
33
+ - DMs: answer only bookkeeping, QuickBooks, invoice, expense, reconciliation, export, and report requests.
34
+ - Groups: answer only when mentioned, replied to, or called by a direct command.
35
+ - Expensive work: summarize and confirm before tool-heavy analysis or model escalation.
36
+
37
+ ### InfsolClaw
38
+
39
+ Use `quiet-bot`.
40
+
41
+ - DMs: answer normal work requests.
42
+ - Groups: mention-only participation.
43
+ - Multi-bot rooms: yield when another bot is named.
44
+ - Long work: summarize the bounded task before using tools or escalation.
45
+
46
+ ## Out of Scope
47
+
48
+ Telegram client wiring, spam controls, room membership, and gateway-specific mention parsing remain in the chat platform or harness. AIWG supplies the behavior contract; the harness supplies message metadata such as `mentioned`, `reply_to_self`, and `room_type`.
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "aiwg-fleet",
3
+ "type": "addon",
4
+ "name": "AIWG Fleet Policies",
5
+ "version": "2026.5.0",
6
+ "description": "Cross-platform fleet behavior policies for quiet bots, mention-only group chat participation, and small-plan cost discipline",
7
+ "core": false,
8
+ "autoInstall": false,
9
+ "author": "AIWG Contributors",
10
+ "license": "MIT",
11
+ "repository": "https://github.com/jmagly/aiwg",
12
+ "keywords": [
13
+ "fleet",
14
+ "quiet-bot",
15
+ "mention-only",
16
+ "openclaw",
17
+ "telegram",
18
+ "budget"
19
+ ],
20
+ "entry": {
21
+ "behaviors": "behaviors/",
22
+ "docs": "docs/"
23
+ },
24
+ "behaviors": [
25
+ "quiet-bot",
26
+ "quiet-business-bot"
27
+ ],
28
+ "dependencies": {
29
+ "required": ["aiwg-utils"]
30
+ },
31
+ "providers": {
32
+ "openclaw": { "supported": true, "native_behaviors": true },
33
+ "claude-code": { "supported": "fallback-rule" },
34
+ "warp": { "supported": "fallback-rule" },
35
+ "copilot": { "supported": "fallback-rule" },
36
+ "cursor": { "supported": "fallback-rule" },
37
+ "windsurf": { "supported": "fallback-rule" },
38
+ "opencode": { "supported": "fallback-rule" },
39
+ "factory": { "supported": "fallback-rule" },
40
+ "codex": { "supported": "fallback-rule" }
41
+ }
42
+ }
@@ -1,10 +1,10 @@
1
1
  # aiwg-utils Overview
2
2
 
3
- aiwg-utils is the core utility addon bundled with every AIWG installation. It provides seven enforcement rules that govern how agents behave — how they scope subagents, follow instructions, research before acting, handle interactive questions, manage context budgets, generate diagrams, and deploy across platforms. These rules are not optional; they are the behavioral foundation on which all other AIWG components operate.
3
+ aiwg-utils is the core utility addon bundled with every AIWG installation. It provides core enforcement rules that govern how agents behave — how they scope subagents, follow instructions, research before acting, gate model escalation, avoid tool loops, stay quiet in group chats, handle interactive questions, manage context budgets, generate diagrams, and deploy across platforms. These rules are not optional; they are the behavioral foundation on which all other AIWG components operate.
4
4
 
5
5
  ## What's Included
6
6
 
7
- Beyond the 7 rules, aiwg-utils also provides:
7
+ Beyond the rules, aiwg-utils also provides:
8
8
 
9
9
  - **5 agents**: `context-regenerator`, `aiwg-developer`, `consortium-coordinator`, `self-debug`, `aiwg-steward`
10
10
  - **9 skills**: `project-awareness`, `schedule`, `soul-create`, `soul-validate`, `soul-enhance`, `soul-apply`, `soul-blend`, `aiwg-sync`, `aiwg-guide`
@@ -14,7 +14,7 @@ Beyond the 7 rules, aiwg-utils also provides:
14
14
  - **Hook management**: `hook-enable`, `hook-disable`, `hook-status`, `hook-regenerate`
15
15
  - **Importable prompts**: Core orchestration patterns, multi-agent patterns, reliability prompts
16
16
 
17
- ## The 7 Rules
17
+ ## Core Rules
18
18
 
19
19
  ### HIGH Priority
20
20
 
@@ -38,6 +38,24 @@ Research the codebase, docs, and existing patterns before making technical decis
38
38
 
39
39
  Apply when: API usage, configuration changes, dependency selection, error diagnosis, import resolution.
40
40
 
41
+ #### escalation-discipline
42
+
43
+ Summarize before moving above the declared default model tier, confirm Tier 3 explicitly, and never auto-escalate unattended bots to premium tiers. Escalation confirmation is a human-authorization gate, not a recommendation.
44
+
45
+ Apply when: model-tier routing, budget-sensitive agents, unattended bots, requests for deep/debug/thorough work, high-impact work.
46
+
47
+ #### tool-quota
48
+
49
+ Track per-session tool calls, honor `tool_quota` and `loop_detection` declarations, and stop repeating similar failed calls without measurable progress. Defaults cap same failing retries at 3, similar-call windows at 5, one tool at 30 calls in a focused session, and high-cost external tools at 10 calls.
50
+
51
+ Apply when: unattended bots, tool-heavy sessions, shell retry loops, external fetch loops, agent definitions with `tool_quota`.
52
+
53
+ #### quiet-mode
54
+
55
+ Group-chat bots respond only when mentioned, replied to, or invoked by direct command. Multi-bot rooms require yielding to the addressed bot. Business bots stay in domain, and long or expensive work must be summarized before tools or model escalation.
56
+
57
+ Apply when: Telegram/group-chat bots, multi-bot rooms, direct-message business bots, ambient room listeners.
58
+
41
59
  #### native-ux-tools
42
60
 
43
61
  Use platform-native interaction tools (e.g., Claude Code's AskUserQuestion) for interactive questions rather than plain text. One question per interaction turn. Includes a platform capability matrix for all 8 supported providers; falls back to formatted markdown if native tools are unavailable.
@@ -77,6 +95,9 @@ Full rule files:
77
95
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md
78
96
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/instruction-comprehension.md
79
97
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/research-before-decision.md
98
+ @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/escalation-discipline.md
99
+ @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/tool-quota.md
100
+ @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/quiet-mode.md
80
101
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/native-ux-tools.md
81
102
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/context-budget.md
82
103
  @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/diagram-generation.md
@@ -1,12 +1,12 @@
1
1
  # aiwg-utils Rules Reference
2
2
 
3
- Seven enforcement rules deployed with every AIWG installation. These rules apply automatically based on context — you do not invoke them explicitly.
3
+ Core enforcement rules deployed with every AIWG installation. These rules apply automatically based on context — you do not invoke them explicitly.
4
4
 
5
5
  ---
6
6
 
7
7
  ## subagent-scoping
8
8
 
9
- **Priority**: HIGH
9
+ **Priority**: HIGH
10
10
  **Full rule**: `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md`
11
11
 
12
12
  ### What It Enforces
@@ -43,7 +43,7 @@ Task(technical-writer, "Update auth module documentation")
43
43
 
44
44
  ## instruction-comprehension
45
45
 
46
- **Priority**: HIGH
46
+ **Priority**: HIGH
47
47
  **Full rule**: `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/instruction-comprehension.md`
48
48
 
49
49
  ### What It Enforces
@@ -122,6 +122,106 @@ The rule includes a capability matrix defining which tool to use on each of the
122
122
 
123
123
  ---
124
124
 
125
+ ## tool-quota
126
+
127
+ **Priority**: HIGH
128
+ **Full rule**: `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/tool-quota.md`
129
+
130
+ ### What It Enforces
131
+
132
+ Agents track tool calls per session, stop repeated failing calls, and honor declared quotas:
133
+
134
+ ```yaml
135
+ tool_quota:
136
+ Bash: 10
137
+ WebFetch: 5
138
+ defaults: 20
139
+ loop_detection:
140
+ same_call_window: 5
141
+ max_retries: 3
142
+ ```
143
+
144
+ Default behavior when no agent-specific quota exists:
145
+
146
+ - Same failing call retries: 3
147
+ - Similar calls in a rolling window: 5
148
+ - Total calls to one tool in a focused session: 30
149
+ - High-cost external tool calls: 10
150
+
151
+ When a quota would be exceeded, the agent stops and reports what was tried, what was learned, why more calls are needed, and the narrow next action.
152
+
153
+ ### When It Applies
154
+
155
+ Tool-heavy sessions, unattended bots, shell retry loops, external fetch loops, and any agent definition with `tool_quota` or `loop_detection`.
156
+
157
+ ### Example: Quickbooksbot
158
+
159
+ Quickbooksbot receives a vague "why are March numbers wrong?" request. It may inspect known accounting files and integration status, but after three equivalent missing-token or permission failures it must stop, summarize the blocker, and ask for the missing export or credential instead of continuing tool retries.
160
+
161
+ ---
162
+
163
+ ## escalation-discipline
164
+
165
+ **Priority**: HIGH
166
+ **Full rule**: `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/escalation-discipline.md`
167
+
168
+ ### What It Enforces
169
+
170
+ Agents summarize before using a model above their declared default tier:
171
+
172
+ ```
173
+ Need: what is hard or uncertain
174
+ Escalation: target tier and why the default tier is insufficient
175
+ Next: the bounded task the higher tier will handle
176
+ ```
177
+
178
+ Tier 3 requires explicit human confirmation. Unattended bots may not auto-escalate to Tier 3; they must ask, stop with a summary, or queue the request for a supervised agent.
179
+
180
+ Agent definitions may override defaults:
181
+
182
+ ```yaml
183
+ escalation:
184
+ unattended: true
185
+ max_auto_tier: 1
186
+ summary_required: true
187
+ premium_requires_confirmation: true
188
+ ```
189
+
190
+ ### When It Applies
191
+
192
+ Model-tier routing, budget-sensitive agents, unattended bots, high-impact legal/financial/medical/security work, and user requests for deep, debug, or thorough work.
193
+
194
+ ### Interaction with Human Authorization
195
+
196
+ Escalation confirmation is a human-authorization gate. A recommendation to use a higher tier is not permission to spend; the agent must get explicit confirmation whenever policy requires it.
197
+
198
+ ### Example: Quickbooksbot
199
+
200
+ Quickbooksbot receives a complex accounting question that may affect tax prep. It summarizes why Tier 2 is needed, names the bounded ledger comparison it will perform, and asks for confirmation before escalating. If the result implies filing impact, it stops and asks before Tier 3 or routes to the supervised main agent.
201
+
202
+ ---
203
+
204
+ ## quiet-mode
205
+
206
+ **Priority**: HIGH
207
+ **Full rule**: `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/quiet-mode.md`
208
+
209
+ ### What It Enforces
210
+
211
+ In group chats, bots respond only when mentioned, replied to, or invoked by a direct command. They yield when another bot is specifically addressed and they do not initiate proactive chatter unless scheduled or explicitly requested.
212
+
213
+ Business bots stay in domain. In direct messages, they can briefly decline off-domain requests and name their scope.
214
+
215
+ ### When It Applies
216
+
217
+ Telegram/group-chat bots, multi-bot rooms, direct-message business bots, scheduled chat agents, ambient room listeners, and platforms without native behavior support.
218
+
219
+ ### Examples
220
+
221
+ Quickbooksbot answers `@quickbooksbot show unpaid invoices over 30 days`, but stays silent on unrelated group chatter. InfsolClaw answers when mentioned for work status, but yields silently when Quickbooksbot is addressed.
222
+
223
+ ---
224
+
125
225
  ## context-budget
126
226
 
127
227
  **Priority**: MEDIUM
@@ -213,6 +313,9 @@ Creating agent definitions, deploying to multiple providers, selecting tools for
213
313
  | `subagent-scoping` | Delegating tasks | One task per subagent; depth ≤ 2 |
214
314
  | `instruction-comprehension` | Every request | Prohibitions before requirements; no drift |
215
315
  | `research-before-decision` | Technical decisions | Research → Reason → Act → Verify |
316
+ | `escalation-discipline` | Model spend gates | Summarize; confirm premium tiers |
317
+ | `tool-quota` | Tool-heavy sessions | Track calls; stop repeated failures |
318
+ | `quiet-mode` | Chat bots | Mention-only groups; domain-bound business bots |
216
319
  | `native-ux-tools` | Interactive questions | Use platform-native tools; 1 question/turn |
217
320
  | `context-budget` | Parallel spawning (opt-in) | Respect `AIWG_CONTEXT_WINDOW` |
218
321
  | `diagram-generation` | Major docs | Required diagrams per artifact type |
@@ -112,6 +112,10 @@
112
112
  "instruction-comprehension",
113
113
  "parallel-then-synthesize",
114
114
  "research-before-decision",
115
+ "escalation-discipline",
116
+ "tool-quota",
117
+ "quiet-mode",
118
+ "respect-repo-access-manifest",
115
119
  "subagent-scoping",
116
120
  "diagram-generation",
117
121
  "native-ux-tools",
@@ -4,7 +4,7 @@ Core meta-utility rules for agent coordination, context management, and platform
4
4
 
5
5
  ---
6
6
 
7
- ## AIWG Utilities Rules (21 rules — active with aiwg-utils addon)
7
+ ## AIWG Utilities Rules (25 rules — active with aiwg-utils addon)
8
8
 
9
9
  ### HIGH
10
10
 
@@ -48,6 +48,26 @@ Core meta-utility rules for agent coordination, context management, and platform
48
48
  **When to apply**: Technical decision-making, API usage, configuration changes, dependency selection, error diagnosis, import resolution
49
49
  **Full rule**: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/research-before-decision.md
50
50
 
51
+ #### escalation-discipline
52
+ **Summary**: Agents must summarize before moving above their declared default model tier, confirm Tier 3 explicitly, and never auto-escalate unattended bots to premium tiers. Escalation confirmation is a human-authorization gate: state the need, target tier, and bounded next task before spending higher-tier tokens or routing to a stronger agent.
53
+ **When to apply**: Model-tier routing, budget-sensitive agents, unattended bots, requests for deep/debug/thorough work, high-impact legal/financial/medical/security work, any recommendation to use a stronger or premium model
54
+ **Full rule**: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/escalation-discipline.md
55
+
56
+ #### tool-quota
57
+ **Summary**: Tool-using agents must track per-session tool calls, stop repeating similar failed calls without progress, and honor `tool_quota` / `loop_detection` declarations when present. Defaults: same failing call retries <=3, similar-call window <=5, one tool <=30 calls in a focused session, high-cost external tools <=10. When a quota would be exceeded, summarize attempts, facts learned, and the narrow next action instead of continuing an unbounded loop.
58
+ **When to apply**: Tool-heavy sessions, unattended bots, repeated tool failures, external fetch loops, shell retry loops, agent definitions with `tool_quota` or `loop_detection`
59
+ **Full rule**: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/tool-quota.md
60
+
61
+ #### quiet-mode
62
+ **Summary**: Chat and bot agents in group rooms should respond only when mentioned, replied to, or invoked by a direct command. Multi-bot rooms require yielding to the specifically addressed bot. Direct messages are allowed, but business bots stay in domain and long or expensive work must be summarized before tools or model escalation.
63
+ **When to apply**: Telegram/group-chat bots, multi-bot rooms, DMs to business bots, scheduled chat agents, ambient room listeners, platforms without native behavior support
64
+ **Full rule**: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/quiet-mode.md
65
+
66
+ #### respect-repo-access-manifest
67
+ **Summary**: Tool capability is not authorization. When a repo access manifest exists, agents must check it before reading deeply, editing, committing, pushing, issue-commenting, or taking service actions across repo boundaries. Unlisted repos deny by default; repo-local instructions can narrow but not expand manifest permissions.
68
+ **When to apply**: Multi-repo workspaces, adjacent repo handoffs, issue comments in sibling repos, commits/pushes, service actions, any work outside the current repo root
69
+ **Full rule**: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/respect-repo-access-manifest.md
70
+
51
71
  #### skill-discovery
52
72
  **Summary**: Most AIWG skills are NOT loaded into your context — only the kernel set (framework quickrefs + core utilities). The bulk lives at `<provider-dir>/.aiwg/skills/` and is reachable only through the artifact index. The **discover-first protocol** (Rule 1.5) mandates that `aiwg discover` MUST be the first information-gathering tool call for any query mentioning AIWG, framework names (sdlc/research/forensics/ops/security-engineering/marketing/media-curator/knowledge-base), or capability keywords (skill/agent/rule/command/addon/workflow). Filesystem `Grep`/`Glob`/`Read` against `.claude/`, `.factory/`, `.codex/`, `.warp/`, `.cursor/`, `.windsurf/`, `.opencode/`, `~/.hermes/`, `~/.openclaw/`, or `agentic/code/` is FORBIDDEN for AIWG-related lookups until discover has been consulted. When subagent delegation is available, prefer the `aiwg-finder` subagent. You must also query discover before declining a request as out-of-scope or improvising a custom workflow.
53
73
  **When to apply**: ANY query mentioning AIWG, a framework name, or a capability keyword (skill/agent/rule/command); before any filesystem search on provider artifact directories; before declining as out-of-scope; before improvising a custom workflow when an AIWG skill might exist
@@ -133,6 +153,9 @@ Core meta-utility rules for agent coordination, context management, and platform
133
153
  | **Agent definition scope** | god-session, subagent-scoping |
134
154
  | **Documentation** | diagram-generation |
135
155
  | **Research/decisions** | research-before-decision |
156
+ | **Model escalation / spend gates** | escalation-discipline, human-authorization, native-ux-tools |
157
+ | **Tool-call loops / quotas** | tool-quota, research-before-decision, vague-discretion |
158
+ | **Chat bot quiet mode** | quiet-mode, tool-quota, escalation-discipline |
136
159
  | **Skill / capability lookup** | skill-discovery, research-before-decision |
137
160
  | **Error diagnosis** | research-before-decision, instruction-comprehension |
138
161
  | **Constrained systems** | context-budget, subagent-scoping |
@@ -150,5 +173,5 @@ Core meta-utility rules for agent coordination, context management, and platform
150
173
 
151
174
  ---
152
175
 
153
- *Generated from aiwg-utils manifest.json — 21 rules*
176
+ *Generated from aiwg-utils manifest.json — 24 rules*
154
177
  *Full rule files: @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/*
@@ -96,6 +96,19 @@ When context budget is constrained, each subagent should produce less output to
96
96
 
97
97
  These rules operate at the prompt/convention level. There is no runtime system that enforces them. Agents are expected to read the directive and adjust their behavior accordingly. The rules provide clear lookup tables so the agent can make the right decision without complex reasoning.
98
98
 
99
+ ### Rule 6: Compose with Provider Parallelism Cap (#1359)
100
+
101
+ `.aiwg/aiwg.config` may declare a `parallelism.max_parallel_subagents` cap that reflects the model provider's rate-limit envelope (Anthropic per-key TPM/RPM caps in particular). When both `AIWG_CONTEXT_WINDOW` and the provider cap are set, the **smaller** wins:
102
+
103
+ ```
104
+ effective_parallel = min(
105
+ context_window_tier_cap, // from this rule's table
106
+ parallelism.max_parallel_subagents // from aiwg.config (#1359)
107
+ )
108
+ ```
109
+
110
+ For example, a Claude small-plan project with `AIWG_CONTEXT_WINDOW=512000` (which this rule would allow up to 12 parallel) and `parallelism.max_parallel_subagents=4` is capped at 4. The rate-limit cap wins because exceeding it produces 429s regardless of how much context fits. See `@$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md` Rule 8 for the full composition formula across all four cap sources.
111
+
99
112
  ## Compaction Guidance
100
113
 
101
114
  ### Aggressive Compaction (≤64k)