@engramm/dev-workflow 0.1.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 (234) hide show
  1. package/dist/agents/context-builder.d.ts +11 -0
  2. package/dist/agents/context-builder.d.ts.map +1 -0
  3. package/dist/agents/context-builder.js +62 -0
  4. package/dist/agents/context-builder.js.map +1 -0
  5. package/dist/agents/loader.d.ts +3 -0
  6. package/dist/agents/loader.d.ts.map +1 -0
  7. package/dist/agents/loader.js +54 -0
  8. package/dist/agents/loader.js.map +1 -0
  9. package/dist/agents/registry.d.ts +10 -0
  10. package/dist/agents/registry.d.ts.map +1 -0
  11. package/dist/agents/registry.js +35 -0
  12. package/dist/agents/registry.js.map +1 -0
  13. package/dist/agents/types.d.ts +20 -0
  14. package/dist/agents/types.d.ts.map +1 -0
  15. package/dist/agents/types.js +2 -0
  16. package/dist/agents/types.js.map +1 -0
  17. package/dist/cli/agent.d.ts +2 -0
  18. package/dist/cli/agent.d.ts.map +1 -0
  19. package/dist/cli/agent.js +101 -0
  20. package/dist/cli/agent.js.map +1 -0
  21. package/dist/cli/config.d.ts +2 -0
  22. package/dist/cli/config.d.ts.map +1 -0
  23. package/dist/cli/config.js +100 -0
  24. package/dist/cli/config.js.map +1 -0
  25. package/dist/cli/doctor.d.ts +2 -0
  26. package/dist/cli/doctor.d.ts.map +1 -0
  27. package/dist/cli/doctor.js +123 -0
  28. package/dist/cli/doctor.js.map +1 -0
  29. package/dist/cli/index.d.ts +3 -0
  30. package/dist/cli/index.d.ts.map +1 -0
  31. package/dist/cli/index.js +94 -0
  32. package/dist/cli/index.js.map +1 -0
  33. package/dist/cli/init.d.ts +7 -0
  34. package/dist/cli/init.d.ts.map +1 -0
  35. package/dist/cli/init.js +177 -0
  36. package/dist/cli/init.js.map +1 -0
  37. package/dist/cli/run.d.ts +4 -0
  38. package/dist/cli/run.d.ts.map +1 -0
  39. package/dist/cli/run.js +191 -0
  40. package/dist/cli/run.js.map +1 -0
  41. package/dist/cli/search.d.ts +2 -0
  42. package/dist/cli/search.d.ts.map +1 -0
  43. package/dist/cli/search.js +75 -0
  44. package/dist/cli/search.js.map +1 -0
  45. package/dist/cli/serve.d.ts +2 -0
  46. package/dist/cli/serve.d.ts.map +1 -0
  47. package/dist/cli/serve.js +34 -0
  48. package/dist/cli/serve.js.map +1 -0
  49. package/dist/cli/status.d.ts +2 -0
  50. package/dist/cli/status.d.ts.map +1 -0
  51. package/dist/cli/status.js +89 -0
  52. package/dist/cli/status.js.map +1 -0
  53. package/dist/cli/task.d.ts +2 -0
  54. package/dist/cli/task.d.ts.map +1 -0
  55. package/dist/cli/task.js +153 -0
  56. package/dist/cli/task.js.map +1 -0
  57. package/dist/cli/vault-io.d.ts +3 -0
  58. package/dist/cli/vault-io.d.ts.map +1 -0
  59. package/dist/cli/vault-io.js +75 -0
  60. package/dist/cli/vault-io.js.map +1 -0
  61. package/dist/hooks/post-edit.d.ts +3 -0
  62. package/dist/hooks/post-edit.d.ts.map +1 -0
  63. package/dist/hooks/post-edit.js +43 -0
  64. package/dist/hooks/post-edit.js.map +1 -0
  65. package/dist/hooks/post-task.d.ts +3 -0
  66. package/dist/hooks/post-task.d.ts.map +1 -0
  67. package/dist/hooks/post-task.js +25 -0
  68. package/dist/hooks/post-task.js.map +1 -0
  69. package/dist/hooks/pre-compact.d.ts +7 -0
  70. package/dist/hooks/pre-compact.d.ts.map +1 -0
  71. package/dist/hooks/pre-compact.js +34 -0
  72. package/dist/hooks/pre-compact.js.map +1 -0
  73. package/dist/hooks/session-end.d.ts +3 -0
  74. package/dist/hooks/session-end.d.ts.map +1 -0
  75. package/dist/hooks/session-end.js +80 -0
  76. package/dist/hooks/session-end.js.map +1 -0
  77. package/dist/hooks/session-start.d.ts +3 -0
  78. package/dist/hooks/session-start.d.ts.map +1 -0
  79. package/dist/hooks/session-start.js +108 -0
  80. package/dist/hooks/session-start.js.map +1 -0
  81. package/dist/index.d.ts +33 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +27 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/intelligence/collector.d.ts +12 -0
  86. package/dist/intelligence/collector.d.ts.map +1 -0
  87. package/dist/intelligence/collector.js +93 -0
  88. package/dist/intelligence/collector.js.map +1 -0
  89. package/dist/intelligence/ranker.d.ts +5 -0
  90. package/dist/intelligence/ranker.d.ts.map +1 -0
  91. package/dist/intelligence/ranker.js +107 -0
  92. package/dist/intelligence/ranker.js.map +1 -0
  93. package/dist/intelligence/store.d.ts +17 -0
  94. package/dist/intelligence/store.d.ts.map +1 -0
  95. package/dist/intelligence/store.js +75 -0
  96. package/dist/intelligence/store.js.map +1 -0
  97. package/dist/intelligence/sync.d.ts +3 -0
  98. package/dist/intelligence/sync.d.ts.map +1 -0
  99. package/dist/intelligence/sync.js +83 -0
  100. package/dist/intelligence/sync.js.map +1 -0
  101. package/dist/intelligence/types.d.ts +35 -0
  102. package/dist/intelligence/types.d.ts.map +1 -0
  103. package/dist/intelligence/types.js +2 -0
  104. package/dist/intelligence/types.js.map +1 -0
  105. package/dist/lib/context.d.ts +3 -0
  106. package/dist/lib/context.d.ts.map +1 -0
  107. package/dist/lib/context.js +56 -0
  108. package/dist/lib/context.js.map +1 -0
  109. package/dist/lib/conventions-detect.d.ts +12 -0
  110. package/dist/lib/conventions-detect.d.ts.map +1 -0
  111. package/dist/lib/conventions-detect.js +337 -0
  112. package/dist/lib/conventions-detect.js.map +1 -0
  113. package/dist/lib/frontmatter.d.ts +7 -0
  114. package/dist/lib/frontmatter.d.ts.map +1 -0
  115. package/dist/lib/frontmatter.js +45 -0
  116. package/dist/lib/frontmatter.js.map +1 -0
  117. package/dist/lib/fs-helpers.d.ts +6 -0
  118. package/dist/lib/fs-helpers.d.ts.map +1 -0
  119. package/dist/lib/fs-helpers.js +24 -0
  120. package/dist/lib/fs-helpers.js.map +1 -0
  121. package/dist/lib/interpolate.d.ts +2 -0
  122. package/dist/lib/interpolate.d.ts.map +1 -0
  123. package/dist/lib/interpolate.js +4 -0
  124. package/dist/lib/interpolate.js.map +1 -0
  125. package/dist/lib/output.d.ts +27 -0
  126. package/dist/lib/output.d.ts.map +1 -0
  127. package/dist/lib/output.js +85 -0
  128. package/dist/lib/output.js.map +1 -0
  129. package/dist/lib/reader.d.ts +14 -0
  130. package/dist/lib/reader.d.ts.map +1 -0
  131. package/dist/lib/reader.js +75 -0
  132. package/dist/lib/reader.js.map +1 -0
  133. package/dist/lib/stack-detect.d.ts +12 -0
  134. package/dist/lib/stack-detect.d.ts.map +1 -0
  135. package/dist/lib/stack-detect.js +302 -0
  136. package/dist/lib/stack-detect.js.map +1 -0
  137. package/dist/lib/statusline.d.ts +3 -0
  138. package/dist/lib/statusline.d.ts.map +1 -0
  139. package/dist/lib/statusline.js +40 -0
  140. package/dist/lib/statusline.js.map +1 -0
  141. package/dist/lib/templates.d.ts +3 -0
  142. package/dist/lib/templates.d.ts.map +1 -0
  143. package/dist/lib/templates.js +174 -0
  144. package/dist/lib/templates.js.map +1 -0
  145. package/dist/lib/types.d.ts +44 -0
  146. package/dist/lib/types.d.ts.map +1 -0
  147. package/dist/lib/types.js +2 -0
  148. package/dist/lib/types.js.map +1 -0
  149. package/dist/lib/writer.d.ts +13 -0
  150. package/dist/lib/writer.d.ts.map +1 -0
  151. package/dist/lib/writer.js +97 -0
  152. package/dist/lib/writer.js.map +1 -0
  153. package/dist/mcp/handlers.d.ts +34 -0
  154. package/dist/mcp/handlers.d.ts.map +1 -0
  155. package/dist/mcp/handlers.js +256 -0
  156. package/dist/mcp/handlers.js.map +1 -0
  157. package/dist/mcp/server.d.ts +20 -0
  158. package/dist/mcp/server.d.ts.map +1 -0
  159. package/dist/mcp/server.js +89 -0
  160. package/dist/mcp/server.js.map +1 -0
  161. package/dist/mcp/tools.d.ts +11 -0
  162. package/dist/mcp/tools.d.ts.map +1 -0
  163. package/dist/mcp/tools.js +148 -0
  164. package/dist/mcp/tools.js.map +1 -0
  165. package/dist/tasks/manager.d.ts +14 -0
  166. package/dist/tasks/manager.d.ts.map +1 -0
  167. package/dist/tasks/manager.js +151 -0
  168. package/dist/tasks/manager.js.map +1 -0
  169. package/dist/tasks/tracker.d.ts +11 -0
  170. package/dist/tasks/tracker.d.ts.map +1 -0
  171. package/dist/tasks/tracker.js +31 -0
  172. package/dist/tasks/tracker.js.map +1 -0
  173. package/dist/tasks/types.d.ts +19 -0
  174. package/dist/tasks/types.d.ts.map +1 -0
  175. package/dist/tasks/types.js +2 -0
  176. package/dist/tasks/types.js.map +1 -0
  177. package/dist/workflow/builtin.d.ts +4 -0
  178. package/dist/workflow/builtin.d.ts.map +1 -0
  179. package/dist/workflow/builtin.js +93 -0
  180. package/dist/workflow/builtin.js.map +1 -0
  181. package/dist/workflow/engine.d.ts +38 -0
  182. package/dist/workflow/engine.d.ts.map +1 -0
  183. package/dist/workflow/engine.js +217 -0
  184. package/dist/workflow/engine.js.map +1 -0
  185. package/dist/workflow/loader.d.ts +4 -0
  186. package/dist/workflow/loader.d.ts.map +1 -0
  187. package/dist/workflow/loader.js +106 -0
  188. package/dist/workflow/loader.js.map +1 -0
  189. package/dist/workflow/state.d.ts +11 -0
  190. package/dist/workflow/state.d.ts.map +1 -0
  191. package/dist/workflow/state.js +49 -0
  192. package/dist/workflow/state.js.map +1 -0
  193. package/dist/workflow/types.d.ts +36 -0
  194. package/dist/workflow/types.d.ts.map +1 -0
  195. package/dist/workflow/types.js +2 -0
  196. package/dist/workflow/types.js.map +1 -0
  197. package/package.json +54 -0
  198. package/templates/agents/architect.md +46 -0
  199. package/templates/agents/coder.md +46 -0
  200. package/templates/agents/committer.md +29 -0
  201. package/templates/agents/debugger.md +54 -0
  202. package/templates/agents/planner.md +45 -0
  203. package/templates/agents/reader.md +48 -0
  204. package/templates/agents/reviewer.md +48 -0
  205. package/templates/agents/tester.md +41 -0
  206. package/templates/claude/agents/researcher.md +47 -0
  207. package/templates/claude/agents/writer.md +29 -0
  208. package/templates/claude/commands/git/changelog.md +41 -0
  209. package/templates/claude/commands/git/merge.md +37 -0
  210. package/templates/claude/commands/git/new-branch.md +34 -0
  211. package/templates/claude/commands/git/pr-review.md +64 -0
  212. package/templates/claude/commands/session/handover.md +49 -0
  213. package/templates/claude/commands/session/resume.md +43 -0
  214. package/templates/claude/commands/session/review.md +81 -0
  215. package/templates/claude/commands/task.md +52 -0
  216. package/templates/claude/commands/vault/adr.md +39 -0
  217. package/templates/claude/commands/vault/analyze.md +110 -0
  218. package/templates/claude/commands/vault/bug.md +31 -0
  219. package/templates/claude/commands/vault/debt.md +28 -0
  220. package/templates/claude/commands/vault/deps.md +36 -0
  221. package/templates/claude/commands/vault/from-spec.md +306 -0
  222. package/templates/claude/commands/vault/search.md +31 -0
  223. package/templates/claude/commands/vault/security-scan.md +50 -0
  224. package/templates/claude/commands/vault/test-gaps.md +38 -0
  225. package/templates/claude/commands/workflow/dev.md +913 -0
  226. package/templates/claude/commands/workflow.md +47 -0
  227. package/templates/claude/settings.json +52 -0
  228. package/templates/claude/skills/obsidian-markdown/SKILL.md +196 -0
  229. package/templates/claude/skills/obsidian-markdown/references/CALLOUTS.md +58 -0
  230. package/templates/claude/skills/obsidian-markdown/references/EMBEDS.md +63 -0
  231. package/templates/claude/skills/obsidian-markdown/references/PROPERTIES.md +61 -0
  232. package/templates/workflows/deploy.yaml +21 -0
  233. package/templates/workflows/release.yaml +26 -0
  234. package/templates/workflows/spike.yaml +14 -0
@@ -0,0 +1,47 @@
1
+ # Vault Researcher
2
+
3
+ Read-only agent for gathering project context from the codebase and vault.
4
+
5
+ ## Role
6
+
7
+ You are a research agent. You ONLY read files, search code, and report findings. You NEVER create or modify files.
8
+
9
+ ## Tools
10
+
11
+ - Read: YES
12
+ - Glob: YES
13
+ - Grep: YES
14
+ - Bash (read-only: git log, git diff, git status, ls, wc): YES
15
+ - Write: NO
16
+ - Edit: NO
17
+
18
+ ## Procedure
19
+
20
+ 1. Read `.dev-vault/stack.md` and `.dev-vault/conventions.md` for project context
21
+ 2. Analyze the task requirements from the user's request
22
+ 3. Search the codebase for relevant files using Glob and Grep
23
+ 4. Read found files (max 10 files, max 500 lines each)
24
+ 5. Check for existing patterns in `.dev-vault/knowledge.md`
25
+ 6. Check test files related to the area being investigated
26
+
27
+ ## Output format
28
+
29
+ ```
30
+ CONTEXT:
31
+ Task: <rephrased task>
32
+ Files to change: <list>
33
+ Dependencies: <files that depend on changed files>
34
+ Tests: <existing test files>
35
+ Patterns found: <how similar things are done in the project>
36
+ Relevant code:
37
+ <key snippets with file:line references>
38
+ END_CONTEXT
39
+ ```
40
+
41
+ ## Limits
42
+
43
+ - Max 10 files read
44
+ - Max 500 lines per file
45
+ - No code modifications
46
+ - No file creation
47
+ - Report in under 300 words
@@ -0,0 +1,29 @@
1
+ # Vault Writer
2
+
3
+ Agent for creating and updating vault records. Operates exclusively within `.dev-vault/`.
4
+
5
+ ## Role
6
+
7
+ You create and update knowledge records in the project's `.dev-vault/` directory. You follow Obsidian Markdown conventions.
8
+
9
+ ## Tools
10
+
11
+ - Read: YES (`.dev-vault/` only)
12
+ - Write: YES (`.dev-vault/` only)
13
+ - Edit: YES (`.dev-vault/` only)
14
+ - Glob: YES
15
+ - Bash (git only): YES
16
+
17
+ ## Rules
18
+
19
+ 1. ONLY write to `.dev-vault/` — never touch project source code
20
+ 2. Use Obsidian wikilinks for cross-references: `[[knowledge#Section]]`, `[[branches/feature-x]]`
21
+ 3. All files must have YAML frontmatter with `date`, `tags`
22
+ 4. Keep entries concise — reference material, not essays
23
+ 5. Never include secrets, passwords, API keys, or tokens
24
+ 6. Use the templates from `/templates/records/` as starting points
25
+ 7. When updating knowledge.md, preserve existing content — append to relevant sections
26
+
27
+ ## When invoked
28
+
29
+ This agent is called by `/handover`, `/merge`, `/debt`, `/bug`, `/adr` commands to handle the actual file operations.
@@ -0,0 +1,41 @@
1
+ # /git:changelog — Generate changelog from git history
2
+
3
+ Generate a structured changelog from recent commits.
4
+
5
+ ## Procedure
6
+
7
+ 1. Determine range (since last tag, or user-specified)
8
+ 2. Collect commits: `git log <range> --oneline --no-merges`
9
+ 3. Categorize by prefix: Add/Implement, Update/Refactor, Fix, Remove, Security
10
+
11
+ ## Output format
12
+
13
+ Use this exact format (markdown, not code block):
14
+
15
+ 📋 **Changelog** — \<range description\>
16
+
17
+ ### ✨ Added
18
+ - \<description\> (`\<short hash\>`)
19
+
20
+ ### 🔄 Changed
21
+ - \<description\> (`\<short hash\>`)
22
+
23
+ ### 🐛 Fixed
24
+ - \<description\> (`\<short hash\>`)
25
+
26
+ ### 🗑️ Removed
27
+ - \<description\> (`\<short hash\>`)
28
+
29
+ ### 🔒 Security
30
+ - \<description\> (`\<short hash\>`)
31
+
32
+ **N commits, M categories.**
33
+
34
+ 💡 Prepend to CHANGELOG.md? (yes / no)
35
+
36
+ ## Rules
37
+
38
+ - Follow Keep a Changelog format
39
+ - Group related commits
40
+ - Skip merge commits
41
+ - Use present tense
@@ -0,0 +1,37 @@
1
+ # /git:merge — Process branch merge
2
+
3
+ Transfer knowledge from a merged branch into permanent storage.
4
+
5
+ ## Procedure
6
+
7
+ 1. Identify merged branch (from git or user input)
8
+ 2. Read `.dev-vault/branches/<branch-slug>.md`
9
+ 3. Show what will be transferred:
10
+
11
+ 🔀 **Merge:** \<branch name\>
12
+
13
+ ### Transfer to knowledge.md
14
+ - **Decisions:** \<list from branch context\>
15
+ - **Gotchas:** \<findings discovered\>
16
+
17
+ ### Transfer to gameplan.md
18
+ - **Unfinished:** \<tasks to move to backlog\>
19
+
20
+ ### ❓ Open questions
21
+ - \<flag for user attention\>
22
+
23
+ **Proceed?** (yes / skip)
24
+
25
+ 4. If yes:
26
+ - Append decisions/gotchas to knowledge.md
27
+ - Move unfinished to gameplan.md backlog
28
+ - Set branch status: `merged`, add `merged: <today>`
29
+ - Update gameplan.md: mark completed tasks
30
+
31
+ ✅ **Merged** — branch context archived, knowledge transferred
32
+
33
+ ## Rules
34
+
35
+ - Never delete branch file — keep as historical record
36
+ - Transfer only lasting knowledge, not session-specific details
37
+ - If abandoned: set `status: abandoned` with reason
@@ -0,0 +1,34 @@
1
+ # /git:new-branch — Create branch context
2
+
3
+ Create a context file for the current git branch in `.dev-vault/branches/`.
4
+
5
+ ## Procedure
6
+
7
+ 1. Run `git branch --show-current`
8
+ 2. Determine parent branch
9
+ 3. Check for linked tasks via MCP tool `task_list`
10
+ 4. Ask user about branch goal if not clear
11
+
12
+ ## Output format
13
+
14
+ Use this exact format (markdown, not code block):
15
+
16
+ 🌿 **New Branch:** \<branch name\>
17
+
18
+ - **Parent:** \<parent branch\>
19
+ - **Created:** \<today\>
20
+ - **Linked task:** \<task id or none\>
21
+
22
+ **Goal:** \<what this branch aims to achieve\>
23
+
24
+ **Save?** (yes / edit goal / skip)
25
+
26
+ 5. If yes → create `.dev-vault/branches/<branch-slug>.md`
27
+ 6. Link to gameplan.md phase if applicable
28
+ 7. If task exists → suggest `/task start <id>`
29
+
30
+ ✅ **Created** → `.dev-vault/branches/<slug>.md`
31
+
32
+ ## Naming
33
+
34
+ Branch slug: replace `/` with `-`. Example: `feature/auth-flow` → `feature-auth-flow.md`
@@ -0,0 +1,64 @@
1
+ # /git:pr-review — Multi-perspective PR review with vault context
2
+
3
+ Perform a thorough PR review using project vault knowledge and multiple evaluation perspectives.
4
+
5
+ ## Procedure
6
+
7
+ 1. Get PR diff: `git diff main...HEAD` and `git log main..HEAD --oneline`
8
+ 2. Load vault context (conventions, knowledge, stack)
9
+ 3. **Evaluate from 5 perspectives:** Security, Quality, Conventions, Completeness, Pragmatism
10
+
11
+ ## Output format
12
+
13
+ Use this exact format (markdown, not code block):
14
+
15
+ 🔍 **PR Review:** \<branch name\>
16
+
17
+ ### Summary
18
+ \<1-2 sentences describing what the PR does\>
19
+
20
+ **Commits:** N | **Files:** M changed | **Scope:** \<small/medium/large\>
21
+
22
+ ### Convention Compliance
23
+ - ✅ \<passing convention from vault\>
24
+ - ❌ \<violated convention\> — **\<file:line\>**
25
+
26
+ ### ⚠️ Vault Gotchas
27
+ - \<known gotchas from knowledge.md that apply to this PR\>
28
+
29
+ ### Findings by Severity
30
+
31
+ **🔴 Critical** — \<count or "none"\>
32
+ - **\<file:line\>** — \<issue\> *(perspective: Security/Quality/...)*
33
+ 💡 *Fix:* \<suggestion\>
34
+
35
+ **🟠 High** — \<count or "none"\>
36
+ - **\<file:line\>** — \<issue\> *(perspective: ...)*
37
+ 💡 *Fix:* \<suggestion\>
38
+
39
+ **🟡 Medium** — \<count or "none"\>
40
+ - **\<file:line\>** — \<issue\>
41
+
42
+ **💡 Suggestions**
43
+ - \<improvements\>
44
+
45
+ ### Perspective Verdict
46
+
47
+ | Perspective | Assessment | Key concern |
48
+ |-------------|-----------|-------------|
49
+ | Security | ✅ / ⚠️ / 🔴 | \<one-line summary\> |
50
+ | Quality | ✅ / ⚠️ / 🔴 | \<summary\> |
51
+ | Conventions | ✅ / ⚠️ / 🔴 | \<summary\> |
52
+ | Completeness | ✅ / ⚠️ / 🔴 | \<summary\> |
53
+ | Pragmatism | ✅ / ⚠️ / 🔴 | \<summary\> |
54
+
55
+ ### ⚠️ Conflicts
56
+ - \<if perspectives disagree: topic, who vs who, resolution\>
57
+
58
+ ### Overall Verdict
59
+ ✅ **APPROVE** / ⚠️ **APPROVE with notes** / ❌ **REQUEST_CHANGES**
60
+
61
+ ### 💡 Suggested vault updates
62
+ - \<new gotchas or patterns discovered during review\>
63
+
64
+ Record findings? → /vault:bug, /vault:adr, /vault:knowledge
@@ -0,0 +1,49 @@
1
+ # /session:handover — Save detailed session context
2
+
3
+ Capture the current session's work into `.dev-vault/` for future sessions.
4
+
5
+ ## Procedure
6
+
7
+ 1. Run `git branch --show-current` and `git diff --stat`
8
+ 2. Check workflow status via MCP tool `workflow_status`
9
+ 3. Review what was done in this session
10
+ 4. Show summary before saving:
11
+
12
+ 📤 **Session Handover — \<date\>**
13
+
14
+ **Project:** \<name\> | **Branch:** \<branch\>
15
+
16
+ ### ✅ Done
17
+ - \<accomplishment with file/commit reference\>
18
+
19
+ ### 🧠 Key Decisions
20
+ - \<decision with reasoning\>
21
+
22
+ ### ⚠️ Problems & Findings
23
+ - \<gotchas discovered\>
24
+
25
+ ### ❓ Open Questions
26
+ - \<unresolved issues\>
27
+
28
+ ### ➡️ Next Steps
29
+ - \<what to do next session\>
30
+
31
+ ### 🔄 Status
32
+ - **Workflow:** \<state or idle\>
33
+ - **Tasks:** \<linked tasks and status\>
34
+ - **Uncommitted:** \<N files\>
35
+
36
+ **Save?** (yes / edit / skip)
37
+
38
+ 5. If yes → write to `.dev-vault/daily/<date>.md`
39
+ 6. Update branch context and knowledge.md if insights found
40
+ 7. Offer to create records: /vault:bug, /vault:adr, /vault:debt
41
+ 8. Commit vault changes
42
+
43
+ ✅ **Saved** → `.dev-vault/daily/<date>.md`
44
+
45
+ ## Rules
46
+
47
+ - Keep entries concise — reference material, not essays
48
+ - Use Obsidian wikilinks for cross-references
49
+ - Never include secrets or tokens
@@ -0,0 +1,43 @@
1
+ # /session:resume — Restore session context
2
+
3
+ Read the project's `.dev-vault/` and load full context for the current session.
4
+
5
+ ## Procedure
6
+
7
+ 1. Run `git branch --show-current`
8
+ 2. Read vault files: stack.md, conventions.md, knowledge.md, gameplan.md
9
+ 3. Read branch context and 3 most recent daily logs
10
+ 4. Check for active tasks and paused workflows
11
+
12
+ ## Output format
13
+
14
+ Use this exact format (markdown, not code block):
15
+
16
+ 📥 **Session Resume — \<projectName\>**
17
+
18
+ - **Branch:** \<branch\> (\<status\>)
19
+ - **Last session:** \<date\>
20
+ - **Current phase:** \<from gameplan\>
21
+
22
+ ### 🔄 Where we left off
23
+ - \<from branch context or latest daily log\>
24
+
25
+ ### ❓ Open questions
26
+ - \<from branch context\>
27
+
28
+ ### ➡️ Next steps
29
+ - \<from branch context or gameplan\>
30
+
31
+ ### 📋 Active tasks
32
+ - \<task id\> — \<title\> (\<status\>)
33
+
34
+ ### ⏸️ Paused workflow
35
+ - \<workflow name\> — step: \<step\> (run: \<id\>)
36
+ - Resume with: `/workflow resume`
37
+
38
+ ## Special cases
39
+
40
+ - **Branch main/master** → show gameplan overview and list active branches
41
+ - **New branch without context** → ask user about goal, create branch file
42
+ - **No vault** → suggest `dev-workflow init`
43
+ - **Empty vault files** → suggest `/vault:analyze`
@@ -0,0 +1,81 @@
1
+ # /session:review — Multi-perspective code review
2
+
3
+ Perform a code review of uncommitted changes from multiple perspectives,
4
+ aggregate findings by severity, detect conflicts between perspectives.
5
+
6
+ ## Procedure
7
+
8
+ 1. Run `git diff --stat` to see scope, then `git diff` for details
9
+ 2. Load vault context (conventions, stack, knowledge)
10
+ 3. **Evaluate from 5 perspectives** (inspired by consensus protocol):
11
+
12
+ ### Perspectives
13
+
14
+ Each perspective reviews the same diff with different focus:
15
+
16
+ - **Security** — OWASP Top 10, injection, secrets, path traversal, auth
17
+ - **Quality** — SOLID, DRY, naming, complexity, error handling
18
+ - **Conventions** — project conventions from .dev-vault/conventions.md
19
+ - **Completeness** — edge cases, error paths, missing tests, cleanup
20
+ - **Pragmatism** — effort vs value, over-engineering, simplicity
21
+
22
+ 4. **Aggregate findings** by severity, detect conflicts
23
+
24
+ ## Output format
25
+
26
+ Use this exact format (markdown, not code block):
27
+
28
+ 📝 **Review:** \<branch or description\>
29
+
30
+ **Scope:** N files changed, M insertions, K deletions
31
+
32
+ ### 🔴 Critical (must fix)
33
+ - **\<file:line\>** — \<issue\> *(perspective: Security/Quality/...)*
34
+ 💡 *Fix:* \<concrete suggestion\>
35
+
36
+ ### 🟠 High (should fix)
37
+ - **\<file:line\>** — \<issue\> *(perspective: ...)*
38
+ 💡 *Fix:* \<suggestion\>
39
+
40
+ ### 🟡 Medium (consider)
41
+ - **\<file:line\>** — \<issue\> *(perspective: ...)*
42
+
43
+ ### 💡 Suggestions
44
+ - \<improvement ideas\>
45
+
46
+ ### ✅ Good
47
+ - \<positive observations from any perspective\>
48
+
49
+ ### ⚠️ Conflicts between perspectives
50
+
51
+ If perspectives disagree (e.g., Pragmatism says "good enough" but Quality says "refactor"):
52
+
53
+ - **\<topic\>** — \<perspective A\> vs \<perspective B\>: \<nature of disagreement\>
54
+ → *Resolution:* \<recommendation or escalate to user\>
55
+
56
+ ### Verdict
57
+
58
+ | Perspective | Assessment |
59
+ |-------------|-----------|
60
+ | Security | ✅ pass / ⚠️ concerns / 🔴 blocked |
61
+ | Quality | ✅ / ⚠️ / 🔴 |
62
+ | Conventions | ✅ / ⚠️ / 🔴 |
63
+ | Completeness | ✅ / ⚠️ / 🔴 |
64
+ | Pragmatism | ✅ / ⚠️ / 🔴 |
65
+
66
+ **Overall:** ✅ APPROVE / ⚠️ APPROVE with notes / ❌ REQUEST_CHANGES
67
+
68
+ **Summary:** N findings (C critical, H high, M medium, S suggestions)
69
+
70
+ 💡 Actions:
71
+ - Bug pattern? → /vault:bug
72
+ - New gotcha? → update knowledge.md
73
+ - Architecture concern? → /vault:adr
74
+
75
+ ## Rules
76
+
77
+ - Read-only — never modify project code
78
+ - Reference specific files and line numbers
79
+ - Each finding tagged with source perspective
80
+ - Conflicts: if Security blocks but Pragmatism approves → Security wins
81
+ - Critical from ANY perspective → overall REQUEST_CHANGES
@@ -0,0 +1,52 @@
1
+ # /task — Manage development tasks
2
+
3
+ Create, track, and manage tasks linked to git branches and workflows.
4
+
5
+ ## Usage
6
+
7
+ - `/task create "title"` — Create a new task
8
+ - `/task list` — List all tasks
9
+ - `/task start <id>` — Start task (set in-progress)
10
+ - `/task done <id>` — Mark as done
11
+ - `/task show <id>` — Show details
12
+
13
+ ## Output format for /task create
14
+
15
+ 📋 **Task created**
16
+
17
+ - **ID:** task-001
18
+ - **Title:** \<title\>
19
+ - **Status:** ⚪ pending
20
+ - **Priority:** medium
21
+
22
+ 💡 Start working? `/task start task-001`
23
+
24
+ ## Output format for /task list
25
+
26
+ 📋 **Tasks**
27
+
28
+ - 🟢 **task-001** — \<title\> (done, high)
29
+ - 🔵 **task-002** — \<title\> (in-progress, medium)
30
+ - ⚪ **task-003** — \<title\> (pending, low)
31
+ - 🔴 **task-004** — \<title\> (blocked, high)
32
+
33
+ **N tasks** (done: N, in-progress: N, pending: N)
34
+
35
+ ## Output format for /task show
36
+
37
+ 📋 **task-001** — \<title\>
38
+
39
+ - **Status:** 🟢 done
40
+ - **Priority:** high
41
+ - **Branch:** \<branch or none\>
42
+ - **Workflow:** \<run id or none\>
43
+ - **Created:** \<date\>
44
+ - **Updated:** \<date\>
45
+
46
+ \<description if any\>
47
+
48
+ ## Task Lifecycle
49
+
50
+ ⚪ pending → 🔵 in-progress → 🟠 review → 🟢 done
51
+
52
+ ↘ 🔴 blocked
@@ -0,0 +1,39 @@
1
+ # /vault:adr — Create Architecture Decision Record
2
+
3
+ Record a significant architectural or design decision in `.dev-vault/architecture/`.
4
+
5
+ ## Procedure
6
+
7
+ 1. Gather from conversation context: Context, Decision, Alternatives, Consequences
8
+ 2. Show summary before saving:
9
+
10
+ 📋 **New ADR**
11
+
12
+ - **Title:** \<decision title\>
13
+ - **Date:** \<today\>
14
+ - **Status:** accepted
15
+
16
+ **Context:** \<why needed\>
17
+
18
+ **Decision:** \<what was decided\>
19
+
20
+ **Alternatives considered:**
21
+ - **\<option A\>** — \<pros/cons\>
22
+ - **\<option B\>** — \<pros/cons\>
23
+
24
+ **Consequences:** \<trade-offs\>
25
+
26
+ **Save?** (yes / edit / skip)
27
+
28
+ 3. If yes → use MCP tool `vault_record` type "adr" or create file directly
29
+ 4. Confirm:
30
+
31
+ ✅ **Saved** → `.dev-vault/architecture/<date>-<slug>.md`
32
+
33
+ 💡 Updated knowledge.md if decision impacts patterns
34
+
35
+ ## When to use
36
+
37
+ - Choosing between frameworks, libraries, or approaches
38
+ - Defining data models or API contracts
39
+ - Changing project structure or conventions
@@ -0,0 +1,110 @@
1
+ # /vault:analyze — Deep project analysis with phased planning
2
+
3
+ Analyze the codebase and fill all vault sections with discovered information.
4
+ Uses phased approach with gate criteria before each write.
5
+
6
+ ## Step 1: Check existing vault state
7
+
8
+ Read all vault files and show current state:
9
+
10
+ 🔍 **Analyzing \<projectName\>...**
11
+
12
+ **Step 1/4 — Vault state**
13
+
14
+ | Section | Status | Content |
15
+ |---------|--------|---------|
16
+ | stack.md | ✅ / ○ | N items / empty |
17
+ | conventions.md | ✅ / ○ | N rules / empty |
18
+ | knowledge.md | ✅ / ○ | N entries / empty |
19
+ | gameplan.md | ✅ / ○ | N phases / empty |
20
+
21
+ Read: `.dev-vault/stack.md`, `.dev-vault/conventions.md`, `.dev-vault/knowledge.md`, `.dev-vault/gameplan.md`
22
+
23
+ ## Step 2: Scan project structure
24
+
25
+ 1. Run `find . -type f -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/target/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/.dev-vault/*' | head -100`
26
+ 2. Identify project layout
27
+
28
+ 📁 **Project:** \<layout type\> — N source files across M directories
29
+
30
+ ## Step 3: Analyze code
31
+
32
+ **IMPORTANT:** Use a single Agent (subagent_type: Explore) to read all files at once.
33
+ Do NOT read files one by one — this creates too many tool calls in the UI.
34
+
35
+ Pick 5-10 diverse files: entry points, core modules, tests, configs.
36
+
37
+ Extract: File Structure, Naming, Code Style, Patterns, Testing conventions.
38
+
39
+ ## Step 4: Phased plan with gate criteria
40
+
41
+ 📋 **Analysis plan:**
42
+
43
+ ### Phase 1: Conventions (gate: user approval)
44
+ - → **conventions.md** — add File Structure (N), Naming (N), Code Style (N)
45
+ - Gate: show items, user confirms
46
+
47
+ ### Phase 2: Knowledge (gate: phase 1 complete)
48
+ - → **knowledge.md** — add Architecture (N), Gotchas (N)
49
+ - Gate: show items, user confirms
50
+
51
+ ### Phase 3: Verification (gate: phase 2 complete)
52
+ - Verify no contradictions between conventions and knowledge
53
+ - Verify references point to real files
54
+
55
+ **Skip:**
56
+ - ✅ **stack.md** — already filled (verify only)
57
+ - ○ **gameplan.md** — requires human input
58
+
59
+ **Start Phase 1?** (yes / preview all / skip)
60
+
61
+ **Wait for user confirmation before each phase.**
62
+
63
+ ## Step 5: Execute phases
64
+
65
+ For each phase:
66
+ 1. Show exactly what will be written
67
+ 2. Wait for approval
68
+ 3. Write to vault via MCP tools or direct edit
69
+ 4. Confirm what was written
70
+ 5. Proceed to next phase
71
+
72
+ **Preserve existing content** — only append new information.
73
+
74
+ ### conventions.md sections:
75
+ - `## File Structure`: `- <directory> — <purpose>`
76
+ - `## Naming`: `- Functions: <convention>`, `- Types: <convention>`, `- Files: <convention>`
77
+ - `## Code Style`: `- Error handling: <pattern>`, `- Logging: <library>`
78
+ - `## Patterns`: `- <pattern>: <where used>`
79
+
80
+ ### knowledge.md sections:
81
+ - `## Architecture`: `- <component> → <component>: <relationship>`
82
+ - `## Gotchas`: `- <gotcha from code or README>`
83
+
84
+ ## Step 6: Summary
85
+
86
+ ✅ **Analyze complete**
87
+
88
+ | Phase | Section | Items added | Status |
89
+ |-------|---------|-------------|--------|
90
+ | 1 | conventions.md | +N | ✅ |
91
+ | 2 | knowledge.md | +N | ✅ |
92
+ | 3 | verification | N checks | ✅ / ⚠️ |
93
+
94
+ **Key findings:**
95
+ - \<most important discovery\>
96
+ - \<second finding\>
97
+ - \<third finding\>
98
+
99
+ 💡 **Next:** fill gameplan.md manually, then /session:review
100
+
101
+ ## Rules
102
+
103
+ - **Gate criteria:** each phase requires explicit user approval
104
+ - **Preserve existing content** — never overwrite, only append
105
+ - **Be specific** — "functions use snake_case" not "standard naming"
106
+ - **Reference files** — "error handling in cli/src/main.rs uses anyhow"
107
+ - **Skip gameplan.md** — roadmap is human-authored
108
+ - **Don't add utility crates/packages to stack.md** — only frameworks, ORMs, test runners
109
+ - Read max 15 files
110
+ - Never include secrets or credentials
@@ -0,0 +1,31 @@
1
+ # /vault:bug — Record a resolved bug
2
+
3
+ Create a bug log in `.dev-vault/bugs/` for non-trivial bugs that were solved.
4
+
5
+ ## Procedure
6
+
7
+ 1. Gather: Symptoms, Root cause, Fix, Prevention, Severity
8
+ 2. Show summary before saving:
9
+
10
+ 🐛 **Bug Record**
11
+
12
+ - **Severity:** 🔴 critical / 🟠 high / 🟡 medium / 🟢 low
13
+ - **Title:** \<brief description\>
14
+
15
+ **Symptoms:** \<how it showed up\>
16
+ **Root cause:** \<why it happened\>
17
+ **Fix:** \<what was done — reference files/commits\>
18
+ **Prevention:** \<how to avoid in future\>
19
+
20
+ **Save?** (yes / edit / skip)
21
+
22
+ 3. If yes → use MCP tool `vault_record` type "bug"
23
+ 4. Confirm:
24
+
25
+ ✅ **Saved** → `.dev-vault/bugs/<date>-<slug>.md`
26
+
27
+ 💡 Updated knowledge.md → Gotchas (if pattern revealed)
28
+
29
+ ## When to use
30
+
31
+ Only for non-trivial bugs worth remembering. Simple typos don't need a record.
@@ -0,0 +1,28 @@
1
+ # /vault:debt — Record tech debt
2
+
3
+ Create a tech debt record in `.dev-vault/debt/`.
4
+
5
+ ## Procedure
6
+
7
+ 1. Gather: What, Why deferred, Priority, Effort, Risk
8
+ 2. Show summary before saving:
9
+
10
+ 📝 **Tech Debt**
11
+
12
+ - **Priority:** 🔴 high / 🟡 medium / 🟢 low
13
+ - **Effort:** small / medium / large
14
+ - **Title:** \<title\>
15
+
16
+ **Problem:** \<what's wrong\>
17
+ **Why deferred:** \<context\>
18
+ **Proposal:** \<how to fix\>
19
+ **Risk if ignored:** \<consequences\>
20
+
21
+ **Save?** (yes / edit / skip)
22
+
23
+ 3. If yes → use MCP tool `vault_record` type "debt"
24
+ 4. Confirm:
25
+
26
+ ✅ **Saved** → `.dev-vault/debt/<date>-<slug>.md`
27
+
28
+ 💡 Added to gameplan.md backlog. Consider: `/task create "<title>"`