javi-forge 0.1.0 → 1.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 (159) hide show
  1. package/.releaserc +2 -1
  2. package/README.md +143 -31
  3. package/ai-config/commands/workflows/diagnose.md +70 -0
  4. package/ai-config/commands/workflows/discover.md +86 -0
  5. package/ci-local/ci-local.sh +18 -0
  6. package/ci-local/docker/node.Dockerfile +7 -0
  7. package/ci-local/hooks/commit-msg +0 -0
  8. package/ci-local/hooks/pre-commit +0 -0
  9. package/ci-local/hooks/pre-push +0 -0
  10. package/ci-local/install.sh +0 -0
  11. package/dist/commands/doctor.js +24 -1
  12. package/dist/commands/init.js +48 -1
  13. package/dist/commands/llmstxt.d.ts +9 -0
  14. package/dist/commands/llmstxt.js +93 -0
  15. package/dist/commands/llmstxt.test.d.ts +2 -0
  16. package/dist/commands/plugin.d.ts +24 -0
  17. package/dist/commands/plugin.js +78 -0
  18. package/dist/commands/plugin.test.d.ts +2 -0
  19. package/dist/constants.d.ts +8 -0
  20. package/dist/constants.js +8 -0
  21. package/dist/index.js +33 -4
  22. package/dist/lib/plugin.d.ts +39 -0
  23. package/dist/lib/plugin.js +228 -0
  24. package/dist/lib/plugin.test.d.ts +2 -0
  25. package/dist/types/index.d.ts +42 -0
  26. package/dist/ui/App.d.ts +2 -1
  27. package/dist/ui/App.js +2 -1
  28. package/dist/ui/LlmsTxt.d.ts +8 -0
  29. package/dist/ui/LlmsTxt.js +48 -0
  30. package/dist/ui/Plugin.d.ts +9 -0
  31. package/dist/ui/Plugin.js +96 -0
  32. package/lib/common.sh +183 -0
  33. package/modules/obsidian-brain/README.md +32 -0
  34. package/modules/obsidian-brain/core/templates/braindump.md +15 -0
  35. package/modules/obsidian-brain/core/templates/consolidation.md +42 -0
  36. package/modules/obsidian-brain/core/templates/daily-note.md +18 -0
  37. package/modules/obsidian-brain/core/templates/resource-capture.md +14 -0
  38. package/modules/obsidian-brain/developer/templates/adr.md +40 -0
  39. package/modules/obsidian-brain/developer/templates/coding-session.md +24 -0
  40. package/modules/obsidian-brain/developer/templates/debug-journal.md +22 -0
  41. package/modules/obsidian-brain/developer/templates/sdd-feedback.md +27 -0
  42. package/modules/obsidian-brain/developer/templates/tech-debt.md +20 -0
  43. package/modules/obsidian-brain/pm-lead/templates/daily-brief.md +25 -0
  44. package/modules/obsidian-brain/pm-lead/templates/meeting-notes.md +24 -0
  45. package/modules/obsidian-brain/pm-lead/templates/risk-registry.md +12 -0
  46. package/modules/obsidian-brain/pm-lead/templates/sprint-review.md +27 -0
  47. package/modules/obsidian-brain/pm-lead/templates/stakeholder-update.md +24 -0
  48. package/modules/obsidian-brain/pm-lead/templates/team-intelligence.md +19 -0
  49. package/modules/obsidian-brain/pm-lead/templates/weekly-brief.md +29 -0
  50. package/package.json +12 -12
  51. package/schemas/plugin.schema.json +62 -0
  52. package/dist/commands/analyze.d.ts.map +0 -1
  53. package/dist/commands/analyze.js.map +0 -1
  54. package/dist/commands/analyze.test.d.ts.map +0 -1
  55. package/dist/commands/analyze.test.js +0 -145
  56. package/dist/commands/analyze.test.js.map +0 -1
  57. package/dist/commands/doctor.d.ts.map +0 -1
  58. package/dist/commands/doctor.js.map +0 -1
  59. package/dist/commands/doctor.test.d.ts.map +0 -1
  60. package/dist/commands/doctor.test.js +0 -200
  61. package/dist/commands/doctor.test.js.map +0 -1
  62. package/dist/commands/init.d.ts.map +0 -1
  63. package/dist/commands/init.js.map +0 -1
  64. package/dist/commands/init.test.d.ts.map +0 -1
  65. package/dist/commands/init.test.js +0 -271
  66. package/dist/commands/init.test.js.map +0 -1
  67. package/dist/commands/sync.d.ts.map +0 -1
  68. package/dist/commands/sync.js.map +0 -1
  69. package/dist/constants.d.ts.map +0 -1
  70. package/dist/constants.js.map +0 -1
  71. package/dist/e2e/aggressive.e2e.test.d.ts.map +0 -1
  72. package/dist/e2e/aggressive.e2e.test.js +0 -350
  73. package/dist/e2e/aggressive.e2e.test.js.map +0 -1
  74. package/dist/e2e/commands.e2e.test.d.ts.map +0 -1
  75. package/dist/e2e/commands.e2e.test.js +0 -213
  76. package/dist/e2e/commands.e2e.test.js.map +0 -1
  77. package/dist/index.d.ts.map +0 -1
  78. package/dist/index.js.map +0 -1
  79. package/dist/lib/common.d.ts.map +0 -1
  80. package/dist/lib/common.js.map +0 -1
  81. package/dist/lib/common.test.d.ts.map +0 -1
  82. package/dist/lib/common.test.js +0 -316
  83. package/dist/lib/common.test.js.map +0 -1
  84. package/dist/lib/frontmatter.d.ts.map +0 -1
  85. package/dist/lib/frontmatter.js.map +0 -1
  86. package/dist/lib/frontmatter.test.d.ts.map +0 -1
  87. package/dist/lib/frontmatter.test.js +0 -257
  88. package/dist/lib/frontmatter.test.js.map +0 -1
  89. package/dist/lib/template.d.ts.map +0 -1
  90. package/dist/lib/template.js.map +0 -1
  91. package/dist/lib/template.test.d.ts.map +0 -1
  92. package/dist/lib/template.test.js +0 -201
  93. package/dist/lib/template.test.js.map +0 -1
  94. package/dist/types/index.d.ts.map +0 -1
  95. package/dist/types/index.js.map +0 -1
  96. package/dist/ui/AnalyzeUI.d.ts.map +0 -1
  97. package/dist/ui/AnalyzeUI.js.map +0 -1
  98. package/dist/ui/App.d.ts.map +0 -1
  99. package/dist/ui/App.js.map +0 -1
  100. package/dist/ui/CIContext.d.ts.map +0 -1
  101. package/dist/ui/CIContext.js.map +0 -1
  102. package/dist/ui/CISelector.d.ts.map +0 -1
  103. package/dist/ui/CISelector.js.map +0 -1
  104. package/dist/ui/Doctor.d.ts.map +0 -1
  105. package/dist/ui/Doctor.js.map +0 -1
  106. package/dist/ui/Header.d.ts.map +0 -1
  107. package/dist/ui/Header.js.map +0 -1
  108. package/dist/ui/MemorySelector.d.ts.map +0 -1
  109. package/dist/ui/MemorySelector.js.map +0 -1
  110. package/dist/ui/NameInput.d.ts.map +0 -1
  111. package/dist/ui/NameInput.js.map +0 -1
  112. package/dist/ui/OptionSelector.d.ts.map +0 -1
  113. package/dist/ui/OptionSelector.js.map +0 -1
  114. package/dist/ui/Progress.d.ts.map +0 -1
  115. package/dist/ui/Progress.js.map +0 -1
  116. package/dist/ui/StackSelector.d.ts.map +0 -1
  117. package/dist/ui/StackSelector.js.map +0 -1
  118. package/dist/ui/Summary.d.ts.map +0 -1
  119. package/dist/ui/Summary.js.map +0 -1
  120. package/dist/ui/SyncUI.d.ts.map +0 -1
  121. package/dist/ui/SyncUI.js.map +0 -1
  122. package/dist/ui/Welcome.d.ts.map +0 -1
  123. package/dist/ui/Welcome.js.map +0 -1
  124. package/dist/ui/theme.d.ts.map +0 -1
  125. package/dist/ui/theme.js.map +0 -1
  126. package/src/commands/analyze.test.ts +0 -145
  127. package/src/commands/analyze.ts +0 -69
  128. package/src/commands/doctor.test.ts +0 -208
  129. package/src/commands/doctor.ts +0 -163
  130. package/src/commands/init.test.ts +0 -298
  131. package/src/commands/init.ts +0 -285
  132. package/src/constants.ts +0 -69
  133. package/src/e2e/aggressive.e2e.test.ts +0 -557
  134. package/src/e2e/commands.e2e.test.ts +0 -298
  135. package/src/index.tsx +0 -106
  136. package/src/lib/common.test.ts +0 -318
  137. package/src/lib/common.ts +0 -127
  138. package/src/lib/frontmatter.test.ts +0 -291
  139. package/src/lib/frontmatter.ts +0 -77
  140. package/src/lib/template.test.ts +0 -226
  141. package/src/lib/template.ts +0 -99
  142. package/src/types/index.ts +0 -53
  143. package/src/ui/AnalyzeUI.tsx +0 -133
  144. package/src/ui/App.tsx +0 -175
  145. package/src/ui/CIContext.tsx +0 -25
  146. package/src/ui/CISelector.tsx +0 -72
  147. package/src/ui/Doctor.tsx +0 -122
  148. package/src/ui/Header.tsx +0 -48
  149. package/src/ui/MemorySelector.tsx +0 -73
  150. package/src/ui/NameInput.tsx +0 -82
  151. package/src/ui/OptionSelector.tsx +0 -100
  152. package/src/ui/Progress.tsx +0 -88
  153. package/src/ui/StackSelector.tsx +0 -101
  154. package/src/ui/Summary.tsx +0 -134
  155. package/src/ui/Welcome.tsx +0 -54
  156. package/src/ui/theme.ts +0 -10
  157. package/stryker.config.json +0 -19
  158. package/tsconfig.json +0 -19
  159. package/vitest.config.ts +0 -16
@@ -0,0 +1,96 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import Spinner from 'ink-spinner';
4
+ import { runPluginAdd, runPluginRemove, runPluginList, runPluginSearch, runPluginValidate } from '../commands/plugin.js';
5
+ import { theme } from './theme.js';
6
+ const STATUS_ICON = {
7
+ pending: '\u25cb',
8
+ done: '\u2713',
9
+ error: '\u2717',
10
+ skipped: '\u2013',
11
+ };
12
+ const STATUS_COLOR = {
13
+ pending: theme.muted,
14
+ running: theme.warning,
15
+ done: theme.success,
16
+ error: theme.error,
17
+ skipped: theme.muted,
18
+ };
19
+ export default function Plugin({ action, target, dryRun }) {
20
+ const [steps, setSteps] = useState([]);
21
+ const [done, setDone] = useState(false);
22
+ const onStep = (step) => {
23
+ setSteps(prev => {
24
+ const idx = prev.findIndex(s => s.id === step.id);
25
+ if (idx >= 0) {
26
+ const next = [...prev];
27
+ next[idx] = step;
28
+ return next;
29
+ }
30
+ return [...prev, step];
31
+ });
32
+ };
33
+ useEffect(() => {
34
+ const run = async () => {
35
+ try {
36
+ switch (action) {
37
+ case 'add':
38
+ if (!target) {
39
+ onStep({ id: 'err', label: 'Error', status: 'error', detail: 'source required: javi-forge plugin add <org/repo>' });
40
+ break;
41
+ }
42
+ await runPluginAdd(target, dryRun, onStep);
43
+ break;
44
+ case 'remove':
45
+ if (!target) {
46
+ onStep({ id: 'err', label: 'Error', status: 'error', detail: 'name required: javi-forge plugin remove <name>' });
47
+ break;
48
+ }
49
+ await runPluginRemove(target, dryRun, onStep);
50
+ break;
51
+ case 'list':
52
+ await runPluginList(onStep);
53
+ break;
54
+ case 'search':
55
+ await runPluginSearch(target, onStep);
56
+ break;
57
+ case 'validate':
58
+ if (!target) {
59
+ onStep({ id: 'err', label: 'Error', status: 'error', detail: 'path required: javi-forge plugin validate <dir>' });
60
+ break;
61
+ }
62
+ await runPluginValidate(target, onStep);
63
+ break;
64
+ }
65
+ }
66
+ catch (e) {
67
+ onStep({ id: 'fatal', label: 'Fatal error', status: 'error', detail: String(e) });
68
+ }
69
+ setDone(true);
70
+ };
71
+ run();
72
+ }, [action, target, dryRun]);
73
+ return (React.createElement(Box, { flexDirection: "column", padding: 1 },
74
+ React.createElement(Box, { marginBottom: 1 },
75
+ React.createElement(Text, { bold: true, color: theme.primary }, "javi-forge"),
76
+ React.createElement(Text, null,
77
+ " plugin ",
78
+ action),
79
+ dryRun && React.createElement(Text, { color: theme.warning }, " (dry-run)")),
80
+ steps.map(step => (React.createElement(Box, { key: step.id, marginLeft: 2 }, step.status === 'running' ? (React.createElement(Text, { color: theme.warning },
81
+ React.createElement(Spinner, { type: "dots" }),
82
+ ' ',
83
+ step.label,
84
+ step.detail ? React.createElement(Text, { color: theme.muted, dimColor: true },
85
+ " ",
86
+ step.detail) : null)) : (React.createElement(Text, { color: STATUS_COLOR[step.status] },
87
+ STATUS_ICON[step.status],
88
+ " ",
89
+ step.label,
90
+ step.detail ? React.createElement(Text, { color: theme.muted, dimColor: true },
91
+ " ",
92
+ step.detail) : null))))),
93
+ done && (React.createElement(Box, { marginTop: 1 },
94
+ React.createElement(Text, { color: theme.muted }, "Done.")))));
95
+ }
96
+ //# sourceMappingURL=Plugin.js.map
package/lib/common.sh ADDED
@@ -0,0 +1,183 @@
1
+ #!/bin/bash
2
+ # =============================================================================
3
+ # lib/common.sh - Shared functions for project-starter-framework
4
+ # =============================================================================
5
+ # Source from scripts: source "$(dirname "$0")/../lib/common.sh"
6
+ # Source from ci-local: source "$(dirname "$0")/../lib/common.sh"
7
+ # Source from hooks: source "$(dirname "$0")/../../lib/common.sh"
8
+ # =============================================================================
9
+
10
+ # Guard against double-sourcing
11
+ if [[ -n "${_COMMON_SH_LOADED:-}" ]]; then
12
+ return 0 2>/dev/null || true
13
+ fi
14
+ _COMMON_SH_LOADED=1
15
+
16
+ # =============================================================================
17
+ # Colors (exported for callers via source)
18
+ # =============================================================================
19
+ # shellcheck disable=SC2034
20
+ RED='\033[0;31m'
21
+ # shellcheck disable=SC2034
22
+ GREEN='\033[0;32m'
23
+ # shellcheck disable=SC2034
24
+ YELLOW='\033[1;33m'
25
+ # shellcheck disable=SC2034
26
+ CYAN='\033[0;36m'
27
+ # shellcheck disable=SC2034
28
+ BLUE='\033[0;34m'
29
+ # shellcheck disable=SC2034
30
+ NC='\033[0m'
31
+
32
+ # =============================================================================
33
+ # Shared logging helpers
34
+ # =============================================================================
35
+ log_ok() { echo -e " ${GREEN}[OK]${NC} $1"; }
36
+ log_warn() { echo -e " ${YELLOW}[WARN]${NC} $1"; }
37
+ log_fail() { echo -e " ${RED}[FAIL]${NC} $1"; }
38
+ log_info() { echo -e " ${CYAN}[INFO]${NC} $1"; }
39
+ log_step() { echo -e "${YELLOW}$1${NC}"; }
40
+
41
+ # =============================================================================
42
+ # sed_inplace - Portable sed -i (works on both GNU and BSD/macOS sed)
43
+ # =============================================================================
44
+ # Usage: sed_inplace "s/foo/bar/" file.txt
45
+ # =============================================================================
46
+ sed_inplace() {
47
+ if sed --version 2>/dev/null | grep -q GNU; then
48
+ sed -i "$@"
49
+ else
50
+ sed -i '' "$@"
51
+ fi
52
+ }
53
+
54
+ # =============================================================================
55
+ # escape_sed - Escape special characters for safe use in sed replacement
56
+ # =============================================================================
57
+ # Usage: escaped=$(escape_sed "$raw_string")
58
+ # Note: This escapes replacement-side characters (backslash, ampersand, slash).
59
+ # =============================================================================
60
+ escape_sed() {
61
+ printf '%s\n' "$1" | sed -e 's/[\\&/]/\\&/g'
62
+ }
63
+
64
+ # =============================================================================
65
+ # backup_if_exists - Create a .bak copy of a file before overwriting
66
+ # =============================================================================
67
+ # Usage: backup_if_exists "path/to/file"
68
+ # =============================================================================
69
+ backup_if_exists() {
70
+ local file="$1"
71
+ if [[ -f "$file" ]]; then
72
+ cp "$file" "${file}.bak"
73
+ echo -e "${YELLOW} Backed up existing ${file}${NC}"
74
+ fi
75
+ }
76
+
77
+ # =============================================================================
78
+ # detect_stack - Auto-detect project technology stack
79
+ # =============================================================================
80
+ # Sets: STACK_TYPE, BUILD_TOOL, JAVA_VERSION
81
+ # Detects: java-gradle, java-maven, node, python, go, rust
82
+ #
83
+ # Usage:
84
+ # detect_stack # Detects from current directory
85
+ # detect_stack "/path/to/project" # Detects from given directory
86
+ #
87
+ # NOTE: Does NOT set LINT_CMD/COMPILE_CMD/TEST_CMD. Those are CI-specific
88
+ # and should be configured by the caller (e.g., ci-local.sh).
89
+ # =============================================================================
90
+ # shellcheck disable=SC2034 # STACK_TYPE, BUILD_TOOL, JAVA_VERSION used by callers
91
+ detect_stack() {
92
+ local project_dir="${1:-.}"
93
+
94
+ STACK_TYPE="unknown"
95
+ BUILD_TOOL=""
96
+ JAVA_VERSION="21"
97
+
98
+ # Java + Gradle
99
+ if [[ -f "$project_dir/build.gradle" || -f "$project_dir/build.gradle.kts" ]]; then
100
+ STACK_TYPE="java-gradle"
101
+ BUILD_TOOL="gradle"
102
+
103
+ # Detect Java version from build files (compatible with macOS and Linux)
104
+ if [[ -f "$project_dir/build.gradle.kts" ]]; then
105
+ JAVA_VERSION=$(grep -E 'languageVersion\s*=\s*JavaLanguageVersion\.of\(' "$project_dir/build.gradle.kts" 2>/dev/null | grep -o '[0-9]\+' | head -1 || echo "21")
106
+ elif [[ -f "$project_dir/build.gradle" ]]; then
107
+ JAVA_VERSION=$(grep -E 'sourceCompatibility\s*=' "$project_dir/build.gradle" 2>/dev/null | grep -o '[0-9]\+' | head -1 || echo "21")
108
+ fi
109
+ [[ -z "$JAVA_VERSION" ]] && JAVA_VERSION="21"
110
+ return
111
+ fi
112
+
113
+ # Java + Maven
114
+ if [[ -f "$project_dir/pom.xml" ]]; then
115
+ STACK_TYPE="java-maven"
116
+ BUILD_TOOL="maven"
117
+ return
118
+ fi
119
+
120
+ # Node.js
121
+ if [[ -f "$project_dir/package.json" ]]; then
122
+ STACK_TYPE="node"
123
+ if [[ -f "$project_dir/pnpm-lock.yaml" ]]; then
124
+ BUILD_TOOL="pnpm"
125
+ elif [[ -f "$project_dir/yarn.lock" ]]; then
126
+ BUILD_TOOL="yarn"
127
+ else
128
+ BUILD_TOOL="npm"
129
+ fi
130
+ return
131
+ fi
132
+
133
+ # Python (detection order: uv > poetry > pipenv > pip)
134
+ if [[ -f "$project_dir/pyproject.toml" || -f "$project_dir/setup.py" || -f "$project_dir/requirements.txt" ]]; then
135
+ STACK_TYPE="python"
136
+ if [[ -f "$project_dir/uv.lock" ]]; then
137
+ BUILD_TOOL="uv"
138
+ elif [[ -f "$project_dir/poetry.lock" ]]; then
139
+ BUILD_TOOL="poetry"
140
+ elif [[ -f "$project_dir/Pipfile" ]]; then
141
+ BUILD_TOOL="pipenv"
142
+ else
143
+ BUILD_TOOL="pip"
144
+ fi
145
+ return
146
+ fi
147
+
148
+ # Go
149
+ if [[ -f "$project_dir/go.mod" ]]; then
150
+ STACK_TYPE="go"
151
+ BUILD_TOOL="go"
152
+ return
153
+ fi
154
+
155
+ # Rust
156
+ if [[ -f "$project_dir/Cargo.toml" ]]; then
157
+ STACK_TYPE="rust"
158
+ BUILD_TOOL="cargo"
159
+ return
160
+ fi
161
+ }
162
+
163
+ # =============================================================================
164
+ # detect_framework - Locate the project-starter-framework directory
165
+ # =============================================================================
166
+ # Sets: FRAMEWORK_DIR (path to framework root, or empty string)
167
+ # HAS_OPTIONAL (true/false if optional/ dir exists)
168
+ #
169
+ # Usage: detect_framework
170
+ # =============================================================================
171
+ # shellcheck disable=SC2034 # FRAMEWORK_DIR, HAS_OPTIONAL used by callers
172
+ detect_framework() {
173
+ FRAMEWORK_DIR=""
174
+ HAS_OPTIONAL=false
175
+ if [[ -d "templates" && -d ".ai-config" ]]; then
176
+ FRAMEWORK_DIR="."
177
+ elif [[ -d "../templates" && -d "../.ai-config" ]]; then
178
+ FRAMEWORK_DIR=".."
179
+ fi
180
+ if [[ -n "$FRAMEWORK_DIR" && -d "$FRAMEWORK_DIR/optional" ]]; then
181
+ HAS_OPTIONAL=true
182
+ fi
183
+ }
@@ -266,3 +266,35 @@ Si ya usas vibekanban:
266
266
  3. Agregar frontmatter YAML a archivos existentes (CONTEXT, DECISIONS, etc.)
267
267
  4. Agregar inline fields Dataview a ADRs y blockers existentes
268
268
  5. Actualizar `.gitignore` con el snippet de Obsidian
269
+
270
+ ## Role-Based Templates
271
+
272
+ Obsidian Brain includes role-based templates organized by persona, sourced from vault/Javi.Dots:
273
+
274
+ ### Core Templates (`core/templates/`)
275
+ | Template | Purpose |
276
+ |----------|---------|
277
+ | `daily-note.md` | Daily focus, notes, reflections |
278
+ | `braindump.md` | Quick unstructured idea capture |
279
+ | `consolidation.md` | Weekly knowledge consolidation |
280
+ | `resource-capture.md` | Annotated resource bookmarking |
281
+
282
+ ### Developer Templates (`developer/templates/`)
283
+ | Template | Purpose |
284
+ |----------|---------|
285
+ | `coding-session.md` | Goal, work log, blockers, decisions, next steps |
286
+ | `adr.md` | Architecture Decision Record with decision map |
287
+ | `debug-journal.md` | Structured debugging sessions |
288
+ | `sdd-feedback.md` | Spec-Driven Development feedback |
289
+ | `tech-debt.md` | Technical debt tracking |
290
+
291
+ ### PM/Lead Templates (`pm-lead/templates/`)
292
+ | Template | Purpose |
293
+ |----------|---------|
294
+ | `daily-brief.md` | Daily standup summary |
295
+ | `weekly-brief.md` | Weekly progress report |
296
+ | `sprint-review.md` | Sprint retrospective |
297
+ | `meeting-notes.md` | Structured meeting notes |
298
+ | `risk-registry.md` | Risk tracking and mitigation |
299
+ | `stakeholder-update.md` | Stakeholder communication |
300
+ | `team-intelligence.md` | Team performance patterns |
@@ -0,0 +1,15 @@
1
+ ---
2
+ title:
3
+ date: "{{date}} {{time}}"
4
+ tags:
5
+ - braindump
6
+ - inbox
7
+ ---
8
+
9
+ ## Thought
10
+
11
+ ## Context
12
+
13
+ ## Related Notes
14
+
15
+ -
@@ -0,0 +1,42 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - consolidation
6
+ - weekly
7
+ ---
8
+
9
+ ## Period
10
+
11
+ ## Top Insights
12
+
13
+ -
14
+
15
+ ## Connections Made
16
+
17
+ -
18
+
19
+ ## Open Questions
20
+
21
+ -
22
+
23
+ ## Action Items
24
+
25
+ - [ ]
26
+
27
+ ## Mind Map
28
+
29
+ ```markmap
30
+ # Weekly Insights
31
+
32
+ ## Theme A
33
+ - [[entity-1]]
34
+ - [[entity-2]]
35
+
36
+ ## Theme B
37
+ - [[entity-3]]
38
+ - [[entity-4]]
39
+
40
+ ## Connections
41
+ - [[entity-1]] ↔ [[entity-3]]
42
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - daily
6
+ ---
7
+
8
+ ## Today's Focus
9
+
10
+ -
11
+
12
+ ## Notes
13
+
14
+ ## Reflections
15
+
16
+ ## Tomorrow
17
+
18
+ - [ ]
@@ -0,0 +1,14 @@
1
+ ---
2
+ title:
3
+ date: "{{date}} {{time}}"
4
+ tags:
5
+ - resource
6
+ ---
7
+
8
+ ## Source
9
+
10
+ ## Summary
11
+
12
+ ## Key Takeaways
13
+
14
+ -
@@ -0,0 +1,40 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - adr
6
+ - architecture
7
+ status:
8
+ ---
9
+
10
+ ## Context
11
+
12
+ ## Decision
13
+
14
+ ## Consequences
15
+
16
+ -
17
+
18
+ ## Alternatives Considered
19
+
20
+ | Alternative | Pros | Cons |
21
+ |-------------|------|------|
22
+ | | | |
23
+
24
+ ## Decision Map
25
+
26
+ ```markmap
27
+ # Decision Title
28
+
29
+ ## Option A
30
+ ### Pros
31
+ - Low complexity
32
+ ### Cons
33
+ - Limited scalability
34
+
35
+ ## Option B
36
+ ### Pros
37
+ - Future-proof
38
+ ### Cons
39
+ - Higher effort
40
+ ```
@@ -0,0 +1,24 @@
1
+ ---
2
+ title:
3
+ date: "{{date}} {{time}}"
4
+ tags:
5
+ - coding-session
6
+ ---
7
+
8
+ ## Goal
9
+
10
+ ## What I Did
11
+
12
+ -
13
+
14
+ ## Blockers
15
+
16
+ -
17
+
18
+ ## Decisions Made
19
+
20
+ -
21
+
22
+ ## Next Steps
23
+
24
+ - [ ]
@@ -0,0 +1,22 @@
1
+ ---
2
+ title:
3
+ date: "{{date}} {{time}}"
4
+ tags:
5
+ - debug
6
+ ---
7
+
8
+ ## Symptom
9
+
10
+ ## Hypothesis
11
+
12
+ -
13
+
14
+ ## Investigation
15
+
16
+ ## Root Cause
17
+
18
+ ## Fix
19
+
20
+ ## Lessons Learned
21
+
22
+ -
@@ -0,0 +1,27 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - sdd
6
+ - feedback
7
+ ---
8
+
9
+ ## Change Name
10
+
11
+ ## Phase Completed
12
+
13
+ ## What Worked
14
+
15
+ -
16
+
17
+ ## What Didn't
18
+
19
+ -
20
+
21
+ ## Improvements
22
+
23
+ -
24
+
25
+ ## Link to Engram
26
+
27
+ <!-- Optional: engram:// link -->
@@ -0,0 +1,20 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - tech-debt
6
+ ---
7
+
8
+ ## Area
9
+
10
+ ## Description
11
+
12
+ ## Impact
13
+
14
+ ## Effort Estimate
15
+
16
+ ## Priority
17
+
18
+ ## Plan
19
+
20
+ - [ ]
@@ -0,0 +1,25 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - brief
6
+ - daily
7
+ ---
8
+
9
+ ## Top 3 Priorities
10
+
11
+ 1.
12
+ 2.
13
+ 3.
14
+
15
+ ## Blockers
16
+
17
+ -
18
+
19
+ ## Key Decisions Needed
20
+
21
+ -
22
+
23
+ ## FYI
24
+
25
+ -
@@ -0,0 +1,24 @@
1
+ ---
2
+ title:
3
+ date: "{{date}} {{time}}"
4
+ tags:
5
+ - meeting
6
+ ---
7
+
8
+ ## Attendees
9
+
10
+ -
11
+
12
+ ## Agenda
13
+
14
+ 1.
15
+
16
+ ## Discussion
17
+
18
+ ## Decisions
19
+
20
+ -
21
+
22
+ ## Action Items
23
+
24
+ - [ ]
@@ -0,0 +1,12 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - risk
6
+ ---
7
+
8
+ ## Risk Registry
9
+
10
+ | ID | Description | Likelihood | Impact | Mitigation | Owner | Status |
11
+ |----|-------------|------------|--------|------------|-------|--------|
12
+ | | | | | | | |
@@ -0,0 +1,27 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - sprint
6
+ - review
7
+ ---
8
+
9
+ ## Sprint Goal
10
+
11
+ ## Completed
12
+
13
+ -
14
+
15
+ ## Not Completed
16
+
17
+ -
18
+
19
+ ## Metrics
20
+
21
+ | Metric | Value |
22
+ |--------|-------|
23
+ | | |
24
+
25
+ ## Retrospective Notes
26
+
27
+ -
@@ -0,0 +1,24 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - stakeholder
6
+ - update
7
+ ---
8
+
9
+ ## Summary
10
+
11
+ ## Progress
12
+
13
+ -
14
+
15
+ ## Risks
16
+
17
+ -
18
+
19
+ ## Next Steps
20
+
21
+ -
22
+
23
+ ## Ask
24
+
@@ -0,0 +1,19 @@
1
+ ---
2
+ title:
3
+ date: "{{date}}"
4
+ tags:
5
+ - team
6
+ - intelligence
7
+ ---
8
+
9
+ ## Observation
10
+
11
+ ## Context
12
+
13
+ ## Pattern
14
+
15
+ ## Recommendation
16
+
17
+ ## Shared With
18
+
19
+ -