@eltonssouza/development-utility-kit 1.0.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.
- package/.claude/agents/analyst.md +198 -0
- package/.claude/agents/backend-developer.md +126 -0
- package/.claude/agents/brain-keeper.md +229 -0
- package/.claude/agents/code-reviewer.md +181 -0
- package/.claude/agents/database-engineer.md +94 -0
- package/.claude/agents/devops-engineer.md +141 -0
- package/.claude/agents/frontend-developer.md +97 -0
- package/.claude/agents/gate-keeper.md +118 -0
- package/.claude/agents/migrator.md +291 -0
- package/.claude/agents/mobile-developer.md +80 -0
- package/.claude/agents/n8n-specialist.md +94 -0
- package/.claude/agents/product-owner.md +115 -0
- package/.claude/agents/qa-engineer.md +232 -0
- package/.claude/agents/release-engineer.md +204 -0
- package/.claude/agents/scaffold.md +87 -0
- package/.claude/agents/security-engineer.md +199 -0
- package/.claude/agents/sprint-runner.md +44 -0
- package/.claude/agents/stack-resolver.md +84 -0
- package/.claude/agents/tech-lead.md +182 -0
- package/.claude/agents/update-template.md +54 -0
- package/.claude/agents/ux-designer.md +118 -0
- package/.claude/settings.json +44 -0
- package/.claude/skills/README.md +332 -0
- package/.claude/skills/active-project/SKILL.md +129 -0
- package/.claude/skills/api-integration-test/SKILL.md +64 -0
- package/.claude/skills/auto-test-guard/SKILL.md +237 -0
- package/.claude/skills/auto-test-guard/resources/backend-tests.md +20 -0
- package/.claude/skills/auto-test-guard/resources/e2e-tests.md +24 -0
- package/.claude/skills/auto-test-guard/resources/execution-report.md +49 -0
- package/.claude/skills/auto-test-guard/resources/frontend-tests.md +18 -0
- package/.claude/skills/auto-test-guard/resources/initial-setup.md +108 -0
- package/.claude/skills/auto-test-guard/resources/run-suite.md +48 -0
- package/.claude/skills/auto-test-guard/resources/senior-gate.md +19 -0
- package/.claude/skills/brain-keeper/SKILL.md +60 -0
- package/.claude/skills/brain-keeper/obsidian/app.json +9 -0
- package/.claude/skills/brain-keeper/obsidian/appearance.json +4 -0
- package/.claude/skills/brain-keeper/obsidian/core-plugins.json +20 -0
- package/.claude/skills/brain-keeper/obsidian/daily-notes.json +5 -0
- package/.claude/skills/brain-keeper/obsidian/graph.json +32 -0
- package/.claude/skills/brain-keeper/obsidian/snippets/folder-colors.css +90 -0
- package/.claude/skills/brain-keeper/obsidian/templates.json +5 -0
- package/.claude/skills/brain-keeper/templates/README.md +51 -0
- package/.claude/skills/brain-keeper/templates/adr.md +40 -0
- package/.claude/skills/brain-keeper/templates/bug.md +35 -0
- package/.claude/skills/brain-keeper/templates/daily.md +38 -0
- package/.claude/skills/brain-keeper/templates/feature.md +62 -0
- package/.claude/skills/brain-keeper/templates/meeting.md +34 -0
- package/.claude/skills/brain-keeper/templates/tech-debt.md +21 -0
- package/.claude/skills/caveman/SKILL.md +187 -0
- package/.claude/skills/create-stack-pack/SKILL.md +281 -0
- package/.claude/skills/grill-me/SKILL.md +79 -0
- package/.claude/skills/honcho-memory/SKILL.md +207 -0
- package/.claude/skills/honcho-memory/docs/api-endpoints-verified.md +75 -0
- package/.claude/skills/honcho-memory/hooks/on-prompt-submit.js +221 -0
- package/.claude/skills/honcho-memory/hooks/on-stop.js +193 -0
- package/.claude/skills/honcho-memory/lib/honcho-client.js +363 -0
- package/.claude/skills/honcho-memory/lib/memory-injector.js +93 -0
- package/.claude/skills/honcho-memory/package.json +32 -0
- package/.claude/skills/honcho-memory/scripts/cli.js +370 -0
- package/.claude/skills/honcho-memory/scripts/setup.js +109 -0
- package/.claude/skills/honcho-memory/tests/t001-api-endpoints-verified.test.js +89 -0
- package/.claude/skills/honcho-memory/tests/t002-structure.test.js +97 -0
- package/.claude/skills/honcho-memory/tests/t003-honcho-client.test.js +162 -0
- package/.claude/skills/honcho-memory/tests/t004-soft-delete.test.js +259 -0
- package/.claude/skills/honcho-memory/tests/t005-memory-injector.test.js +175 -0
- package/.claude/skills/honcho-memory/tests/t006-on-prompt-submit.test.js +215 -0
- package/.claude/skills/honcho-memory/tests/t007-on-stop.test.js +165 -0
- package/.claude/skills/honcho-memory/tests/t008-cli.test.js +214 -0
- package/.claude/skills/honcho-memory/tests/t009-setup.test.js +232 -0
- package/.claude/skills/honcho-memory/tests/t010-skill-md.test.js +114 -0
- package/.claude/skills/honcho-memory/tests/t011-settings-hooks.test.js +105 -0
- package/.claude/skills/honcho-memory/tests/t012-docs-update.test.js +106 -0
- package/.claude/skills/honcho-memory/tests/t013-smoke-e2e.test.js +90 -0
- package/.claude/skills/pair-debug/SKILL.md +288 -0
- package/.claude/skills/prd-ready-check/SKILL.md +58 -0
- package/.claude/skills/project-manager/SKILL.md +167 -0
- package/.claude/skills/quality-standards/SKILL.md +201 -0
- package/.claude/skills/quick-feature/SKILL.md +264 -0
- package/.claude/skills/run-sprint/SKILL.md +342 -0
- package/.claude/skills/scaffold/SKILL.md +58 -0
- package/.claude/skills/stack-discovery/SKILL.md +159 -0
- package/.claude/skills/test-coverage-auditor/SKILL.md +59 -0
- package/.claude/skills/to-issues/SKILL.md +163 -0
- package/.claude/skills/to-prd/SKILL.md +130 -0
- package/.claude/skills/update-template/SKILL.md +254 -0
- package/.claude/stacks/CODEOWNERS +30 -0
- package/.claude/stacks/README.md +88 -0
- package/.claude/stacks/_template.md +116 -0
- package/.claude/stacks/java/spring-boot-3.md +376 -0
- package/.claude/stacks/java/spring-boot-4.md +438 -0
- package/.claude/stacks/typescript/angular-18.md +420 -0
- package/.claude/stacks/typescript/angular-19.md +397 -0
- package/.claude/stacks/typescript/angular-21.md +494 -0
- package/CLAUDE.md +453 -0
- package/README.md +391 -0
- package/bin/cli.js +773 -0
- package/bin/lib/backup.js +62 -0
- package/bin/lib/detect-stack.js +476 -0
- package/bin/lib/help.js +233 -0
- package/bin/lib/identity.js +108 -0
- package/bin/lib/local-dir.js +69 -0
- package/bin/lib/manifest.js +236 -0
- package/bin/lib/sync-all.js +394 -0
- package/bin/lib/version-check.js +398 -0
- package/dashboard/db.js +199 -0
- package/dashboard/package.json +22 -0
- package/dashboard/public/app.js +709 -0
- package/dashboard/public/content/docs/agents-reference.en.md +911 -0
- package/dashboard/public/content/docs/architecture-overview.en.md +260 -0
- package/dashboard/public/content/docs/autonomy-matrix.en.md +186 -0
- package/dashboard/public/content/docs/git-flow.en.md +525 -0
- package/dashboard/public/content/docs/honcho-memory.en.md +394 -0
- package/dashboard/public/content/docs/hooks-reference.en.md +420 -0
- package/dashboard/public/content/docs/pipeline.en.md +400 -0
- package/dashboard/public/content/docs/quality-gate.en.md +315 -0
- package/dashboard/public/content/docs/skills-reference.en.md +500 -0
- package/dashboard/public/content/docs/stack-rules.en.md +362 -0
- package/dashboard/public/content/docs/troubleshooting.en.md +637 -0
- package/dashboard/public/content/manifest.json +102 -0
- package/dashboard/public/content/manual/backend.en.md +1138 -0
- package/dashboard/public/content/manual/existing-project.en.md +831 -0
- package/dashboard/public/content/manual/frontend.en.md +1065 -0
- package/dashboard/public/content/manual/fullstack.en.md +1508 -0
- package/dashboard/public/content/manual/mobile.en.md +866 -0
- package/dashboard/public/index.html +108 -0
- package/dashboard/public/style.css +610 -0
- package/dashboard/public/vendor/marked.min.js +69 -0
- package/dashboard/rtk.js +143 -0
- package/dashboard/server-app.js +403 -0
- package/dashboard/server.js +104 -0
- package/dashboard/test/sprint1.test.js +406 -0
- package/dashboard/test/sprint2.test.js +571 -0
- package/dashboard/test/sprint3.test.js +560 -0
- package/package.json +33 -0
- package/scripts/hooks/subagent-telemetry.sh +14 -0
- package/scripts/hooks/telemetry-writer.js +250 -0
- package/scripts/latest-versions.json +56 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brain-keeper
|
|
3
|
+
description: Use when completing a PLAN_* (end of run-sprint pipeline or close of run-sprint) to record development history in the Obsidian vault at docs/brain/. Triggers with "record in the brain", "update brain", "log of the day", "save ADR in vault", "close feature in brain", "record history", "update obsidian", "close sprint in vault". Creates daily/YYYY-MM-DD.md, features/<slug>.md, decisions/ADR-NNN-*.md (if new decision), bugs/<slug>.md (if fix), append in architecture/tech-debt.md (if debt accepted) and updates MOC. Provisions docs/brain/ + .obsidian/ with per-folder color snippet on first run. Idempotent WRITE-mode. DO NOT use for history questions (read vault directly) nor for trivial tasks. PT triggers: 'registra no cérebro', 'atualiza brain', 'log do dia', 'salva ADR no vault', 'fecha feature no brain', 'registra histórico', 'atualiza obsidian', 'encerra sprint no vault'.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brain Keeper — History Recording in the Obsidian Vault
|
|
7
|
+
|
|
8
|
+
Skill that invokes the `brain-keeper` agent. Triggered upon completing each PLAN_*. Always reply in **American English**.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## When to trigger
|
|
13
|
+
|
|
14
|
+
**Automatic**:
|
|
15
|
+
- `run-sprint` Stage 7 (after PRD-ready GO).
|
|
16
|
+
- `run-sprint` at sprint close (after `auto-test-guard` green gate).
|
|
17
|
+
|
|
18
|
+
**Manual** (user says):
|
|
19
|
+
- "record in the brain", "update brain", "log of the day"
|
|
20
|
+
- "save ADR in vault", "close feature in brain"
|
|
21
|
+
- "close sprint in vault", "record history"
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Prerequisites
|
|
26
|
+
|
|
27
|
+
- A `PLAN_*.md` exists in `docs/plans/` for the completed work.
|
|
28
|
+
- The sprint or task is finished (gate-keeper returned GREEN or the user confirmed done).
|
|
29
|
+
- `docs/brain/` may or may not exist — the agent provisions it on first run.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Do NOT use for
|
|
34
|
+
|
|
35
|
+
- History questions — read the vault directly with Read/Grep tools.
|
|
36
|
+
- Trivial tasks without a PLAN_*.
|
|
37
|
+
- Manual edits of existing notes — the user edits; this skill only appends/creates.
|
|
38
|
+
- Deleting or archiving vault notes — user decides manually.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Dispatch
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Task(
|
|
46
|
+
subagent_type: "brain-keeper",
|
|
47
|
+
description: "Record development history in the Obsidian vault at docs/brain/. Provision vault structure if missing. Create or update daily, feature, ADR, bug, tech-debt notes and MOC.",
|
|
48
|
+
prompt: "<full user message + plan path + sprint output summary>"
|
|
49
|
+
)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Handoff
|
|
55
|
+
|
|
56
|
+
The `brain-keeper` agent (`.claude/agents/brain-keeper.md`, model: sonnet) owns the complete execution contract:
|
|
57
|
+
- Full provisioning flow for `docs/brain/` and `.obsidian/`.
|
|
58
|
+
- Recording flow: daily, feature, ADR, bug, tech-debt, MOC.
|
|
59
|
+
- Per-folder color table and graph.json configuration.
|
|
60
|
+
- Idempotency and link-validation rules.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
"file-explorer",
|
|
3
|
+
"global-search",
|
|
4
|
+
"switcher",
|
|
5
|
+
"graph",
|
|
6
|
+
"backlink",
|
|
7
|
+
"outgoing-link",
|
|
8
|
+
"tag-pane",
|
|
9
|
+
"page-preview",
|
|
10
|
+
"daily-notes",
|
|
11
|
+
"templates",
|
|
12
|
+
"note-composer",
|
|
13
|
+
"command-palette",
|
|
14
|
+
"editor-status",
|
|
15
|
+
"starred",
|
|
16
|
+
"markdown-importer",
|
|
17
|
+
"outline",
|
|
18
|
+
"word-count",
|
|
19
|
+
"file-recovery"
|
|
20
|
+
]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"collapse-filter": true,
|
|
3
|
+
"search": "",
|
|
4
|
+
"showTags": false,
|
|
5
|
+
"showAttachments": false,
|
|
6
|
+
"hideUnresolved": false,
|
|
7
|
+
"showOrphans": true,
|
|
8
|
+
"collapse-color-groups": false,
|
|
9
|
+
"colorGroups": [
|
|
10
|
+
{ "query": "path:_templates", "color": { "a": 1, "rgb": 9741240 } },
|
|
11
|
+
{ "query": "path:api", "color": { "a": 1, "rgb": 3900150 } },
|
|
12
|
+
{ "query": "path:architecture", "color": { "a": 1, "rgb": 11032055 } },
|
|
13
|
+
{ "query": "path:bugs", "color": { "a": 1, "rgb": 15680580 } },
|
|
14
|
+
{ "query": "path:daily", "color": { "a": 1, "rgb": 2278750 } },
|
|
15
|
+
{ "query": "path:database", "color": { "a": 1, "rgb": 16347926 } },
|
|
16
|
+
{ "query": "path:decisions", "color": { "a": 1, "rgb": 15381256 } },
|
|
17
|
+
{ "query": "path:features", "color": { "a": 1, "rgb": 440020 } },
|
|
18
|
+
{ "query": "path:meetings", "color": { "a": 1, "rgb": 15485081 } }
|
|
19
|
+
],
|
|
20
|
+
"collapse-display": true,
|
|
21
|
+
"showArrow": false,
|
|
22
|
+
"textFadeMultiplier": 0,
|
|
23
|
+
"nodeSizeMultiplier": 1,
|
|
24
|
+
"lineSizeMultiplier": 1,
|
|
25
|
+
"collapse-forces": true,
|
|
26
|
+
"centerStrength": 0.518713248970312,
|
|
27
|
+
"repelStrength": 10,
|
|
28
|
+
"linkStrength": 1,
|
|
29
|
+
"linkDistance": 250,
|
|
30
|
+
"scale": 1,
|
|
31
|
+
"close": true
|
|
32
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* folder-colors.css
|
|
3
|
+
* Cores por pasta no file explorer do Obsidian.
|
|
4
|
+
* Aplicado a:
|
|
5
|
+
* - Título da pasta no nav lateral
|
|
6
|
+
* - Arquivos dentro da pasta (cor mais clara/diluída)
|
|
7
|
+
*
|
|
8
|
+
* Editar paleta? Troque os valores hex abaixo.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* _templates — slate */
|
|
12
|
+
.nav-folder-title[data-path="_templates"] .nav-folder-title-content,
|
|
13
|
+
.nav-file-title[data-path^="_templates/"] .nav-file-title-content {
|
|
14
|
+
color: #94a3b8;
|
|
15
|
+
}
|
|
16
|
+
.nav-folder-title[data-path="_templates"]::before {
|
|
17
|
+
content: "🩶 ";
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* api — azul */
|
|
21
|
+
.nav-folder-title[data-path="api"] .nav-folder-title-content,
|
|
22
|
+
.nav-file-title[data-path^="api/"] .nav-file-title-content {
|
|
23
|
+
color: #3b82f6;
|
|
24
|
+
}
|
|
25
|
+
.nav-folder-title[data-path="api"]::before {
|
|
26
|
+
content: "🔵 ";
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* architecture — roxo */
|
|
30
|
+
.nav-folder-title[data-path="architecture"] .nav-folder-title-content,
|
|
31
|
+
.nav-file-title[data-path^="architecture/"] .nav-file-title-content {
|
|
32
|
+
color: #a855f7;
|
|
33
|
+
}
|
|
34
|
+
.nav-folder-title[data-path="architecture"]::before {
|
|
35
|
+
content: "🟣 ";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* bugs — vermelho */
|
|
39
|
+
.nav-folder-title[data-path="bugs"] .nav-folder-title-content,
|
|
40
|
+
.nav-file-title[data-path^="bugs/"] .nav-file-title-content {
|
|
41
|
+
color: #ef4444;
|
|
42
|
+
}
|
|
43
|
+
.nav-folder-title[data-path="bugs"]::before {
|
|
44
|
+
content: "🔴 ";
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* daily — verde */
|
|
48
|
+
.nav-folder-title[data-path="daily"] .nav-folder-title-content,
|
|
49
|
+
.nav-file-title[data-path^="daily/"] .nav-file-title-content {
|
|
50
|
+
color: #22c55e;
|
|
51
|
+
}
|
|
52
|
+
.nav-folder-title[data-path="daily"]::before {
|
|
53
|
+
content: "🟢 ";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* database — laranja */
|
|
57
|
+
.nav-folder-title[data-path="database"] .nav-folder-title-content,
|
|
58
|
+
.nav-file-title[data-path^="database/"] .nav-file-title-content {
|
|
59
|
+
color: #f97316;
|
|
60
|
+
}
|
|
61
|
+
.nav-folder-title[data-path="database"]::before {
|
|
62
|
+
content: "🟠 ";
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* decisions — amarelo */
|
|
66
|
+
.nav-folder-title[data-path="decisions"] .nav-folder-title-content,
|
|
67
|
+
.nav-file-title[data-path^="decisions/"] .nav-file-title-content {
|
|
68
|
+
color: #eab308;
|
|
69
|
+
}
|
|
70
|
+
.nav-folder-title[data-path="decisions"]::before {
|
|
71
|
+
content: "🟡 ";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* features — ciano */
|
|
75
|
+
.nav-folder-title[data-path="features"] .nav-folder-title-content,
|
|
76
|
+
.nav-file-title[data-path^="features/"] .nav-file-title-content {
|
|
77
|
+
color: #06b6d4;
|
|
78
|
+
}
|
|
79
|
+
.nav-folder-title[data-path="features"]::before {
|
|
80
|
+
content: "🔷 ";
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* meetings — rosa */
|
|
84
|
+
.nav-folder-title[data-path="meetings"] .nav-folder-title-content,
|
|
85
|
+
.nav-file-title[data-path^="meetings/"] .nav-file-title-content {
|
|
86
|
+
color: #ec4899;
|
|
87
|
+
}
|
|
88
|
+
.nav-folder-title[data-path="meetings"]::before {
|
|
89
|
+
content: "🩷 ";
|
|
90
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Project Brain — MOC
|
|
3
|
+
type: moc
|
|
4
|
+
created: YYYY-MM-DD
|
|
5
|
+
updated: YYYY-MM-DD
|
|
6
|
+
tags: [moc]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 🧠 Project Brain
|
|
10
|
+
|
|
11
|
+
Map of Content (MOC) — main index of the Obsidian vault. Updated automatically by `brain-keeper` upon completing each PLAN_*.
|
|
12
|
+
|
|
13
|
+
## Structure
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
docs/brain/
|
|
17
|
+
├── _templates/ 🩶 templates (adr, feature, bug, daily, meeting)
|
|
18
|
+
├── api/ 🔵 REST contracts, endpoint changelog
|
|
19
|
+
├── architecture/ 🟣 system view, diagrams, tech-debt.md
|
|
20
|
+
├── bugs/ 🔴 postmortems
|
|
21
|
+
├── daily/ 🟢 daily log
|
|
22
|
+
├── database/ 🟠 model, migrations, schema
|
|
23
|
+
├── decisions/ 🟡 ADRs
|
|
24
|
+
├── features/ 🔷 notes per feature
|
|
25
|
+
└── meetings/ 🩷 minutes
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Recent decisions
|
|
29
|
+
|
|
30
|
+
_Added by brain-keeper._
|
|
31
|
+
|
|
32
|
+
## Active features
|
|
33
|
+
|
|
34
|
+
_Added by brain-keeper._
|
|
35
|
+
|
|
36
|
+
## Open / recent bugs
|
|
37
|
+
|
|
38
|
+
_Added by brain-keeper._
|
|
39
|
+
|
|
40
|
+
## Technical debt
|
|
41
|
+
|
|
42
|
+
→ [[architecture/tech-debt]]
|
|
43
|
+
|
|
44
|
+
## How to navigate
|
|
45
|
+
|
|
46
|
+
- **Why did we decide X?** → [[decisions/]]
|
|
47
|
+
- **How does Y work?** → [[features/]]
|
|
48
|
+
- **What was done yesterday?** → [[daily/]]
|
|
49
|
+
- **Did we have a bug with Z?** → [[bugs/]]
|
|
50
|
+
- **What's the contract for endpoint E?** → [[api/]]
|
|
51
|
+
- **How is table T modeled?** → [[database/]]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ADR-NNN — <short title>
|
|
3
|
+
type: ADR
|
|
4
|
+
status: Accepted
|
|
5
|
+
created: YYYY-MM-DD
|
|
6
|
+
updated: YYYY-MM-DD
|
|
7
|
+
tags: [decision]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-NNN: <short title>
|
|
11
|
+
|
|
12
|
+
- **Status**: Proposed | Accepted | Superseded by ADR-XXX | Deprecated
|
|
13
|
+
- **Date**: YYYY-MM-DD
|
|
14
|
+
|
|
15
|
+
## Context
|
|
16
|
+
|
|
17
|
+
_Why is this decision necessary? What problem or force is pushing toward a decision?_
|
|
18
|
+
|
|
19
|
+
## Decision
|
|
20
|
+
|
|
21
|
+
_What was decided, clearly and affirmatively._
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
**Gains:**
|
|
26
|
+
- ...
|
|
27
|
+
|
|
28
|
+
**Losses / costs:**
|
|
29
|
+
- ...
|
|
30
|
+
|
|
31
|
+
## Alternatives discarded
|
|
32
|
+
|
|
33
|
+
- **Alternative A**: why it was rejected
|
|
34
|
+
- **Alternative B**: why it was rejected
|
|
35
|
+
|
|
36
|
+
## References
|
|
37
|
+
|
|
38
|
+
- [[../daily/YYYY-MM-DD|Daily]]
|
|
39
|
+
- [[../features/slug|Feature]]
|
|
40
|
+
- Related commits / PRs
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: <short description>
|
|
3
|
+
type: bug
|
|
4
|
+
status: fixed
|
|
5
|
+
severity: P0|P1|P2|P3
|
|
6
|
+
created: YYYY-MM-DD
|
|
7
|
+
updated: YYYY-MM-DD
|
|
8
|
+
tags: [bug]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 🐛 <short description>
|
|
12
|
+
|
|
13
|
+
## Symptom
|
|
14
|
+
|
|
15
|
+
_How did the bug manifest? Error message, observed behavior, impact._
|
|
16
|
+
|
|
17
|
+
## Root cause
|
|
18
|
+
|
|
19
|
+
_Technical analysis. Don't confuse symptom with cause._
|
|
20
|
+
|
|
21
|
+
## Fix applied
|
|
22
|
+
|
|
23
|
+
_What was changed to resolve. Cite files/lines._
|
|
24
|
+
|
|
25
|
+
## Prevention
|
|
26
|
+
|
|
27
|
+
- New test: ...
|
|
28
|
+
- Lint rule / review rule: ...
|
|
29
|
+
- ADR: [[../decisions/ADR-NNN-slug|ADR-NNN]] (if applicable)
|
|
30
|
+
|
|
31
|
+
## References
|
|
32
|
+
|
|
33
|
+
- [[../daily/YYYY-MM-DD|Daily]]
|
|
34
|
+
- [[../features/slug|Related feature]]
|
|
35
|
+
- Commit / PR
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: YYYY-MM-DD — <day summary>
|
|
3
|
+
type: daily
|
|
4
|
+
created: YYYY-MM-DD
|
|
5
|
+
updated: YYYY-MM-DD
|
|
6
|
+
tags: [daily]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 📅 YYYY-MM-DD
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
_1-2 lines about the main goal of the day._
|
|
14
|
+
|
|
15
|
+
## Done
|
|
16
|
+
|
|
17
|
+
- Feature: [[../features/slug|name]]
|
|
18
|
+
- Fix: [[../bugs/slug|description]]
|
|
19
|
+
- Refactor: ...
|
|
20
|
+
|
|
21
|
+
## Decisions
|
|
22
|
+
|
|
23
|
+
- [[../decisions/ADR-NNN-slug|ADR-NNN]] — title
|
|
24
|
+
|
|
25
|
+
## Files
|
|
26
|
+
|
|
27
|
+
**Created:** ...
|
|
28
|
+
**Changed:** ...
|
|
29
|
+
**Deleted:** ...
|
|
30
|
+
|
|
31
|
+
## Blockers
|
|
32
|
+
|
|
33
|
+
_What stalled progress? Waiting on whose decision? External dependency?_
|
|
34
|
+
|
|
35
|
+
## Tomorrow
|
|
36
|
+
|
|
37
|
+
- Next step 1
|
|
38
|
+
- Next step 2
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: <feature name>
|
|
3
|
+
type: feature
|
|
4
|
+
status: in-progress
|
|
5
|
+
created: YYYY-MM-DD
|
|
6
|
+
updated: YYYY-MM-DD
|
|
7
|
+
plan: docs/plans/PLAN_<NAME>.md
|
|
8
|
+
tags: [feature]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ✨ <feature name>
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
_What business problem does this feature solve? What value is delivered?_
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
- [ ] FR: ...
|
|
20
|
+
- [ ] NFR: ...
|
|
21
|
+
- [ ] BR: ...
|
|
22
|
+
- [ ] IR: ...
|
|
23
|
+
|
|
24
|
+
## Decisions made
|
|
25
|
+
|
|
26
|
+
- [[../decisions/ADR-NNN-slug|ADR-NNN]] — decision title
|
|
27
|
+
- Minor decisions (without ADR) recorded here
|
|
28
|
+
|
|
29
|
+
## Implementation
|
|
30
|
+
|
|
31
|
+
### Backend
|
|
32
|
+
|
|
33
|
+
- Endpoints: `GET /api/v1/...`, `POST /api/v1/...`
|
|
34
|
+
- Entities: ...
|
|
35
|
+
- Use cases: ...
|
|
36
|
+
- Migrations: `V202X__description.sql`
|
|
37
|
+
|
|
38
|
+
### Frontend
|
|
39
|
+
|
|
40
|
+
- Routes: `/path`
|
|
41
|
+
- Components: `FeatureListComponent`, `FeatureFormComponent`
|
|
42
|
+
- Services: `FeatureService`
|
|
43
|
+
|
|
44
|
+
## Tests
|
|
45
|
+
|
|
46
|
+
- Backend (JUnit + Mockito + Testcontainers): N
|
|
47
|
+
- Frontend (Jest + Testing Library): N
|
|
48
|
+
- E2E (Playwright): N
|
|
49
|
+
- Coverage: backend X% / frontend Y%
|
|
50
|
+
|
|
51
|
+
## References
|
|
52
|
+
|
|
53
|
+
- Plan: [[../../plans/PLAN_<NAME>|PLAN_<NAME>]]
|
|
54
|
+
- Start daily: [[../daily/YYYY-MM-DD]]
|
|
55
|
+
- Commits: ...
|
|
56
|
+
- PR: ...
|
|
57
|
+
|
|
58
|
+
## History
|
|
59
|
+
|
|
60
|
+
| Date | Change |
|
|
61
|
+
|------|--------|
|
|
62
|
+
| YYYY-MM-DD | Created |
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: YYYY-MM-DD — <title>
|
|
3
|
+
type: meeting
|
|
4
|
+
created: YYYY-MM-DD
|
|
5
|
+
updated: YYYY-MM-DD
|
|
6
|
+
tags: [meeting]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 🗓️ <title>
|
|
10
|
+
|
|
11
|
+
- **Date**: YYYY-MM-DD
|
|
12
|
+
- **Attendees**: ...
|
|
13
|
+
|
|
14
|
+
## Agenda
|
|
15
|
+
|
|
16
|
+
1. ...
|
|
17
|
+
2. ...
|
|
18
|
+
|
|
19
|
+
## Discussion
|
|
20
|
+
|
|
21
|
+
_Relevant points._
|
|
22
|
+
|
|
23
|
+
## Decisions
|
|
24
|
+
|
|
25
|
+
- [[../decisions/ADR-NNN-slug|ADR-NNN]] — title (if it became an ADR)
|
|
26
|
+
- Minor decision: ...
|
|
27
|
+
|
|
28
|
+
## Actions
|
|
29
|
+
|
|
30
|
+
- [ ] @person — action — deadline
|
|
31
|
+
|
|
32
|
+
## References
|
|
33
|
+
|
|
34
|
+
- [[../daily/YYYY-MM-DD|Daily]]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Technical debt
|
|
3
|
+
type: tech-debt
|
|
4
|
+
created: YYYY-MM-DD
|
|
5
|
+
updated: YYYY-MM-DD
|
|
6
|
+
tags: [tech-debt, architecture]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 🔧 Technical debt
|
|
10
|
+
|
|
11
|
+
Items accepted as debt during development. Append by `brain-keeper` at the end of each PLAN_*.
|
|
12
|
+
|
|
13
|
+
Severity:
|
|
14
|
+
- **P0**: blocks production. Resolve before next release.
|
|
15
|
+
- **P1**: high risk / impact. Next sprint.
|
|
16
|
+
- **P2**: relevant but not urgent. Backlog next quarter.
|
|
17
|
+
- **P3**: cosmetic / improvement. Long backlog.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Items
|