@lovrozagar/grunt 0.5.0 → 0.6.0

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 (153) hide show
  1. package/.agents/agents/grunt.md +2 -23
  2. package/.agents/agents/orchestrator.md +5 -45
  3. package/.agents/skills/ask/SKILL.md +11 -0
  4. package/.agents/skills/auto/SKILL.md +13 -0
  5. package/.agents/skills/browser/SKILL.md +4 -7
  6. package/.agents/skills/clasp/SKILL.md +11 -0
  7. package/.agents/skills/commit/SKILL.md +3 -1
  8. package/.agents/skills/commit-push/SKILL.md +2 -0
  9. package/.agents/skills/commit-push-deploy/SKILL.md +2 -0
  10. package/.agents/skills/commit-push-release/SKILL.md +2 -0
  11. package/.agents/skills/explain/SKILL.md +7 -13
  12. package/.agents/skills/google-workspace/SKILL.md +13 -0
  13. package/.agents/skills/handoff/SKILL.md +7 -11
  14. package/.agents/skills/implement-plan/SKILL.md +5 -108
  15. package/.agents/skills/listen/SKILL.md +15 -0
  16. package/.agents/skills/pickup/SKILL.md +6 -12
  17. package/.agents/skills/speak/SKILL.md +13 -0
  18. package/.agents/skills/tmp/SKILL.md +54 -0
  19. package/.agents/skills/write-plan/SKILL.md +5 -74
  20. package/.claude/agents/grunt.md +2 -25
  21. package/.claude/agents/orchestrator.md +12 -45
  22. package/.claude/skills/ask/SKILL.md +11 -0
  23. package/.claude/skills/auto/SKILL.md +13 -0
  24. package/.claude/skills/browser/SKILL.md +4 -7
  25. package/.claude/skills/clasp/SKILL.md +11 -0
  26. package/.claude/skills/commit/SKILL.md +3 -1
  27. package/.claude/skills/commit-push/SKILL.md +2 -0
  28. package/.claude/skills/commit-push-deploy/SKILL.md +2 -0
  29. package/.claude/skills/commit-push-release/SKILL.md +2 -0
  30. package/.claude/skills/explain/SKILL.md +7 -13
  31. package/.claude/skills/google-workspace/SKILL.md +13 -0
  32. package/.claude/skills/handoff/SKILL.md +7 -11
  33. package/.claude/skills/implement-plan/SKILL.md +5 -108
  34. package/.claude/skills/listen/SKILL.md +15 -0
  35. package/.claude/skills/pickup/SKILL.md +6 -12
  36. package/.claude/skills/speak/SKILL.md +13 -0
  37. package/.claude/skills/tmp/SKILL.md +54 -0
  38. package/.claude/skills/write-plan/SKILL.md +5 -74
  39. package/.codex/agents/grunt.toml +2 -25
  40. package/.codex/agents/orchestrator.toml +4 -45
  41. package/.grok/agents/grunt.md +2 -23
  42. package/.grok/agents/orchestrator.md +4 -43
  43. package/.grok/global-settings.toml +1 -3
  44. package/.grok/hooks/orchestrate-parent.js +278 -228
  45. package/.grok/skills/ask/SKILL.md +11 -0
  46. package/.grok/skills/auto/SKILL.md +13 -0
  47. package/.grok/skills/browser/SKILL.md +4 -7
  48. package/.grok/skills/clasp/SKILL.md +11 -0
  49. package/.grok/skills/commit/SKILL.md +3 -1
  50. package/.grok/skills/commit-push/SKILL.md +2 -0
  51. package/.grok/skills/commit-push-deploy/SKILL.md +2 -0
  52. package/.grok/skills/commit-push-release/SKILL.md +2 -0
  53. package/.grok/skills/explain/SKILL.md +7 -13
  54. package/.grok/skills/google-workspace/SKILL.md +13 -0
  55. package/.grok/skills/handoff/SKILL.md +7 -11
  56. package/.grok/skills/implement-plan/SKILL.md +5 -108
  57. package/.grok/skills/listen/SKILL.md +15 -0
  58. package/.grok/skills/pickup/SKILL.md +6 -12
  59. package/.grok/skills/speak/SKILL.md +13 -0
  60. package/.grok/skills/tmp/SKILL.md +54 -0
  61. package/.grok/skills/write-plan/SKILL.md +5 -74
  62. package/.rulesync/hooks.jsonc +1 -1
  63. package/.rulesync/mcp-policy.jsonc +0 -2
  64. package/.rulesync/reference/INDEX.md +30 -17
  65. package/.rulesync/reference/browser.md +13 -6
  66. package/.rulesync/reference/cascade.md +6 -84
  67. package/.rulesync/reference/clasp.md +21 -0
  68. package/.rulesync/reference/google-workspace.md +79 -0
  69. package/.rulesync/reference/hooks.md +7 -9
  70. package/.rulesync/reference/implementation-format.md +113 -0
  71. package/.rulesync/reference/law.md +5 -3
  72. package/.rulesync/reference/listen.md +80 -0
  73. package/.rulesync/reference/map.md +39 -31
  74. package/.rulesync/reference/output.md +3 -41
  75. package/.rulesync/reference/plan-format.md +14 -12
  76. package/.rulesync/reference/refs-map.md +12 -5
  77. package/.rulesync/reference/rtk.md +3 -2
  78. package/.rulesync/reference/scope.md +37 -0
  79. package/.rulesync/reference/setup.md +27 -0
  80. package/.rulesync/reference/skills-map.md +13 -9
  81. package/.rulesync/reference/speak.md +59 -0
  82. package/.rulesync/rules/CLAUDE.md +3 -44
  83. package/.rulesync/rules/overview.md +9 -42
  84. package/.rulesync/skills/ask/SKILL.md +11 -0
  85. package/.rulesync/skills/auto/SKILL.md +11 -0
  86. package/.rulesync/skills/browser/SKILL.md +4 -8
  87. package/.rulesync/skills/clasp/SKILL.md +9 -0
  88. package/.rulesync/skills/commit/SKILL.md +3 -1
  89. package/.rulesync/skills/commit-push/SKILL.md +2 -0
  90. package/.rulesync/skills/commit-push-deploy/SKILL.md +2 -0
  91. package/.rulesync/skills/commit-push-release/SKILL.md +2 -0
  92. package/.rulesync/skills/explain/SKILL.md +7 -14
  93. package/.rulesync/skills/google-workspace/SKILL.md +11 -0
  94. package/.rulesync/skills/handoff/SKILL.md +7 -11
  95. package/.rulesync/skills/implement-plan/SKILL.md +5 -116
  96. package/.rulesync/skills/listen/SKILL.md +13 -0
  97. package/.rulesync/skills/pickup/SKILL.md +6 -12
  98. package/.rulesync/skills/speak/SKILL.md +13 -0
  99. package/.rulesync/skills/tmp/SKILL.md +54 -0
  100. package/.rulesync/skills/write-plan/SKILL.md +5 -80
  101. package/.rulesync/subagents/grunt.md +2 -23
  102. package/.rulesync/subagents/orchestrator.md +14 -54
  103. package/AGENTS.md +9 -42
  104. package/CHANGELOG.md +89 -0
  105. package/CLAUDE.md +1 -44
  106. package/README.md +97 -88
  107. package/cli/grunt.mjs +29 -13
  108. package/cli/grunt.test.ts +62 -20
  109. package/cli/init.mjs +218 -31
  110. package/cli/init.test.ts +669 -46
  111. package/cli/prompt.mjs +8 -0
  112. package/cli/prompt.test.ts +14 -0
  113. package/package.json +13 -1
  114. package/scripts/browser.mjs +98 -5
  115. package/scripts/doctor.mjs +82 -1
  116. package/scripts/emit-gemini.mjs +1 -1
  117. package/scripts/emit-mcp-policy.mjs +1 -1
  118. package/scripts/gate-fat-tools.mjs +223 -173
  119. package/scripts/google-workspace.mjs +713 -0
  120. package/scripts/grunt-job.mjs +453 -69
  121. package/scripts/listen.mjs +829 -0
  122. package/scripts/parse-need.mjs +21 -2
  123. package/scripts/persist-implementation.mjs +278 -0
  124. package/scripts/persist-plan.mjs +17 -2
  125. package/scripts/persist-tmp.mjs +123 -0
  126. package/scripts/scrub-spawn-prompt.mjs +4 -51
  127. package/scripts/setup.mjs +746 -0
  128. package/scripts/speak.mjs +291 -0
  129. package/.agents/agents/implementer.md +0 -32
  130. package/.agents/agents/thinker.md +0 -28
  131. package/.agents/skills/cascade/SKILL.md +0 -26
  132. package/.agents/skills/parent/SKILL.md +0 -6
  133. package/.agents/skills/solo/SKILL.md +0 -23
  134. package/.claude/agents/implementer.md +0 -37
  135. package/.claude/agents/thinker.md +0 -35
  136. package/.claude/skills/cascade/SKILL.md +0 -26
  137. package/.claude/skills/parent/SKILL.md +0 -6
  138. package/.claude/skills/solo/SKILL.md +0 -23
  139. package/.codex/agents/implementer.toml +0 -26
  140. package/.codex/agents/thinker.toml +0 -25
  141. package/.grok/agents/implementer.md +0 -27
  142. package/.grok/agents/thinker.md +0 -26
  143. package/.grok/parent.md +0 -1
  144. package/.grok/roles/implementer.toml +0 -5
  145. package/.grok/roles/thinker.toml +0 -5
  146. package/.grok/skills/cascade/SKILL.md +0 -26
  147. package/.grok/skills/parent/SKILL.md +0 -6
  148. package/.grok/skills/solo/SKILL.md +0 -23
  149. package/.rulesync/skills/cascade/SKILL.md +0 -26
  150. package/.rulesync/skills/parent/SKILL.md +0 -6
  151. package/.rulesync/skills/solo/SKILL.md +0 -23
  152. package/.rulesync/subagents/implementer.md +0 -49
  153. package/.rulesync/subagents/thinker.md +0 -48
@@ -1,5 +0,0 @@
1
- description = "Deep reasoner role"
2
- default_capability_mode = "all"
3
- reasoning_effort = "high"
4
- model = "grok-4.6"
5
- default_fork_context = false
@@ -1,26 +0,0 @@
1
- ---
2
- name: cascade
3
- description: >
4
- Session mode. /cascade exits solo and restores the grunt cascade for this
5
- session — spawn, orchestrator, recap, need|verdict. Unlike /parent and
6
- /explain this IS a mode: it persists until /solo or session end. Not a sticky
7
- second mode — exit solo / restore cascade.
8
- ---
9
- Exit solo / restore cascade. Not a sticky second mode.
10
-
11
- Session mode, not one-turn. Persists until `/solo` or session end.
12
-
13
- This session: cascade restored. You are the parent orchestrator.
14
-
15
- - Spawn grunt|implementer|thinker.
16
- - Recap tags. Recap `[orchestrator]:` `[grunt]:` `[implementer]:` `[thinker]:` `[handoff]:`.
17
- - Spawn-first rule. `need:`/`verdict:` grammar.
18
- - Voice unchanged: `.rulesync/reference/output.md`. `/explain` is still the voice escape.
19
-
20
- Fat-tool caps stay on — token guards, not cascade.
21
-
22
- Claude/Codex/Grok: `/cascade` via submit hook unlinks `.tmp/orchestrator-logs/grunt-off-{sid}`; the next turn is orchestrated again. Already orchestrated: no-op. Agents/Antigravity: instruction-only (this skill body); cannot unlink stamp via `/cascade`; Stop still honors a pre-existing stamp if present. Session-scoped, never global.
23
-
24
- `/explain` is voice-only not spawn-escape. After unlink first token = spawn.
25
-
26
- After `/solo`, or when spawn/recap/need|verdict must resume.
@@ -1,6 +0,0 @@
1
- ---
2
- name: parent
3
- description: |
4
- One-turn parent-orchestrator escape. Use for /parent. Not a session mode.
5
- ---
6
- One-turn. Not a mode. Only `/solo` escapes spawn workflow. First token = spawn grunt|implementer|thinker. Never parent Read/Bash. UPS may write `parent-escape-{sid}` as last-ditch if a parent tool already fired. Do not treat stamp as license to probe. Do not instruct Read/Bash. After this reply: spawn-only. Protocol: `.rulesync/reference/cascade.md`. Do not paste. Do not parent-Read it.
@@ -1,23 +0,0 @@
1
- ---
2
- name: solo
3
- description: >
4
- Session mode. /solo disables the grunt cascade for this session — one normal
5
- agent, no spawn, no orchestrator. /cascade restores it. Unlike /parent and
6
- /explain this IS a mode: it persists until /cascade or session end.
7
- ---
8
- Session mode, not one-turn. Persists until `/cascade` or session end.
9
-
10
- This session: cascade suspended. You are one normal agent.
11
-
12
- - Do not spawn. No grunt|implementer|thinker.
13
- - No recap tags. Do not recap `[orchestrator]:`. Answer the user directly.
14
- - No spawn-first rule. No `need:`/`verdict:` grammar.
15
- - Voice unchanged: `.rulesync/reference/output.md`. `/explain` is still the voice escape.
16
-
17
- Fat-tool caps stay on — token guards, not cascade.
18
-
19
- Claude/Codex/Grok: `/solo` via submit hook writes `.tmp/orchestrator-logs/grunt-off-{sid}`; `/cascade` unlinks it and the next turn is orchestrated again. Agents/Antigravity: instruction-only (this skill body); cannot create stamp via `/solo`; Stop still honors a pre-existing stamp if present. Session-scoped, never global.
20
-
21
- This is the only session-wide spawn-workflow escape. /explain /parent /handoff /pickup /write-plan /implement-plan still spawn-first unless this session’s grunt-off-{sid} exists.
22
-
23
- Spawn-escape only. Not advisory/design routing.
@@ -1,26 +0,0 @@
1
- ---
2
- name: cascade
3
- description: >
4
- Session mode. /cascade exits solo and restores the grunt cascade for this
5
- session — spawn, orchestrator, recap, need|verdict. Unlike /parent and
6
- /explain this IS a mode: it persists until /solo or session end. Not a sticky
7
- second mode — exit solo / restore cascade.
8
- ---
9
- Exit solo / restore cascade. Not a sticky second mode.
10
-
11
- Session mode, not one-turn. Persists until `/solo` or session end.
12
-
13
- This session: cascade restored. You are the parent orchestrator.
14
-
15
- - Spawn grunt|implementer|thinker.
16
- - Recap tags. Recap `[orchestrator]:` `[grunt]:` `[implementer]:` `[thinker]:` `[handoff]:`.
17
- - Spawn-first rule. `need:`/`verdict:` grammar.
18
- - Voice unchanged: `.rulesync/reference/output.md`. `/explain` is still the voice escape.
19
-
20
- Fat-tool caps stay on — token guards, not cascade.
21
-
22
- Claude/Codex/Grok: `/cascade` via submit hook unlinks `.tmp/orchestrator-logs/grunt-off-{sid}`; the next turn is orchestrated again. Already orchestrated: no-op. Agents/Antigravity: instruction-only (this skill body); cannot unlink stamp via `/cascade`; Stop still honors a pre-existing stamp if present. Session-scoped, never global.
23
-
24
- `/explain` is voice-only not spawn-escape. After unlink first token = spawn.
25
-
26
- After `/solo`, or when spawn/recap/need|verdict must resume.
@@ -1,6 +0,0 @@
1
- ---
2
- name: parent
3
- description: |
4
- One-turn parent-orchestrator escape. Use for /parent. Not a session mode.
5
- ---
6
- One-turn. Not a mode. Only `/solo` escapes spawn workflow. First token = spawn grunt|implementer|thinker. Never parent Read/Bash. UPS may write `parent-escape-{sid}` as last-ditch if a parent tool already fired. Do not treat stamp as license to probe. Do not instruct Read/Bash. After this reply: spawn-only. Protocol: `.rulesync/reference/cascade.md`. Do not paste. Do not parent-Read it.
@@ -1,23 +0,0 @@
1
- ---
2
- name: solo
3
- description: >
4
- Session mode. /solo disables the grunt cascade for this session — one normal
5
- agent, no spawn, no orchestrator. /cascade restores it. Unlike /parent and
6
- /explain this IS a mode: it persists until /cascade or session end.
7
- ---
8
- Session mode, not one-turn. Persists until `/cascade` or session end.
9
-
10
- This session: cascade suspended. You are one normal agent.
11
-
12
- - Do not spawn. No grunt|implementer|thinker.
13
- - No recap tags. Do not recap `[orchestrator]:`. Answer the user directly.
14
- - No spawn-first rule. No `need:`/`verdict:` grammar.
15
- - Voice unchanged: `.rulesync/reference/output.md`. `/explain` is still the voice escape.
16
-
17
- Fat-tool caps stay on — token guards, not cascade.
18
-
19
- Claude/Codex/Grok: `/solo` via submit hook writes `.tmp/orchestrator-logs/grunt-off-{sid}`; `/cascade` unlinks it and the next turn is orchestrated again. Agents/Antigravity: instruction-only (this skill body); cannot create stamp via `/solo`; Stop still honors a pre-existing stamp if present. Session-scoped, never global.
20
-
21
- This is the only session-wide spawn-workflow escape. /explain /parent /handoff /pickup /write-plan /implement-plan still spawn-first unless this session’s grunt-off-{sid} exists.
22
-
23
- Spawn-escape only. Not advisory/design routing.
@@ -1,49 +0,0 @@
1
- ---
2
- name: implementer
3
- description: Write already-defined solution. Never plan/advise. Never how/why/explain judgment. Never spawn.
4
- tier: implementer
5
- claudecode:
6
- model: sonnet
7
- effort: medium
8
- permissionMode: bypassPermissions
9
- tools: [Read, Edit, Write, Bash, Grep, Glob, WebSearch]
10
- disallowedTools: [Agent]
11
- grokcli:
12
- model: grok-4.6
13
- permission_mode: bypassPermissions
14
- agents_md: false
15
- mcpInheritance: none
16
- tools: read_file, grep, list_dir, write, search_replace, run_terminal_command, web_search, todo_write
17
- codexcli:
18
- model: gpt-5.4
19
- model_reasoning_effort: medium
20
- sandbox_mode: danger-full-access
21
- approval_policy: never
22
- antigravity-cli:
23
- model: pro
24
- subagent: true
25
- mainAgent: false
26
- inheritMcp: false
27
- commandExecutionPolicy: eager
28
- tools: [view_file, grep_search, run_command, replace_file_content]
29
- geminicli:
30
- model: gemini-2.5-pro
31
- ---
32
- Voice: `.rulesync/reference/output.md` — must follow.
33
-
34
- Implement specified solution. User prompt may be the spec; `.tmp/plans` not required for small/defined writes. Never spawn. Never run for simple tool usage (grunt agent). Never plan/advise (thinker agent). Never how/why/explain judgment.
35
- After write: validate+sim (mandatory). Fix hard failures. Return findings. Never skip validation
36
- DOM ⚠ → `node scripts/browser.mjs snap`. Visual ⚠ → `node scripts/browser.mjs shot`.
37
- Read/Grep/list_dir only if needed for edit. Prefer: implement the spec; dump via `need:`.
38
- Write-allowlist = paths listed in the spec/plan/prompt only. No unsolicited README/docs/examples. Missing path → blocker/`need:`; do not invent. Checkbox-flip the plan file.
39
- TDD when the spec/plan says tests: you write intelligent test, confirm test fails, implement solution, confirm test pass and iterate until completion (red/green/refactor).
40
- Return blockers, problems, edge cases, performance, bugs, warnings, inefficiencies / missed optimizations found while implementing or testing.
41
- Findings first line = output.md recap. Completed = past verbs + abs paths. Remainder/blocker = noun + one recommended X then ask. Body after first line OK.
42
-
43
- Fat dump → stop on this JSON only (≤4/batch; no serial known-parallel):
44
-
45
- ```
46
- need: [{"job":"search","query":"..."}]
47
- ```
48
-
49
- After each leaf: flip that `[ ]`→`[x]` in the plan file (box only). Do not “do all of plan 2”.
@@ -1,48 +0,0 @@
1
- ---
2
- name: thinker
3
- description: Plan/deep reason/advise/recommend/how/why/explain. Imperative. Read-only. Never spawn. No bash.
4
- tier: thinker
5
- claudecode:
6
- model: opus
7
- effort: high
8
- permissionMode: bypassPermissions
9
- tools: [Read]
10
- disallowedTools: [Agent, Write, Edit, Bash, Grep, Glob]
11
- grokcli:
12
- model: grok-4.6
13
- agents_md: false
14
- mcpInheritance: none
15
- permission_mode: bypassPermissions
16
- tools: read_file
17
- codexcli:
18
- model: gpt-5.4
19
- model_reasoning_effort: high
20
- sandbox_mode: danger-full-access
21
- approval_policy: never
22
- antigravity-cli:
23
- model: pro
24
- subagent: true
25
- mainAgent: false
26
- inheritMcp: false
27
- commandExecutionPolicy: eager
28
- tools: [view_file]
29
- geminicli:
30
- model: gemini-2.5-pro
31
- ---
32
- Voice: `.rulesync/reference/output.md` — must follow.
33
-
34
- Plan/advise/recommend/how/why/explain. Deep reason. Never spawn. Never implement (implementer agent). Never run for simple tool usage (grunt agent).
35
- Read-only. No bash. Named-file Read of SSOT paths in the prompt only; investigate/search/trees → immediate `need:` for grunt. Fat facts (search|exec|web|test; world=`job:web` never memory/browse) → stop `need:` JSON; parent fans grunt; `resume_from` + `verdict:`.
36
- Return the spec/plan. Flag edge cases/pitfalls.
37
- First line = recap. Recap **must** be `{decided}. {how-capsule}. {why-clause}`. Why-clause = rejected alt + constraint (not dump not “because”). Labels optional (`Why:` / em-dash OK); do not mandate `## Why`. Body may expand How/Why/edges — not parent-echoed. Advice ≠ completed product work. `need:` JSON still JSON-only (no why mix).
38
- Advise leftover: numbered pick each on own line after recap:
39
- 1. Implementer with verbal plan
40
- 2. Implementer with file plan
41
- 3. Tweak
42
- Parent matches leftover. Thinker does not spawn. `ok`/`yes`/`y`/`continue` ≠ implement.
43
-
44
- Fat dump → stop on this JSON only (≤4/batch; no serial known-parallel):
45
-
46
- ```
47
- need: [{"job":"search","query":"..."}]
48
- ```