maxsimcli 5.0.1 → 5.0.3

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 (39) hide show
  1. package/dist/assets/CHANGELOG.md +15 -0
  2. package/dist/assets/hooks/maxsim-sync-reminder.cjs +4 -77
  3. package/dist/assets/hooks/maxsim-sync-reminder.cjs.map +1 -1
  4. package/dist/assets/templates/agents/AGENTS.md +9 -8
  5. package/dist/assets/templates/agents/executor.md +1 -1
  6. package/dist/assets/templates/agents/planner.md +1 -1
  7. package/dist/assets/templates/agents/verifier.md +1 -1
  8. package/dist/assets/templates/commands/maxsim/execute.md +3 -3
  9. package/dist/assets/templates/commands/maxsim/go.md +2 -2
  10. package/dist/assets/templates/commands/maxsim/help.md +2 -2
  11. package/dist/assets/templates/commands/maxsim/init.md +7 -7
  12. package/dist/assets/templates/commands/maxsim/plan.md +3 -3
  13. package/dist/assets/templates/commands/maxsim/progress.md +2 -2
  14. package/dist/assets/templates/commands/maxsim/quick.md +2 -2
  15. package/dist/assets/templates/commands/maxsim/settings.md +2 -2
  16. package/dist/assets/templates/references/model-profile-resolution.md +1 -1
  17. package/dist/assets/templates/references/thinking-partner.md +1 -1
  18. package/dist/assets/templates/references/verification-patterns.md +1 -1
  19. package/dist/assets/templates/skills/github-tools-guide/SKILL.md +1 -1
  20. package/dist/assets/templates/templates/codebase/structure.md +1 -1
  21. package/dist/assets/templates/templates/phase-prompt.md +7 -7
  22. package/dist/assets/templates/templates/state.md +2 -3
  23. package/dist/assets/templates/workflows/discuss-phase.md +4 -4
  24. package/dist/assets/templates/workflows/execute-plan.md +1 -1
  25. package/dist/assets/templates/workflows/execute.md +5 -5
  26. package/dist/assets/templates/workflows/init-existing.md +2 -2
  27. package/dist/assets/templates/workflows/init.md +8 -8
  28. package/dist/assets/templates/workflows/new-project.md +2 -2
  29. package/dist/assets/templates/workflows/plan-discuss.md +1 -1
  30. package/dist/assets/templates/workflows/plan.md +6 -6
  31. package/dist/assets/templates/workflows/quick.md +8 -36
  32. package/dist/assets/templates/workflows/research-phase.md +2 -2
  33. package/dist/assets/templates/workflows/verify-phase.md +2 -2
  34. package/dist/assets/templates/workflows/verify-work.md +2 -2
  35. package/dist/cli.cjs +13601 -13801
  36. package/dist/cli.cjs.map +1 -1
  37. package/dist/core-D5zUr9cb.cjs.map +1 -1
  38. package/dist/skills-CjFWZIGM.cjs.map +1 -1
  39. package/package.json +1 -1
@@ -1,3 +1,18 @@
1
+ ## [5.0.2](https://github.com/maystudios/maxsimcli/compare/v5.0.1...v5.0.2) (2026-03-12)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **github-ssot:** complete migration to GitHub Issues as sole source of truth ([2bf86bf](https://github.com/maystudios/maxsimcli/commit/2bf86bf6065048e859a2b760b2c4a04209c6da87))
7
+ * **todos:** remove local file system — GitHub Issues is sole source of truth ([de98df1](https://github.com/maystudios/maxsimcli/commit/de98df18f88040b58cea32d576907a889151e9f9))
8
+
9
+ ## [5.0.1](https://github.com/maystudios/maxsimcli/compare/v5.0.0...v5.0.1) (2026-03-12)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **install:** update Discord community link ([3c548ab](https://github.com/maystudios/maxsimcli/commit/3c548ab608223780534ac8c5b1c79ad2bf66f338))
15
+
1
16
  # [5.0.0](https://github.com/maystudios/maxsimcli/compare/v4.16.0...v5.0.0) (2026-03-12)
2
17
 
3
18
 
@@ -1,38 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- //#region \0rolldown/runtime.js
4
- var __create = Object.create;
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
13
- key = keys[i];
14
- if (!__hasOwnProp.call(to, key) && key !== except) {
15
- __defProp(to, key, {
16
- get: ((k) => from[k]).bind(null, key),
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- }
21
- }
22
- return to;
23
- };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
- value: mod,
26
- enumerable: true
27
- }) : target, mod));
28
-
29
- //#endregion
30
- let node_fs = require("node:fs");
31
- node_fs = __toESM(node_fs);
32
- let node_os = require("node:os");
33
- node_os = __toESM(node_os);
34
- let node_path = require("node:path");
35
- node_path = __toESM(node_path);
36
3
 
37
4
  //#region src/hooks/shared.ts
38
5
  /**
@@ -58,52 +25,12 @@ function readStdinJson(callback) {
58
25
  //#endregion
59
26
  //#region src/hooks/maxsim-sync-reminder.ts
60
27
  /**
61
- * Sync Reminder Hook — PostToolUse hook that detects .planning/ file writes
62
- * and gently reminds the user to sync changes to GitHub Issues.
63
- *
64
- * Debounces reminders: fires on the first .planning/ write per session,
65
- * then every DEBOUNCE_CALLS writes thereafter.
28
+ * Sync Reminder Hook — No longer needed.
29
+ * GitHub Issues is the sole source of truth for phase artifacts and todos.
30
+ * Local .planning/ writes no longer need sync reminders.
66
31
  */
67
- /** Number of .planning/ writes between repeated reminders. */
68
32
  const DEBOUNCE_CALLS = 10;
69
- const REMINDER_MESSAGE = ".planning/ files changed locally. Consider syncing to GitHub Issues when ready.";
70
- function processSyncReminder(data) {
71
- const sessionId = data.session_id;
72
- const filePath = data.tool_input?.file_path;
73
- if (!sessionId || !filePath) return null;
74
- const normalized = node_path.normalize(filePath);
75
- const planningSegment = `${node_path.sep}.planning${node_path.sep}`;
76
- const planningEnd = `${node_path.sep}.planning`;
77
- if (!normalized.includes(planningSegment) && !normalized.endsWith(planningEnd)) return null;
78
- const stateFile = node_path.join(node_os.tmpdir(), `maxsim-sync-${sessionId}.json`);
79
- let state;
80
- try {
81
- if (node_fs.existsSync(stateFile)) state = JSON.parse(node_fs.readFileSync(stateFile, "utf8"));
82
- else state = {
83
- callsSinceRemind: 0,
84
- reminded: false
85
- };
86
- } catch {
87
- state = {
88
- callsSinceRemind: 0,
89
- reminded: false
90
- };
91
- }
92
- state.callsSinceRemind++;
93
- if (!state.reminded || state.callsSinceRemind >= DEBOUNCE_CALLS) {
94
- state.callsSinceRemind = 0;
95
- state.reminded = true;
96
- try {
97
- node_fs.writeFileSync(stateFile, JSON.stringify(state));
98
- } catch {}
99
- return { hookSpecificOutput: {
100
- hookEventName: "PostToolUse",
101
- additionalContext: REMINDER_MESSAGE
102
- } };
103
- }
104
- try {
105
- node_fs.writeFileSync(stateFile, JSON.stringify(state));
106
- } catch {}
33
+ function processSyncReminder(_data) {
107
34
  return null;
108
35
  }
109
36
  if (require.main === module) readStdinJson((data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"maxsim-sync-reminder.cjs","names":["path","os","fs"],"sources":["../../../src/hooks/shared.ts","../../../src/hooks/maxsim-sync-reminder.ts"],"sourcesContent":["/**\n * Shared utilities for MAXSIM hooks.\n */\n\n/**\n * Read all stdin as a string, then invoke callback with parsed JSON.\n * Used by statusline and sync-reminder hooks.\n */\nexport function readStdinJson<T>(callback: (data: T) => void): void {\n let input = '';\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (chunk: string) => (input += chunk));\n process.stdin.on('end', () => {\n try {\n const data = JSON.parse(input) as T;\n callback(data);\n } catch {\n // Silent fail -- never block hook execution\n process.exit(0);\n }\n });\n}\n\n/** The '.claude' path segment -- template marker replaced during install. */\nexport const CLAUDE_DIR = '.claude';\n\n/**\n * Play a system sound for notifications. Fire-and-forget, never blocks.\n * Suppressed when MAXSIM_SOUND=0, CI=true, or SSH_CONNECTION is set.\n */\nexport function playSound(type: 'question' | 'stop'): void {\n try {\n if (\n process.env.MAXSIM_SOUND === '0' ||\n process.env.CI === 'true' ||\n process.env.SSH_CONNECTION\n ) {\n return;\n }\n\n const platform = process.platform;\n\n if (platform === 'win32') {\n const file =\n type === 'question'\n ? 'C:\\\\Windows\\\\Media\\\\notify.wav'\n : 'C:\\\\Windows\\\\Media\\\\chimes.wav';\n const { spawn } = require('node:child_process') as typeof import('node:child_process');\n const child = spawn(\n 'powershell',\n ['-NoProfile', '-Command', `(New-Object Media.SoundPlayer '${file}').PlaySync()`],\n { stdio: 'ignore', windowsHide: true, detached: true },\n );\n child.unref();\n } else if (platform === 'darwin') {\n const file =\n type === 'question'\n ? '/System/Library/Sounds/Ping.aiff'\n : '/System/Library/Sounds/Glass.aiff';\n const { spawn } = require('node:child_process') as typeof import('node:child_process');\n const child = spawn('afplay', [file], {\n stdio: 'ignore',\n detached: true,\n });\n child.unref();\n } else {\n // Linux / unknown — terminal bell fallback\n process.stderr.write('\\x07');\n }\n } catch {\n // Silent fail — never block hook execution\n }\n}\n","#!/usr/bin/env node\n/**\n * Sync Reminder Hook — PostToolUse hook that detects .planning/ file writes\n * and gently reminds the user to sync changes to GitHub Issues.\n *\n * Debounces reminders: fires on the first .planning/ write per session,\n * then every DEBOUNCE_CALLS writes thereafter.\n */\n\nimport * as fs from 'node:fs';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport { readStdinJson } from './shared';\n\nexport interface SyncReminderInput {\n session_id?: string;\n cwd?: string;\n tool_input?: { file_path?: string };\n}\n\nexport interface SyncReminderOutput {\n hookSpecificOutput: {\n hookEventName: string;\n additionalContext: string;\n };\n}\n\ninterface DebounceState {\n callsSinceRemind: number;\n reminded: boolean;\n}\n\n/** Number of .planning/ writes between repeated reminders. */\nexport const DEBOUNCE_CALLS = 10;\n\nconst REMINDER_MESSAGE =\n '.planning/ files changed locally. Consider syncing to GitHub Issues when ready.';\n\nexport function processSyncReminder(\n data: SyncReminderInput,\n): SyncReminderOutput | null {\n const sessionId = data.session_id;\n const filePath = data.tool_input?.file_path;\n\n if (!sessionId || !filePath) {\n return null;\n }\n\n // Normalize path for cross-platform (Windows backslash handling)\n const normalized = path.normalize(filePath);\n\n // Check if the file is inside a .planning/ directory\n const planningSegment = `${path.sep}.planning${path.sep}`;\n const planningEnd = `${path.sep}.planning`;\n if (\n !normalized.includes(planningSegment) &&\n !normalized.endsWith(planningEnd)\n ) {\n return null;\n }\n\n // Load debounce state from temp file\n const stateFile = path.join(\n os.tmpdir(),\n `maxsim-sync-${sessionId}.json`,\n );\n\n let state: DebounceState;\n try {\n if (fs.existsSync(stateFile)) {\n state = JSON.parse(fs.readFileSync(stateFile, 'utf8')) as DebounceState;\n } else {\n state = { callsSinceRemind: 0, reminded: false };\n }\n } catch {\n state = { callsSinceRemind: 0, reminded: false };\n }\n\n state.callsSinceRemind++;\n\n // Fire reminder on first write OR after debounce interval expires\n if (!state.reminded || state.callsSinceRemind >= DEBOUNCE_CALLS) {\n state.callsSinceRemind = 0;\n state.reminded = true;\n\n try {\n fs.writeFileSync(stateFile, JSON.stringify(state));\n } catch {\n // Silent fail -- never block hook execution\n }\n\n return {\n hookSpecificOutput: {\n hookEventName: 'PostToolUse',\n additionalContext: REMINDER_MESSAGE,\n },\n };\n }\n\n // Not time for a reminder yet\n try {\n fs.writeFileSync(stateFile, JSON.stringify(state));\n } catch {\n // Silent fail -- never block hook execution\n }\n\n return null;\n}\n\n// Standalone entry\nif (require.main === module) {\n readStdinJson<SyncReminderInput>((data) => {\n const result = processSyncReminder(data);\n if (result) {\n process.stdout.write(JSON.stringify(result));\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,SAAgB,cAAiB,UAAmC;CAClE,IAAI,QAAQ;AACZ,SAAQ,MAAM,YAAY,OAAO;AACjC,SAAQ,MAAM,GAAG,SAAS,UAAmB,SAAS,MAAO;AAC7D,SAAQ,MAAM,GAAG,aAAa;AAC5B,MAAI;AAEF,YADa,KAAK,MAAM,MAAM,CAChB;UACR;AAEN,WAAQ,KAAK,EAAE;;GAEjB;;;;;;;;;;;;;ACaJ,MAAa,iBAAiB;AAE9B,MAAM,mBACJ;AAEF,SAAgB,oBACd,MAC2B;CAC3B,MAAM,YAAY,KAAK;CACvB,MAAM,WAAW,KAAK,YAAY;AAElC,KAAI,CAAC,aAAa,CAAC,SACjB,QAAO;CAIT,MAAM,aAAaA,UAAK,UAAU,SAAS;CAG3C,MAAM,kBAAkB,GAAGA,UAAK,IAAI,WAAWA,UAAK;CACpD,MAAM,cAAc,GAAGA,UAAK,IAAI;AAChC,KACE,CAAC,WAAW,SAAS,gBAAgB,IACrC,CAAC,WAAW,SAAS,YAAY,CAEjC,QAAO;CAIT,MAAM,YAAYA,UAAK,KACrBC,QAAG,QAAQ,EACX,eAAe,UAAU,OAC1B;CAED,IAAI;AACJ,KAAI;AACF,MAAIC,QAAG,WAAW,UAAU,CAC1B,SAAQ,KAAK,MAAMA,QAAG,aAAa,WAAW,OAAO,CAAC;MAEtD,SAAQ;GAAE,kBAAkB;GAAG,UAAU;GAAO;SAE5C;AACN,UAAQ;GAAE,kBAAkB;GAAG,UAAU;GAAO;;AAGlD,OAAM;AAGN,KAAI,CAAC,MAAM,YAAY,MAAM,oBAAoB,gBAAgB;AAC/D,QAAM,mBAAmB;AACzB,QAAM,WAAW;AAEjB,MAAI;AACF,WAAG,cAAc,WAAW,KAAK,UAAU,MAAM,CAAC;UAC5C;AAIR,SAAO,EACL,oBAAoB;GAClB,eAAe;GACf,mBAAmB;GACpB,EACF;;AAIH,KAAI;AACF,UAAG,cAAc,WAAW,KAAK,UAAU,MAAM,CAAC;SAC5C;AAIR,QAAO;;AAIT,IAAI,QAAQ,SAAS,OACnB,gBAAkC,SAAS;CACzC,MAAM,SAAS,oBAAoB,KAAK;AACxC,KAAI,OACF,SAAQ,OAAO,MAAM,KAAK,UAAU,OAAO,CAAC;EAE9C"}
1
+ {"version":3,"file":"maxsim-sync-reminder.cjs","names":[],"sources":["../../../src/hooks/shared.ts","../../../src/hooks/maxsim-sync-reminder.ts"],"sourcesContent":["/**\n * Shared utilities for MAXSIM hooks.\n */\n\n/**\n * Read all stdin as a string, then invoke callback with parsed JSON.\n * Used by statusline and sync-reminder hooks.\n */\nexport function readStdinJson<T>(callback: (data: T) => void): void {\n let input = '';\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (chunk: string) => (input += chunk));\n process.stdin.on('end', () => {\n try {\n const data = JSON.parse(input) as T;\n callback(data);\n } catch {\n // Silent fail -- never block hook execution\n process.exit(0);\n }\n });\n}\n\n/** The '.claude' path segment -- template marker replaced during install. */\nexport const CLAUDE_DIR = '.claude';\n\n/**\n * Play a system sound for notifications. Fire-and-forget, never blocks.\n * Suppressed when MAXSIM_SOUND=0, CI=true, or SSH_CONNECTION is set.\n */\nexport function playSound(type: 'question' | 'stop'): void {\n try {\n if (\n process.env.MAXSIM_SOUND === '0' ||\n process.env.CI === 'true' ||\n process.env.SSH_CONNECTION\n ) {\n return;\n }\n\n const platform = process.platform;\n\n if (platform === 'win32') {\n const file =\n type === 'question'\n ? 'C:\\\\Windows\\\\Media\\\\notify.wav'\n : 'C:\\\\Windows\\\\Media\\\\chimes.wav';\n const { spawn } = require('node:child_process') as typeof import('node:child_process');\n const child = spawn(\n 'powershell',\n ['-NoProfile', '-Command', `(New-Object Media.SoundPlayer '${file}').PlaySync()`],\n { stdio: 'ignore', windowsHide: true, detached: true },\n );\n child.unref();\n } else if (platform === 'darwin') {\n const file =\n type === 'question'\n ? '/System/Library/Sounds/Ping.aiff'\n : '/System/Library/Sounds/Glass.aiff';\n const { spawn } = require('node:child_process') as typeof import('node:child_process');\n const child = spawn('afplay', [file], {\n stdio: 'ignore',\n detached: true,\n });\n child.unref();\n } else {\n // Linux / unknown — terminal bell fallback\n process.stderr.write('\\x07');\n }\n } catch {\n // Silent fail — never block hook execution\n }\n}\n","#!/usr/bin/env node\n/**\n * Sync Reminder Hook — No longer needed.\n * GitHub Issues is the sole source of truth for phase artifacts and todos.\n * Local .planning/ writes no longer need sync reminders.\n */\n\nimport { readStdinJson } from './shared';\n\nexport interface SyncReminderInput {\n session_id?: string;\n cwd?: string;\n tool_input?: { file_path?: string };\n}\n\nexport interface SyncReminderOutput {\n hookSpecificOutput: {\n hookEventName: string;\n additionalContext: string;\n };\n}\n\nexport const DEBOUNCE_CALLS = 10;\n\nexport function processSyncReminder(\n _data: SyncReminderInput,\n): SyncReminderOutput | null {\n // No-op: GitHub Issues is SSOT for phase artifacts and todos.\n return null;\n}\n\n// Standalone entry\nif (require.main === module) {\n readStdinJson<SyncReminderInput>((data) => {\n const result = processSyncReminder(data);\n if (result) {\n process.stdout.write(JSON.stringify(result));\n }\n });\n}\n"],"mappings":";;;;;;;;;;;AAQA,SAAgB,cAAiB,UAAmC;CAClE,IAAI,QAAQ;AACZ,SAAQ,MAAM,YAAY,OAAO;AACjC,SAAQ,MAAM,GAAG,SAAS,UAAmB,SAAS,MAAO;AAC7D,SAAQ,MAAM,GAAG,aAAa;AAC5B,MAAI;AAEF,YADa,KAAK,MAAM,MAAM,CAChB;UACR;AAEN,WAAQ,KAAK,EAAE;;GAEjB;;;;;;;;;;ACEJ,MAAa,iBAAiB;AAE9B,SAAgB,oBACd,OAC2B;AAE3B,QAAO;;AAIT,IAAI,QAAQ,SAAS,OACnB,gBAAkC,SAAS;CACzC,MAAM,SAAS,oBAAoB,KAAK;AACxC,KAAI,OACF,SAAQ,OAAO,MAAM,KAAK,UAAU,OAAO,CAAC;EAE9C"}
@@ -73,13 +73,14 @@ Every agent return MUST include these sections (enforced by the handoff-contract
73
73
 
74
74
  ## Model Selection
75
75
 
76
- Config `model_profile` (quality/balanced/budget) provides baseline model per agent type. Orchestrator can override per-spawn for complex tasks.
77
-
78
- | Agent | quality | balanced | budget |
79
- |-------|---------|----------|--------|
80
- | executor | opus | sonnet | sonnet |
81
- | planner | opus | sonnet | haiku |
82
- | researcher | opus | sonnet | haiku |
83
- | verifier | sonnet | sonnet | haiku |
76
+ Config `model_profile` (quality/balanced/budget/tokenburner) provides baseline model per agent type. Orchestrator can override per-spawn for complex tasks.
77
+
78
+ | Agent | quality | balanced | budget | tokenburner |
79
+ |-------|---------|----------|--------|-------------|
80
+ | executor | opus | sonnet | sonnet | opus |
81
+ | planner | opus | opus | sonnet | opus |
82
+ | researcher | opus | sonnet | haiku | opus |
83
+ | verifier | sonnet | sonnet | haiku | opus |
84
+ | debugger | sonnet | sonnet | haiku | opus |
84
85
 
85
86
  Model is set via `model: inherit` in agent frontmatter (uses session model) or explicit override in orchestrator spawn.
@@ -11,7 +11,7 @@ skills:
11
11
  - evidence-collection
12
12
  - commit-conventions
13
13
  available_skills:
14
- | github-artifact-protocol | .skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
14
+ | github-artifact-protocol | ~/.claude/skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
15
15
  ---
16
16
 
17
17
  You are a plan executor. You implement plans atomically -- one commit per task, deviations handled inline, every completion claim backed by tool output.
@@ -10,7 +10,7 @@ skills:
10
10
  - handoff-contract
11
11
  - input-validation
12
12
  available_skills:
13
- | github-artifact-protocol | .skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
13
+ | github-artifact-protocol | ~/.claude/skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
14
14
  ---
15
15
 
16
16
  You are a plan creator. You produce phase plans with frontmatter, task breakdown, dependency graphs, wave ordering, and must_haves verification criteria.
@@ -12,7 +12,7 @@ skills:
12
12
  - evidence-collection
13
13
  - handoff-contract
14
14
  available_skills:
15
- | github-artifact-protocol | .skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
15
+ | github-artifact-protocol | ~/.claude/skills/github-artifact-protocol/SKILL.md | When reading from or writing to GitHub Issues |
16
16
  ---
17
17
 
18
18
  You are a verifier. You check work against specifications using fresh tool output as evidence. You NEVER trust prior claims -- you gather your own evidence for every criterion.
@@ -29,8 +29,8 @@ Execute the phase state machine: Execute all plans in wave order, auto-verify, r
29
29
  </objective>
30
30
 
31
31
  <execution_context>
32
- @./workflows/execute.md
33
- @./references/ui-brand.md
32
+ @~/.claude/maxsim/workflows/execute.md
33
+ @~/.claude/maxsim/references/ui-brand.md
34
34
  </execution_context>
35
35
 
36
36
  <context>
@@ -40,6 +40,6 @@ Context files are resolved inside the workflow via `maxsim-tools init execute-ph
40
40
  </context>
41
41
 
42
42
  <process>
43
- Execute the execute workflow from @./workflows/execute.md end-to-end.
43
+ Execute the execute workflow from @~/.claude/maxsim/workflows/execute.md end-to-end.
44
44
  Preserve all workflow gates (state detection, wave execution, verification, retry loop, re-entry flow).
45
45
  </process>
@@ -21,9 +21,9 @@ Show + Act pattern: display detection reasoning, then act. No arguments -- pure
21
21
  </objective>
22
22
 
23
23
  <execution_context>
24
- @./workflows/go.md
24
+ @~/.claude/maxsim/workflows/go.md
25
25
  </execution_context>
26
26
 
27
27
  <process>
28
- Execute the go workflow from @./workflows/go.md end-to-end.
28
+ Execute the go workflow from @~/.claude/maxsim/workflows/go.md end-to-end.
29
29
  </process>
@@ -13,10 +13,10 @@ Output ONLY the reference content below. Do NOT add:
13
13
  </objective>
14
14
 
15
15
  <execution_context>
16
- @./workflows/help.md
16
+ @~/.claude/maxsim/workflows/help.md
17
17
  </execution_context>
18
18
 
19
19
  <process>
20
- Output the complete MAXSIM command reference from @./workflows/help.md.
20
+ Output the complete MAXSIM command reference from @~/.claude/maxsim/workflows/help.md.
21
21
  Display directly -- no additions or modifications.
22
22
  </process>
@@ -38,15 +38,15 @@ Unified project initialization. Detects whether this is a new project, existing
38
38
  </objective>
39
39
 
40
40
  <execution_context>
41
- @./workflows/init.md
42
- @./references/questioning.md
43
- @./references/thinking-partner.md
44
- @./references/ui-brand.md
45
- @./templates/project.md
46
- @./templates/requirements.md
41
+ @~/.claude/maxsim/workflows/init.md
42
+ @~/.claude/maxsim/references/questioning.md
43
+ @~/.claude/maxsim/references/thinking-partner.md
44
+ @~/.claude/maxsim/references/ui-brand.md
45
+ @~/.claude/maxsim/templates/project.md
46
+ @~/.claude/maxsim/templates/requirements.md
47
47
  </execution_context>
48
48
 
49
49
  <process>
50
- Execute the init workflow from @./workflows/init.md end-to-end.
50
+ Execute the init workflow from @~/.claude/maxsim/workflows/init.md end-to-end.
51
51
  Pass $ARGUMENTS through to the workflow for flag handling (--auto).
52
52
  </process>
@@ -30,8 +30,8 @@ Execute the plan state machine: Discussion -> Research -> Planning. Each stage p
30
30
  </objective>
31
31
 
32
32
  <execution_context>
33
- @./workflows/plan.md
34
- @./references/ui-brand.md
33
+ @~/.claude/maxsim/workflows/plan.md
34
+ @~/.claude/maxsim/references/ui-brand.md
35
35
  </execution_context>
36
36
 
37
37
  <context>
@@ -45,6 +45,6 @@ Context files are resolved inside the workflow via `maxsim-tools init plan-phase
45
45
  </context>
46
46
 
47
47
  <process>
48
- Execute the plan workflow from @./workflows/plan.md end-to-end.
48
+ Execute the plan workflow from @~/.claude/maxsim/workflows/plan.md end-to-end.
49
49
  Preserve all workflow gates (stage detection, discussion, research, planning, gate confirmations, re-entry flow).
50
50
  </process>
@@ -16,10 +16,10 @@ Provides situational awareness before continuing work, detects phase gaps, and i
16
16
  </objective>
17
17
 
18
18
  <execution_context>
19
- @./workflows/progress.md
19
+ @~/.claude/maxsim/workflows/progress.md
20
20
  </execution_context>
21
21
 
22
22
  <process>
23
- Execute the progress workflow from @./workflows/progress.md end-to-end.
23
+ Execute the progress workflow from @~/.claude/maxsim/workflows/progress.md end-to-end.
24
24
  Preserve all routing logic (Routes A through F) and edge case handling.
25
25
  </process>
@@ -28,7 +28,7 @@ Quick mode is the same system with a shorter path:
28
28
  </objective>
29
29
 
30
30
  <execution_context>
31
- @./workflows/quick.md
31
+ @~/.claude/maxsim/workflows/quick.md
32
32
  </execution_context>
33
33
 
34
34
  <context>
@@ -38,6 +38,6 @@ Context files are resolved inside the workflow (`init quick`) and delegated via
38
38
  </context>
39
39
 
40
40
  <process>
41
- Execute the quick workflow from @./workflows/quick.md end-to-end.
41
+ Execute the quick workflow from @~/.claude/maxsim/workflows/quick.md end-to-end.
42
42
  Preserve all workflow gates (validation, task description, planning, execution, state updates, commits).
43
43
  </process>
@@ -21,11 +21,11 @@ Routes to the settings workflow which handles:
21
21
  </objective>
22
22
 
23
23
  <execution_context>
24
- @./workflows/settings.md
24
+ @~/.claude/maxsim/workflows/settings.md
25
25
  </execution_context>
26
26
 
27
27
  <process>
28
- **Follow the settings workflow** from `@./workflows/settings.md`.
28
+ **Follow the settings workflow** from `@~/.claude/maxsim/workflows/settings.md`.
29
29
 
30
30
  The workflow handles all logic including:
31
31
  1. Config file creation with defaults if missing
@@ -12,7 +12,7 @@ Default: `balanced` if not set or config missing.
12
12
 
13
13
  ## Lookup Table
14
14
 
15
- @./references/model-profiles.md
15
+ @~/.claude/maxsim/references/model-profiles.md
16
16
 
17
17
  Look up the agent in the table for the resolved profile. Pass the model parameter to Task calls:
18
18
 
@@ -44,7 +44,7 @@ You are a thinking partner, not a task executor. Your role is to help the user a
44
44
 
45
45
  **Phase discussion** (discuss-phase): Focus on implementation decisions, gray area resolution, downstream impact. Challenge hand-wavy integration plans. Push for concrete acceptance criteria per deliverable.
46
46
 
47
- **Todo/bug triage** (add-todo --discuss, check-todos brainstorm): Focus on problem definition, scope containment, approach selection. Shorter rounds — 2-3 questions vs 4. Time-boxed to 20-30 min. Don't over-explore — capture enough to unblock, not to solve.
47
+ **Todo/bug triage** (/maxsim:quick --todo triage): Focus on problem definition, scope containment, approach selection. Shorter rounds — 2-3 questions vs 4. Time-boxed to 20-30 min. Don't over-explore — capture enough to unblock, not to solve.
48
48
 
49
49
  **General discussion**: Default behaviors from core_behaviors apply. Read the energy — if the user is exploring, explore with them. If they want a quick answer, give it.
50
50
 
@@ -600,7 +600,7 @@ Some things can't be verified programmatically. Flag these for human testing:
600
600
 
601
601
  For automation-first checkpoint patterns, server lifecycle management, CLI installation handling, and error recovery protocols, see:
602
602
 
603
- **@./references/checkpoints.md** → `<automation_reference>` section
603
+ **@~/.claude/maxsim/references/checkpoints.md** → `<automation_reference>` section
604
604
 
605
605
  Key principles:
606
606
  - Claude sets up verification environment BEFORE presenting checkpoints
@@ -64,7 +64,7 @@ Add `--raw` to get machine-readable JSON output (no formatting).
64
64
  | Command | Description |
65
65
  |---------|-------------|
66
66
  | `github add-todo --title "T" [--description "D"] [--area A] [--phase P]` | Create todo issue |
67
- | `github complete-todo --todo-id "file.md" [--github-issue-number N]` | Complete todo |
67
+ | `github complete-todo --todo-id "N" [--github-issue-number N]` | Complete todo |
68
68
  | `github list-todos [--area A] [--status pending\|completed\|all]` | List todos |
69
69
 
70
70
  ### Convenience
@@ -216,7 +216,7 @@ maxsim/
216
216
 
217
217
  **New Workflow:**
218
218
  - Implementation: `maxsim/workflows/{name}.md`
219
- - Usage: Reference from command with `@./workflows/{name}.md`
219
+ - Usage: Reference from command with `@~/.claude/maxsim/workflows/{name}.md`
220
220
 
221
221
  **New Reference Document:**
222
222
  - Implementation: `maxsim/references/{name}.md`
@@ -38,10 +38,10 @@ Output: [What artifacts will be created]
38
38
  </objective>
39
39
 
40
40
  <execution_context>
41
- @./workflows/execute-plan.md
42
- @./templates/summary.md
41
+ @~/.claude/maxsim/workflows/execute-plan.md
42
+ @~/.claude/maxsim/templates/summary.md
43
43
  [If plan contains checkpoint tasks (type="checkpoint:*"), add:]
44
- @./references/checkpoints.md
44
+ @~/.claude/maxsim/references/checkpoints.md
45
45
  </execution_context>
46
46
 
47
47
  <context>
@@ -76,7 +76,7 @@ Output: [What artifacts will be created]
76
76
  <done>[Acceptance criteria]</done>
77
77
  </task>
78
78
 
79
- <!-- For checkpoint task examples and patterns, see @./references/checkpoints.md -->
79
+ <!-- For checkpoint task examples and patterns, see @~/.claude/maxsim/references/checkpoints.md -->
80
80
  <!-- Key rule: Claude starts dev server BEFORE human-verify checkpoints. User only visits URLs. -->
81
81
 
82
82
  <task type="checkpoint:decision" gate="blocking">
@@ -374,9 +374,9 @@ Output: Working dashboard component.
374
374
  </objective>
375
375
 
376
376
  <execution_context>
377
- @./workflows/execute-plan.md
378
- @./templates/summary.md
379
- @./references/checkpoints.md
377
+ @~/.claude/maxsim/workflows/execute-plan.md
378
+ @~/.claude/maxsim/templates/summary.md
379
+ @~/.claude/maxsim/references/checkpoints.md
380
380
  </execution_context>
381
381
 
382
382
  <context>
@@ -56,7 +56,7 @@ Recent decisions affecting current work:
56
56
 
57
57
  ### Pending Todos
58
58
 
59
- [From .planning/todos/pending/ — ideas captured during sessions]
59
+ [From GitHub Issues with label 'todo' — ideas captured during sessions]
60
60
 
61
61
  None yet.
62
62
 
@@ -145,9 +145,8 @@ Updated after each plan completion.
145
145
 
146
146
  **Decisions:** Reference to PROJECT.md Key Decisions table, plus recent decisions summary for quick access. Full decision log lives in PROJECT.md.
147
147
 
148
- **Pending Todos:** Ideas captured via /maxsim:quick --todo
148
+ **Pending Todos:** Ideas captured via /maxsim:quick --todo (tracked as GitHub Issues)
149
149
  - Count of pending todos
150
- - Reference to .planning/todos/pending/
151
150
  - Brief list if few, count if many (e.g., "5 pending todos — see /maxsim:quick --todo")
152
151
 
153
152
  **Blockers/Concerns:** From "Next Phase Readiness" sections
@@ -11,7 +11,7 @@ You are a thinking partner, not an interviewer. The user is the visionary — yo
11
11
  </purpose>
12
12
 
13
13
  <required_reading>
14
- @./references/thinking-partner.md
14
+ @~/.claude/maxsim/references/thinking-partner.md
15
15
  </required_reading>
16
16
 
17
17
  <tool_mandate>
@@ -612,9 +612,9 @@ Task(
612
612
  </objective>
613
613
 
614
614
  <execution_context>
615
- @./workflows/plan.md
616
- @./references/ui-brand.md
617
- @./references/model-profile-resolution.md
615
+ @~/.claude/maxsim/workflows/plan.md
616
+ @~/.claude/maxsim/references/ui-brand.md
617
+ @~/.claude/maxsim/references/model-profile-resolution.md
618
618
  </execution_context>
619
619
 
620
620
  <arguments>
@@ -6,7 +6,7 @@ Execute a phase plan (loaded from GitHub issue comment or local PLAN.md) and pos
6
6
  Read STATE.md before any operation to load project context.
7
7
  Read config.json for planning behavior settings.
8
8
 
9
- @./references/git-integration.md
9
+ @~/.claude/maxsim/references/git-integration.md
10
10
  </required_reading>
11
11
 
12
12
  MAXSIM provides CLI commands (`github create-phase`, `github list-phases`, etc.) for structured operations.
@@ -8,7 +8,7 @@ Before executing any step in this workflow, verify:
8
8
  Thin orchestrator for the /maxsim:execute state machine. Detects the current state of a phase (already done, needs verification, needs execution), delegates per-plan execution to execute-plan.md subagents, runs auto-verification, and handles retry with gap closure.
9
9
 
10
10
  This file is the ORCHESTRATOR ONLY. Per-plan execution logic lives in:
11
- - @./workflows/execute-plan.md (per-plan subagent execution)
11
+ - @~/.claude/maxsim/workflows/execute-plan.md (per-plan subagent execution)
12
12
 
13
13
  Verification is handled inline (spawning verifier agent) since it is a stage of this workflow, not a separate command.
14
14
  </purpose>
@@ -213,10 +213,10 @@ Execute each wave in sequence. Within a wave: parallel if `parallelization` is t
213
213
  </objective>
214
214
 
215
215
  <execution_context>
216
- @./workflows/execute-plan.md
217
- @./templates/summary.md
218
- @./references/checkpoints.md
219
- @./references/tdd.md
216
+ @~/.claude/maxsim/workflows/execute-plan.md
217
+ @~/.claude/maxsim/templates/summary.md
218
+ @~/.claude/maxsim/references/checkpoints.md
219
+ @~/.claude/maxsim/references/tdd.md
220
220
  </execution_context>
221
221
 
222
222
  <github_context>
@@ -6,8 +6,8 @@ Output: `.planning/` directory with config.json, PROJECT.md, REQUIREMENTS.md, RO
6
6
 
7
7
  <required_reading>
8
8
  Read all files referenced by the invoking prompt's execution_context before starting.
9
- @./references/thinking-partner.md
10
- @./references/questioning.md
9
+ @~/.claude/maxsim/references/thinking-partner.md
10
+ @~/.claude/maxsim/references/questioning.md
11
11
  </required_reading>
12
12
 
13
13
  <auto_mode>
@@ -1,10 +1,10 @@
1
1
  <purpose>
2
2
 
3
3
  Unified initialization router. Detects the current project state and delegates to the appropriate sub-workflow:
4
- - **New project** (no .planning/) -> delegates to @./workflows/new-project.md
5
- - **Existing project** (.planning/ exists, no ROADMAP.md) -> delegates to @./workflows/init-existing.md
4
+ - **New project** (no .planning/) -> delegates to @~/.claude/maxsim/workflows/new-project.md
5
+ - **Existing project** (.planning/ exists, no ROADMAP.md) -> delegates to @~/.claude/maxsim/workflows/init-existing.md
6
6
  - **Active milestone** (.planning/ + ROADMAP.md, phases in progress) -> shows status, offers options
7
- - **Milestone complete** (all phases done) -> offers completion or new milestone via @./workflows/new-milestone.md
7
+ - **Milestone complete** (all phases done) -> offers completion or new milestone via @~/.claude/maxsim/workflows/new-milestone.md
8
8
 
9
9
  This file is a THIN ROUTER. All heavy logic lives in the sub-workflows.
10
10
 
@@ -81,7 +81,7 @@ echo "$INIT_CONTEXT"
81
81
 
82
82
  Save this JSON output — the sub-workflow will use it as `INIT_CONTEXT` and skip its own init call.
83
83
 
84
- Now delegate to @./workflows/new-project.md — execute the full new-project workflow end-to-end. The `INIT_CONTEXT` JSON is already loaded; the sub-workflow will detect this and skip Step 1's CLI call.
84
+ Now delegate to @~/.claude/maxsim/workflows/new-project.md — execute the full new-project workflow end-to-end. The `INIT_CONTEXT` JSON is already loaded; the sub-workflow will detect this and skip Step 1's CLI call.
85
85
 
86
86
  Pass through:
87
87
  - `--auto` flag if set
@@ -114,7 +114,7 @@ echo "$INIT_CONTEXT"
114
114
 
115
115
  Save this JSON output — the sub-workflow will use it as `INIT_CONTEXT` and skip its own init call.
116
116
 
117
- Now delegate to @./workflows/init-existing.md — execute the full init-existing workflow end-to-end. The `INIT_CONTEXT` JSON is already loaded; the sub-workflow will detect this and skip Step 1's CLI call.
117
+ Now delegate to @~/.claude/maxsim/workflows/init-existing.md — execute the full init-existing workflow end-to-end. The `INIT_CONTEXT` JSON is already loaded; the sub-workflow will detect this and skip Step 1's CLI call.
118
118
 
119
119
  Pass through:
120
120
  - `--auto` flag if set
@@ -159,7 +159,7 @@ Then present options conversationally (natural language, not AskUserQuestion):
159
159
  - If verification is pending: "Verify the current phase"
160
160
 
161
161
  2. **Start a new milestone** -- If the user wants to pivot or start fresh:
162
- - Delegate to @./workflows/new-milestone.md for the milestone creation flow
162
+ - Delegate to @~/.claude/maxsim/workflows/new-milestone.md for the milestone creation flow
163
163
 
164
164
  3. **View detailed progress** -- Direct to `/maxsim:progress` for full status
165
165
 
@@ -189,12 +189,12 @@ Then present options conversationally:
189
189
  **Options:**
190
190
 
191
191
  1. **Complete and archive this milestone** -- Run the milestone completion flow:
192
- - Delegate to @./workflows/new-milestone.md with completion mode
192
+ - Delegate to @~/.claude/maxsim/workflows/new-milestone.md with completion mode
193
193
  - Archives current milestone data
194
194
  - Updates MILESTONES.md with summary
195
195
 
196
196
  2. **Start a new milestone** -- Begin the next cycle:
197
- - Delegate to @./workflows/new-milestone.md for creation flow
197
+ - Delegate to @~/.claude/maxsim/workflows/new-milestone.md for creation flow
198
198
  - Gathers new milestone goals
199
199
  - Creates fresh REQUIREMENTS.md and ROADMAP.md
200
200
 
@@ -4,8 +4,8 @@ Initialize a new project through unified flow: questioning, research (optional),
4
4
 
5
5
  <required_reading>
6
6
  Read all files referenced by the invoking prompt's execution_context before starting.
7
- @./references/thinking-partner.md
8
- @./references/questioning.md
7
+ @~/.claude/maxsim/references/thinking-partner.md
8
+ @~/.claude/maxsim/references/questioning.md
9
9
  </required_reading>
10
10
 
11
11
  <auto_mode>
@@ -7,7 +7,7 @@ You are a thinking partner, not an interviewer. The user is the visionary -- you
7
7
  </purpose>
8
8
 
9
9
  <required_reading>
10
- @./references/thinking-partner.md
10
+ @~/.claude/maxsim/references/thinking-partner.md
11
11
  </required_reading>
12
12
 
13
13
  <downstream_awareness>
@@ -8,9 +8,9 @@ Before executing any step in this workflow, verify:
8
8
  Thin orchestrator for the /maxsim:plan state machine. Detects the current stage of a phase (Discussion, Research, Planning), delegates to stage sub-workflows, shows gate confirmations between stages, and handles re-entry on already-planned phases.
9
9
 
10
10
  This file is the ORCHESTRATOR ONLY. Stage-specific logic lives in:
11
- - @./workflows/plan-discuss.md (Discussion stage)
12
- - @./workflows/plan-research.md (Research stage)
13
- - @./workflows/plan-create.md (Planning stage)
11
+ - @~/.claude/maxsim/workflows/plan-discuss.md (Discussion stage)
12
+ - @~/.claude/maxsim/workflows/plan-research.md (Research stage)
13
+ - @~/.claude/maxsim/workflows/plan-create.md (Planning stage)
14
14
  </purpose>
15
15
 
16
16
  <process>
@@ -97,7 +97,7 @@ Wait for user choice via natural conversation.
97
97
 
98
98
  Delegate to the discussion sub-workflow for full discussion logic:
99
99
 
100
- @./workflows/plan-discuss.md
100
+ @~/.claude/maxsim/workflows/plan-discuss.md
101
101
 
102
102
  Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_slug`, `commit_docs`, `roadmap_path`, `state_path`, `phase_issue_number`.
103
103
 
@@ -132,7 +132,7 @@ Wait for user response via natural conversation (not AskUserQuestion).
132
132
 
133
133
  Delegate to the research sub-workflow:
134
134
 
135
- @./workflows/plan-research.md
135
+ @~/.claude/maxsim/workflows/plan-research.md
136
136
 
137
137
  Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_slug`, `commit_docs`, `researcher_model`, `research_enabled`, `has_research`, `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `phase_req_ids`, `phase_issue_number`. Also pass the `--force-research` flag if present in $ARGUMENTS.
138
138
 
@@ -164,7 +164,7 @@ Wait for user response via natural conversation.
164
164
 
165
165
  Delegate to the planning sub-workflow:
166
166
 
167
- @./workflows/plan-create.md
167
+ @~/.claude/maxsim/workflows/plan-create.md
168
168
 
169
169
  Pass context: `phase_number`, `phase_name`, `phase_dir`, `padded_phase`, `phase_slug`, `commit_docs`, `planner_model`, `checker_model`, `plan_checker_enabled`, `state_path`, `roadmap_path`, `requirements_path`, `context_path`, `research_path`, `phase_req_ids`, `phase_issue_number`. Also pass the `--skip-verify` flag if present in $ARGUMENTS.
170
170