@orderful/droid 0.46.0 → 0.47.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @orderful/droid
2
2
 
3
+ ## 0.47.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#297](https://github.com/Orderful/droid/pull/297) [`cc5caaf`](https://github.com/Orderful/droid/commit/cc5caaf929c433f67d9477b841c4b1b47aa01021) Thanks [@frytyler](https://github.com/frytyler)! - Add companion doc support to project skill (DECISIONS.md, WORKLOG.md). Projects now have size-aware updates that propose archiving completed work when PROJECT.md exceeds ~300 lines, decisions routing to a dedicated DECISIONS.md when 3+ accumulate, and simplified changelog formatting (link-only in PROJECT.md).
8
+
3
9
  ## 0.46.0
4
10
 
5
11
  ### Minor Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-project",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: project
2
2
  description: "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features."
3
- version: 0.3.6
3
+ version: 0.4.0
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -21,7 +21,7 @@ config_schema:
21
21
  required: true
22
22
  preset:
23
23
  type: select
24
- description: Output format for templates
24
+ description: "Link style: obsidian uses [[wikilinks]], markdown uses [standard](links)"
25
25
  default: "markdown"
26
26
  options:
27
27
  - markdown
@@ -7,7 +7,7 @@ allowed-tools: [Read, Write, Glob, Grep, Bash]
7
7
 
8
8
  # Project Skill
9
9
 
10
- Persistent project context that survives across sessions. Projects are folders containing `PROJECT.md` + `CHANGELOG.md`.
10
+ Persistent project context that survives across sessions. Projects are folders containing `PROJECT.md` + `CHANGELOG.md`, with optional companion docs (`DECISIONS.md`, `WORKLOG.md`) that emerge as the project grows.
11
11
 
12
12
  ## Why Projects?
13
13
 
@@ -31,7 +31,7 @@ Chat history disappears. Projects persist.
31
31
  | Setting | Default | Description |
32
32
  | -------------- | ------------ | -------------------------------------------------- |
33
33
  | `projects_dir` | **required** | Where projects are stored (must be configured) |
34
- | `preset` | `markdown` | Output format: `markdown` or `obsidian` |
34
+ | `preset` | `markdown` | Link style: `obsidian` uses `[[wikilinks]]`, `markdown` uses `[standard](links)` |
35
35
  | `override` | (none) | User-defined behaviour overrides |
36
36
 
37
37
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
@@ -106,6 +106,7 @@ Projects work best in a cycle:
106
106
  3. **Document** - Capture decisions in PROJECT.md before implementing
107
107
  4. **Implement** - Build with full context of why decisions were made
108
108
  5. **Capture** - `/project update` saves new learnings
109
- 6. **Repeat** - Next session starts with accumulated knowledge
109
+ 6. **Prune** - If PROJECT.md exceeds ~300 lines, archive completed work to WORKLOG.md
110
+ 7. **Repeat** - Next session starts with accumulated knowledge
110
111
 
111
112
  Each cycle starts further ahead than the last.
@@ -5,7 +5,7 @@ Projects use a split file pattern to minimize context usage when loading.
5
5
  ## File Structure
6
6
 
7
7
  - `CHANGELOG.md` (sibling to PROJECT.md) - Complete version history
8
- - `PROJECT.md` - Only 3 most recent entries + link to full history
8
+ - `PROJECT.md` - Link to full history only (version number lives in the metadata table)
9
9
 
10
10
  ## On Update
11
11
 
@@ -15,8 +15,8 @@ Projects use a split file pattern to minimize context usage when loading.
15
15
  2. **Add new entry to CHANGELOG.md** (prepend after header)
16
16
 
17
17
  3. **Update PROJECT.md changelog section**
18
- - Keep only 3 most recent entries
19
- - Ensure link to full history exists
18
+ - Keep only a link to CHANGELOG.md — no inline entries
19
+ - The version number in the metadata table is the quick-glance indicator
20
20
 
21
21
  ## CHANGELOG.md Format
22
22
 
@@ -35,31 +35,20 @@ All notable changes to the {Project Name} project.
35
35
 
36
36
  ## PROJECT.md Changelog Section Format
37
37
 
38
- **Markdown preset:**
39
38
  ```markdown
40
39
  ## Changelog
41
40
 
42
41
  See [CHANGELOG.md](CHANGELOG.md) for full history.
43
-
44
- ### X.Y.Z - YYYY-MM-DD
45
- - [Most recent]
46
-
47
- ### X.Y.Z - YYYY-MM-DD
48
- - [Second most recent]
49
-
50
- ### X.Y.Z - YYYY-MM-DD
51
- - [Third most recent]
52
42
  ```
53
43
 
54
- **Obsidian preset:**
55
- ```markdown
56
- ## Changelog
44
+ When `preset` is `obsidian`, use `See [[CHANGELOG|full history]].` instead.
57
45
 
58
- See [[CHANGELOG|full history]].
46
+ ## Migration
59
47
 
60
- ### X.Y.Z - YYYY-MM-DD
61
- - [Most recent]
62
- ```
48
+ If an existing PROJECT.md has inline changelog entries:
49
+ 1. Ensure all entries exist in CHANGELOG.md
50
+ 2. Replace the inline entries with just the link
51
+ 3. This happens naturally during `/project update` — no need to proactively migrate
63
52
 
64
53
  ## Guidelines
65
54
 
@@ -67,4 +56,4 @@ See [[CHANGELOG|full history]].
67
56
  - Keep entries concise but descriptive
68
57
  - Group related changes in a single bullet when appropriate
69
58
  - Most recent version at the top
70
- - Use `##` headers in CHANGELOG.md, `###` in PROJECT.md
59
+ - Use `##` headers in CHANGELOG.md
@@ -7,7 +7,6 @@
7
7
  1. **Read config first**
8
8
  - Run `droid config --get tools.project` and parse the JSON output
9
9
  - Use `projects_dir` (required - if not configured, inform user to set it up)
10
- - Use `preset` if configured (markdown or obsidian)
11
10
 
12
11
  2. **Get project name**
13
12
  - Use provided name, or ask if not provided
@@ -21,7 +20,6 @@
21
20
  4. **Create files from templates** (see `templates.md`)
22
21
  - `PROJECT.md` - Main context file
23
22
  - `CHANGELOG.md` - Version history
24
- - Format varies by `preset` config (markdown vs obsidian)
25
23
 
26
24
  5. **Confirm creation**
27
25
  - Show created folder path
@@ -62,6 +60,18 @@ New projects start minimal and grow organically. Common sections added over time
62
60
 
63
61
  See `templates.md` for the full initial template.
64
62
 
63
+ ### Companion Docs
64
+
65
+ Projects may grow companion docs over time. These are **never** created at project creation — they emerge as the project grows.
66
+
67
+ | Doc | Created When | Purpose |
68
+ |-----|-------------|---------|
69
+ | `CHANGELOG.md` | At project creation (the one exception) | Version history |
70
+ | `DECISIONS.md` | 3+ decisions accumulate in PROJECT.md | Dedicated decisions log |
71
+ | `WORKLOG.md` | PROJECT.md exceeds ~300 lines with completed items | Archive of completed work |
72
+
73
+ The `/project update` procedure handles creation and migration automatically — see `updating.md` for details.
74
+
65
75
  ---
66
76
 
67
77
  ## Creating from Codex
@@ -32,7 +32,8 @@
32
32
  - Confirm which project was loaded
33
33
  - Summarize key context (2-3 sentences)
34
34
  - Use project contents for all subsequent work in the session
35
- - **Do NOT read CHANGELOG.md** it exists for on-demand lookup only. PROJECT.md already references it; that is enough context.
35
+ - **Do NOT read companion docs by default** — CHANGELOG.md, DECISIONS.md, and WORKLOG.md exist for on-demand lookup only. PROJECT.md already references them; that is enough context.
36
+ - If the user asks about decisions, past work, or history, THEN read the relevant companion doc.
36
37
 
37
38
  7. **If `-- {instruction}` provided:** Execute the follow-up instruction against the loaded project
38
39
 
@@ -1,14 +1,13 @@
1
1
  # Project Templates
2
2
 
3
- Templates vary by `preset` setting.
4
-
5
- ## Markdown Preset (default)
6
-
7
- ### PROJECT.md
3
+ ## PROJECT.md
8
4
 
9
5
  ```markdown
10
6
  ---
7
+ type: project
11
8
  status: active
9
+ created: {today}
10
+ updated: {today}
12
11
  ---
13
12
 
14
13
  # Project: {Name}
@@ -33,15 +32,16 @@ status: active
33
32
 
34
33
  {Architecture, key files, patterns}
35
34
 
35
+ ## Related
36
+
37
+ - {Links to related notes}
38
+
36
39
  ## Changelog
37
40
 
38
41
  See [CHANGELOG.md](CHANGELOG.md) for full history.
39
-
40
- ### 0.1.0 - {today}
41
- - Initial project setup
42
42
  ```
43
43
 
44
- ### CHANGELOG.md
44
+ ## CHANGELOG.md
45
45
 
46
46
  ```markdown
47
47
  # Changelog
@@ -54,58 +54,6 @@ All notable changes to the {Name} project.
54
54
 
55
55
  ---
56
56
 
57
- ## Obsidian Preset
58
-
59
- ### PROJECT.md
60
-
61
- ```markdown
62
- ---
63
- type: project
64
- status: active
65
- created: {today}
66
- updated: {today}
67
- ---
68
-
69
- # Project: {Name}
70
-
71
- {Brief description}
72
-
73
- | | |
74
- |---|---|
75
- | **Version** | 0.1.0 |
76
- | **Started** | {today} |
77
- | **Status** | Active |
78
-
79
- ## Overview
80
-
81
- {**What** this project does, **why** it exists}
82
-
83
- ## Goals
84
-
85
- - {Goal 1}
86
-
87
- ## Technical Details
88
-
89
- {Architecture, key files, patterns}
90
-
91
- ## Related
92
-
93
- - {Links to related notes}
94
-
95
- ## Changelog
96
-
97
- See [[CHANGELOG|full history]].
98
-
99
- ### 0.1.0 - {today}
100
- - Initial project setup
101
- ```
102
-
103
- ### CHANGELOG.md
104
-
105
- Same as markdown preset.
106
-
107
- ---
108
-
109
57
  ## Template Variables
110
58
 
111
59
  | Variable | Expands To |
@@ -115,19 +63,23 @@ Same as markdown preset.
115
63
  | `{name}` | Project name (lowercase) |
116
64
  | `{kebab-name}` | Folder name (kebab-case) |
117
65
 
118
- ## Preset Differences Summary
66
+ ## Link Style
67
+
68
+ Templates show standard markdown links. When `preset` is `obsidian`, substitute wikilinks:
119
69
 
120
- | Feature | Markdown | Obsidian |
121
- |---------|----------|----------|
122
- | Links | `[text](path)` | `[[path\|text]]` |
123
- | YAML properties | Minimal (`status`) | Rich (`type`, `created`, `updated`) |
124
- | Related section | Optional | Included |
70
+ | Standard (markdown) | Wikilink (obsidian) |
71
+ |---------------------|---------------------|
72
+ | `[CHANGELOG.md](CHANGELOG.md)` | `[[CHANGELOG]]` |
73
+ | `[DECISIONS.md](DECISIONS.md)` | `[[DECISIONS]]` |
74
+ | `[WORKLOG.md](WORKLOG.md)` | `[[WORKLOG]]` |
75
+
76
+ This is the only difference between presets — structure, frontmatter, and sections are identical.
125
77
 
126
78
  ---
127
79
 
128
80
  ## Seeded from Codex
129
81
 
130
- When creating with `--from codex:{name}`, use this template variant. Works with both markdown and obsidian presets.
82
+ When creating with `--from codex:{name}`, use this template variant.
131
83
 
132
84
  ### Additional Variables
133
85
 
@@ -145,7 +97,10 @@ When creating with `--from codex:{name}`, use this template variant. Works with
145
97
 
146
98
  ```markdown
147
99
  ---
100
+ type: project
148
101
  status: active
102
+ created: {today}
103
+ updated: {today}
149
104
  codex_source: projects/{codex-name}
150
105
  ---
151
106
 
@@ -190,9 +145,6 @@ Personal working memory for {Name}, seeded from shared codex context.
190
145
  ## Changelog
191
146
 
192
147
  See [CHANGELOG.md](CHANGELOG.md) for full history.
193
-
194
- ### 0.1.0 - {today}
195
- - Project created from codex:{codex-name}
196
148
  ```
197
149
 
198
150
  ### CHANGELOG.md (Seeded)
@@ -218,3 +170,95 @@ When extracting content from codex files:
218
170
 
219
171
  If a section is missing, use placeholder text:
220
172
  - `{To be extracted from codex or filled manually}`
173
+
174
+ ---
175
+
176
+ ## Companion Doc Templates
177
+
178
+ Companion docs are **never** created at project start. They emerge when a project grows enough to benefit from them. See `creating.md` for when each is created.
179
+
180
+ ### DECISIONS.md
181
+
182
+ Create when 3+ decisions have accumulated in PROJECT.md.
183
+
184
+ **Table format (default)** — scales well for projects with many decisions:
185
+
186
+ ```markdown
187
+ ---
188
+ type: decisions
189
+ project: {Name}
190
+ created: {today}
191
+ updated: {today}
192
+ ---
193
+
194
+ # Decisions
195
+
196
+ Key decisions for the {Name} project.
197
+
198
+ | # | Decision | Date | Context |
199
+ |---|----------|------|---------|
200
+ | 1 | {Decision title} | {YYYY-MM-DD} | {Brief rationale or link to discussion} |
201
+ ```
202
+
203
+ **Rich format (alternative)** — for fewer, more significant decisions:
204
+
205
+ ```markdown
206
+ ---
207
+ type: decisions
208
+ project: {Name}
209
+ created: {today}
210
+ updated: {today}
211
+ ---
212
+
213
+ # Decisions
214
+
215
+ Key decisions for the {Name} project.
216
+
217
+ ## 1. {Decision Title}
218
+
219
+ **Date:** {YYYY-MM-DD}
220
+ **Status:** Accepted
221
+
222
+ {2-3 sentences of context and rationale. Link to plan or research doc if one exists.}
223
+ ```
224
+
225
+ Choose the format that fits the project. Table for many small decisions, rich for fewer important ones. Mixing is fine — start with table, expand significant entries to rich format if needed.
226
+
227
+ ### WORKLOG.md
228
+
229
+ Create when PROJECT.md exceeds ~300 lines with completed work items that can be archived.
230
+
231
+ ```markdown
232
+ ---
233
+ type: worklog
234
+ project: {Name}
235
+ created: {today}
236
+ updated: {today}
237
+ ---
238
+
239
+ # Worklog
240
+
241
+ Completed work for the {Name} project. Newest first.
242
+
243
+ ## {Title of completed work}
244
+
245
+ {YYYY-MM-DD} · PR #{number} · [plan link if exists]
246
+
247
+ {1-3 sentence narrative of what was done and why it mattered.}
248
+
249
+ ---
250
+
251
+ ## {Older completed work}
252
+
253
+ {YYYY-MM-DD}
254
+
255
+ {Brief narrative.}
256
+ ```
257
+
258
+ ### Worklog Entry Guidelines
259
+
260
+ - **Title:** Descriptive, in past tense ("Restructured PROJECT.md", "Added permission controls")
261
+ - **Metadata line:** Date is required, PR and plan links are optional
262
+ - **Narrative:** Brief — it's an index, not a retelling. Link out to plans, research, PRs for detail.
263
+ - **Order:** Reverse chronological (newest first)
264
+ - **Separator:** Use `---` between entries for readability
@@ -17,18 +17,25 @@
17
17
  - Important file paths or code locations
18
18
  - Bug fixes or gotchas encountered
19
19
 
20
- 3. **If significant new information found:**
20
+ 3. **Size check** (read current PROJECT.md and count lines):
21
+ - **Under ~300 lines:** Proceed normally
22
+ - **300–400 lines:** Look for archival opportunities — mention them in your proposal
23
+ - **Over 400 lines:** Actively identify content to archive (see "Archival to WORKLOG.md" below)
24
+
25
+ 4. **If significant new information found:**
21
26
  - Propose specific sections/content to add or update
27
+ - Include archival proposals if the size check warrants it
22
28
  - Show what will be changed
23
29
  - Ask for confirmation before proceeding
24
30
 
25
- 4. **If no obvious updates:**
31
+ 5. **If no obvious updates:**
26
32
  - Ask what the user would like to update
27
33
  - Suggest sections: metadata, implementation details, technical decisions, notes
28
34
 
29
- 5. **After approval:**
35
+ 6. **After approval:**
30
36
  - Read current project file
31
37
  - Make approved updates, preserving existing structure
38
+ - Route decisions appropriately (see "Decisions Routing" below)
32
39
  - Determine version bump (see `versioning.md`)
33
40
  - Add changelog entry (see `changelog.md`)
34
41
  - Confirm what was updated
@@ -46,7 +53,74 @@ Good project updates include:
46
53
  | **Progress** | "Completed validation layer, starting on UI" |
47
54
  | **File locations** | "Key files: `src/services/template.service.ts`" |
48
55
 
49
- ## Example
56
+ ## Decisions Routing
57
+
58
+ Decisions are captured differently depending on whether the project has a DECISIONS.md companion doc:
59
+
60
+ 1. **DECISIONS.md exists** → Add new decisions there. Add a brief reference in PROJECT.md only when the decision directly affects active work.
61
+ 2. **DECISIONS.md does not exist AND 3+ decisions in PROJECT.md** → Offer to create DECISIONS.md (from template in `templates.md`) and migrate existing decisions. Keep a summary reference in PROJECT.md.
62
+ 3. **Fewer than 3 decisions** → Keep inline in PROJECT.md as usual.
63
+
64
+ When migrating, preserve the original decision date and context. Remove the detailed decision content from PROJECT.md, leaving just a "See DECISIONS.md" reference in the relevant section.
65
+
66
+ ## Archival to WORKLOG.md
67
+
68
+ When the size check identifies archival opportunities, propose moving completed work items to a WORKLOG.md companion doc.
69
+
70
+ ### What to archive
71
+
72
+ - **Completed** Current Work items (fully shipped, no active follow-ups)
73
+ - **Previous Work** or **Done** sections
74
+ - Inline decision tables with 5+ entries (migrate to DECISIONS.md instead)
75
+ - Historical context that's useful for reference but not needed in active context
76
+
77
+ ### What NOT to archive
78
+
79
+ - Active or in-progress work items
80
+ - Technical details still relevant to current work
81
+ - Architectural patterns or constraints that guide ongoing development
82
+ - The Overview, Goals, or metadata sections
83
+
84
+ ### Archival procedure
85
+
86
+ 1. **Identify candidates** — List completed items with their approximate line counts
87
+ 2. **Propose archival** — Show before/after line counts so the user sees the impact:
88
+ ```
89
+ PROJECT.md is currently 427 lines. Proposed archival:
90
+ - "Completed: Permission Controls" (~35 lines) → WORKLOG.md
91
+ - "Completed: Template Rendering" (~28 lines) → WORKLOG.md
92
+ - Inline decisions table (12 entries) → DECISIONS.md
93
+
94
+ After: ~340 lines (saved ~87 lines)
95
+ ```
96
+ 3. **Create companion doc** if needed — Use templates from `templates.md`
97
+ 4. **Convert to worklog entries** — Condense each item to title + metadata line + 1-3 sentence narrative (see template guidelines)
98
+ 5. **Remove from PROJECT.md** — Delete the detailed content, not the section headers
99
+ 6. **Verify** — Confirm the archived content is preserved in the companion doc
100
+
101
+ ### Example
102
+
103
+ ```
104
+ User: /project update
105
+
106
+ Claude: I'll update #project-transaction-templates with learnings from this session.
107
+
108
+ PROJECT.md is 382 lines — I also found archival opportunities.
109
+
110
+ Proposed changes:
111
+ - Add "Batch Processing" to Current Work with the patterns we established
112
+ - Note the decision to use streaming for large payloads
113
+
114
+ Proposed archival (saves ~45 lines):
115
+ - "Permission Controls" (completed 2026-01-15) → WORKLOG.md
116
+ - "Template Validation" (completed 2026-02-01) → WORKLOG.md
117
+
118
+ This is a minor version bump (0.16.0 → 0.17.0).
119
+
120
+ Proceed with these updates?
121
+ ```
122
+
123
+ ## Example (standard update)
50
124
 
51
125
  ```
52
126
  User: /project update
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orderful/droid",
3
- "version": "0.46.0",
3
+ "version": "0.47.0",
4
4
  "description": "AI workflow toolkit for sharing skills, commands, and agents across the team",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "droid-project",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features.",
5
5
  "author": {
6
6
  "name": "Orderful",
@@ -1,6 +1,6 @@
1
1
  name: project
2
2
  description: "Manage project context files for persistent AI memory across sessions. Load, update, or create project context before working on multi-session features."
3
- version: 0.3.6
3
+ version: 0.4.0
4
4
  status: beta
5
5
 
6
6
  includes:
@@ -21,7 +21,7 @@ config_schema:
21
21
  required: true
22
22
  preset:
23
23
  type: select
24
- description: Output format for templates
24
+ description: "Link style: obsidian uses [[wikilinks]], markdown uses [standard](links)"
25
25
  default: "markdown"
26
26
  options:
27
27
  - markdown
@@ -7,7 +7,7 @@ allowed-tools: [Read, Write, Glob, Grep, Bash]
7
7
 
8
8
  # Project Skill
9
9
 
10
- Persistent project context that survives across sessions. Projects are folders containing `PROJECT.md` + `CHANGELOG.md`.
10
+ Persistent project context that survives across sessions. Projects are folders containing `PROJECT.md` + `CHANGELOG.md`, with optional companion docs (`DECISIONS.md`, `WORKLOG.md`) that emerge as the project grows.
11
11
 
12
12
  ## Why Projects?
13
13
 
@@ -31,7 +31,7 @@ Chat history disappears. Projects persist.
31
31
  | Setting | Default | Description |
32
32
  | -------------- | ------------ | -------------------------------------------------- |
33
33
  | `projects_dir` | **required** | Where projects are stored (must be configured) |
34
- | `preset` | `markdown` | Output format: `markdown` or `obsidian` |
34
+ | `preset` | `markdown` | Link style: `obsidian` uses `[[wikilinks]]`, `markdown` uses `[standard](links)` |
35
35
  | `override` | (none) | User-defined behaviour overrides |
36
36
 
37
37
  **Overrides:** This skill supports user-defined overrides. See `/droid` skill § Skill Overrides.
@@ -106,6 +106,7 @@ Projects work best in a cycle:
106
106
  3. **Document** - Capture decisions in PROJECT.md before implementing
107
107
  4. **Implement** - Build with full context of why decisions were made
108
108
  5. **Capture** - `/project update` saves new learnings
109
- 6. **Repeat** - Next session starts with accumulated knowledge
109
+ 6. **Prune** - If PROJECT.md exceeds ~300 lines, archive completed work to WORKLOG.md
110
+ 7. **Repeat** - Next session starts with accumulated knowledge
110
111
 
111
112
  Each cycle starts further ahead than the last.
@@ -5,7 +5,7 @@ Projects use a split file pattern to minimize context usage when loading.
5
5
  ## File Structure
6
6
 
7
7
  - `CHANGELOG.md` (sibling to PROJECT.md) - Complete version history
8
- - `PROJECT.md` - Only 3 most recent entries + link to full history
8
+ - `PROJECT.md` - Link to full history only (version number lives in the metadata table)
9
9
 
10
10
  ## On Update
11
11
 
@@ -15,8 +15,8 @@ Projects use a split file pattern to minimize context usage when loading.
15
15
  2. **Add new entry to CHANGELOG.md** (prepend after header)
16
16
 
17
17
  3. **Update PROJECT.md changelog section**
18
- - Keep only 3 most recent entries
19
- - Ensure link to full history exists
18
+ - Keep only a link to CHANGELOG.md — no inline entries
19
+ - The version number in the metadata table is the quick-glance indicator
20
20
 
21
21
  ## CHANGELOG.md Format
22
22
 
@@ -35,31 +35,20 @@ All notable changes to the {Project Name} project.
35
35
 
36
36
  ## PROJECT.md Changelog Section Format
37
37
 
38
- **Markdown preset:**
39
38
  ```markdown
40
39
  ## Changelog
41
40
 
42
41
  See [CHANGELOG.md](CHANGELOG.md) for full history.
43
-
44
- ### X.Y.Z - YYYY-MM-DD
45
- - [Most recent]
46
-
47
- ### X.Y.Z - YYYY-MM-DD
48
- - [Second most recent]
49
-
50
- ### X.Y.Z - YYYY-MM-DD
51
- - [Third most recent]
52
42
  ```
53
43
 
54
- **Obsidian preset:**
55
- ```markdown
56
- ## Changelog
44
+ When `preset` is `obsidian`, use `See [[CHANGELOG|full history]].` instead.
57
45
 
58
- See [[CHANGELOG|full history]].
46
+ ## Migration
59
47
 
60
- ### X.Y.Z - YYYY-MM-DD
61
- - [Most recent]
62
- ```
48
+ If an existing PROJECT.md has inline changelog entries:
49
+ 1. Ensure all entries exist in CHANGELOG.md
50
+ 2. Replace the inline entries with just the link
51
+ 3. This happens naturally during `/project update` — no need to proactively migrate
63
52
 
64
53
  ## Guidelines
65
54
 
@@ -67,4 +56,4 @@ See [[CHANGELOG|full history]].
67
56
  - Keep entries concise but descriptive
68
57
  - Group related changes in a single bullet when appropriate
69
58
  - Most recent version at the top
70
- - Use `##` headers in CHANGELOG.md, `###` in PROJECT.md
59
+ - Use `##` headers in CHANGELOG.md
@@ -7,7 +7,6 @@
7
7
  1. **Read config first**
8
8
  - Run `droid config --get tools.project` and parse the JSON output
9
9
  - Use `projects_dir` (required - if not configured, inform user to set it up)
10
- - Use `preset` if configured (markdown or obsidian)
11
10
 
12
11
  2. **Get project name**
13
12
  - Use provided name, or ask if not provided
@@ -21,7 +20,6 @@
21
20
  4. **Create files from templates** (see `templates.md`)
22
21
  - `PROJECT.md` - Main context file
23
22
  - `CHANGELOG.md` - Version history
24
- - Format varies by `preset` config (markdown vs obsidian)
25
23
 
26
24
  5. **Confirm creation**
27
25
  - Show created folder path
@@ -62,6 +60,18 @@ New projects start minimal and grow organically. Common sections added over time
62
60
 
63
61
  See `templates.md` for the full initial template.
64
62
 
63
+ ### Companion Docs
64
+
65
+ Projects may grow companion docs over time. These are **never** created at project creation — they emerge as the project grows.
66
+
67
+ | Doc | Created When | Purpose |
68
+ |-----|-------------|---------|
69
+ | `CHANGELOG.md` | At project creation (the one exception) | Version history |
70
+ | `DECISIONS.md` | 3+ decisions accumulate in PROJECT.md | Dedicated decisions log |
71
+ | `WORKLOG.md` | PROJECT.md exceeds ~300 lines with completed items | Archive of completed work |
72
+
73
+ The `/project update` procedure handles creation and migration automatically — see `updating.md` for details.
74
+
65
75
  ---
66
76
 
67
77
  ## Creating from Codex
@@ -32,7 +32,8 @@
32
32
  - Confirm which project was loaded
33
33
  - Summarize key context (2-3 sentences)
34
34
  - Use project contents for all subsequent work in the session
35
- - **Do NOT read CHANGELOG.md** it exists for on-demand lookup only. PROJECT.md already references it; that is enough context.
35
+ - **Do NOT read companion docs by default** — CHANGELOG.md, DECISIONS.md, and WORKLOG.md exist for on-demand lookup only. PROJECT.md already references them; that is enough context.
36
+ - If the user asks about decisions, past work, or history, THEN read the relevant companion doc.
36
37
 
37
38
  7. **If `-- {instruction}` provided:** Execute the follow-up instruction against the loaded project
38
39
 
@@ -1,14 +1,13 @@
1
1
  # Project Templates
2
2
 
3
- Templates vary by `preset` setting.
4
-
5
- ## Markdown Preset (default)
6
-
7
- ### PROJECT.md
3
+ ## PROJECT.md
8
4
 
9
5
  ```markdown
10
6
  ---
7
+ type: project
11
8
  status: active
9
+ created: {today}
10
+ updated: {today}
12
11
  ---
13
12
 
14
13
  # Project: {Name}
@@ -33,15 +32,16 @@ status: active
33
32
 
34
33
  {Architecture, key files, patterns}
35
34
 
35
+ ## Related
36
+
37
+ - {Links to related notes}
38
+
36
39
  ## Changelog
37
40
 
38
41
  See [CHANGELOG.md](CHANGELOG.md) for full history.
39
-
40
- ### 0.1.0 - {today}
41
- - Initial project setup
42
42
  ```
43
43
 
44
- ### CHANGELOG.md
44
+ ## CHANGELOG.md
45
45
 
46
46
  ```markdown
47
47
  # Changelog
@@ -54,58 +54,6 @@ All notable changes to the {Name} project.
54
54
 
55
55
  ---
56
56
 
57
- ## Obsidian Preset
58
-
59
- ### PROJECT.md
60
-
61
- ```markdown
62
- ---
63
- type: project
64
- status: active
65
- created: {today}
66
- updated: {today}
67
- ---
68
-
69
- # Project: {Name}
70
-
71
- {Brief description}
72
-
73
- | | |
74
- |---|---|
75
- | **Version** | 0.1.0 |
76
- | **Started** | {today} |
77
- | **Status** | Active |
78
-
79
- ## Overview
80
-
81
- {**What** this project does, **why** it exists}
82
-
83
- ## Goals
84
-
85
- - {Goal 1}
86
-
87
- ## Technical Details
88
-
89
- {Architecture, key files, patterns}
90
-
91
- ## Related
92
-
93
- - {Links to related notes}
94
-
95
- ## Changelog
96
-
97
- See [[CHANGELOG|full history]].
98
-
99
- ### 0.1.0 - {today}
100
- - Initial project setup
101
- ```
102
-
103
- ### CHANGELOG.md
104
-
105
- Same as markdown preset.
106
-
107
- ---
108
-
109
57
  ## Template Variables
110
58
 
111
59
  | Variable | Expands To |
@@ -115,19 +63,23 @@ Same as markdown preset.
115
63
  | `{name}` | Project name (lowercase) |
116
64
  | `{kebab-name}` | Folder name (kebab-case) |
117
65
 
118
- ## Preset Differences Summary
66
+ ## Link Style
67
+
68
+ Templates show standard markdown links. When `preset` is `obsidian`, substitute wikilinks:
119
69
 
120
- | Feature | Markdown | Obsidian |
121
- |---------|----------|----------|
122
- | Links | `[text](path)` | `[[path\|text]]` |
123
- | YAML properties | Minimal (`status`) | Rich (`type`, `created`, `updated`) |
124
- | Related section | Optional | Included |
70
+ | Standard (markdown) | Wikilink (obsidian) |
71
+ |---------------------|---------------------|
72
+ | `[CHANGELOG.md](CHANGELOG.md)` | `[[CHANGELOG]]` |
73
+ | `[DECISIONS.md](DECISIONS.md)` | `[[DECISIONS]]` |
74
+ | `[WORKLOG.md](WORKLOG.md)` | `[[WORKLOG]]` |
75
+
76
+ This is the only difference between presets — structure, frontmatter, and sections are identical.
125
77
 
126
78
  ---
127
79
 
128
80
  ## Seeded from Codex
129
81
 
130
- When creating with `--from codex:{name}`, use this template variant. Works with both markdown and obsidian presets.
82
+ When creating with `--from codex:{name}`, use this template variant.
131
83
 
132
84
  ### Additional Variables
133
85
 
@@ -145,7 +97,10 @@ When creating with `--from codex:{name}`, use this template variant. Works with
145
97
 
146
98
  ```markdown
147
99
  ---
100
+ type: project
148
101
  status: active
102
+ created: {today}
103
+ updated: {today}
149
104
  codex_source: projects/{codex-name}
150
105
  ---
151
106
 
@@ -190,9 +145,6 @@ Personal working memory for {Name}, seeded from shared codex context.
190
145
  ## Changelog
191
146
 
192
147
  See [CHANGELOG.md](CHANGELOG.md) for full history.
193
-
194
- ### 0.1.0 - {today}
195
- - Project created from codex:{codex-name}
196
148
  ```
197
149
 
198
150
  ### CHANGELOG.md (Seeded)
@@ -218,3 +170,95 @@ When extracting content from codex files:
218
170
 
219
171
  If a section is missing, use placeholder text:
220
172
  - `{To be extracted from codex or filled manually}`
173
+
174
+ ---
175
+
176
+ ## Companion Doc Templates
177
+
178
+ Companion docs are **never** created at project start. They emerge when a project grows enough to benefit from them. See `creating.md` for when each is created.
179
+
180
+ ### DECISIONS.md
181
+
182
+ Create when 3+ decisions have accumulated in PROJECT.md.
183
+
184
+ **Table format (default)** — scales well for projects with many decisions:
185
+
186
+ ```markdown
187
+ ---
188
+ type: decisions
189
+ project: {Name}
190
+ created: {today}
191
+ updated: {today}
192
+ ---
193
+
194
+ # Decisions
195
+
196
+ Key decisions for the {Name} project.
197
+
198
+ | # | Decision | Date | Context |
199
+ |---|----------|------|---------|
200
+ | 1 | {Decision title} | {YYYY-MM-DD} | {Brief rationale or link to discussion} |
201
+ ```
202
+
203
+ **Rich format (alternative)** — for fewer, more significant decisions:
204
+
205
+ ```markdown
206
+ ---
207
+ type: decisions
208
+ project: {Name}
209
+ created: {today}
210
+ updated: {today}
211
+ ---
212
+
213
+ # Decisions
214
+
215
+ Key decisions for the {Name} project.
216
+
217
+ ## 1. {Decision Title}
218
+
219
+ **Date:** {YYYY-MM-DD}
220
+ **Status:** Accepted
221
+
222
+ {2-3 sentences of context and rationale. Link to plan or research doc if one exists.}
223
+ ```
224
+
225
+ Choose the format that fits the project. Table for many small decisions, rich for fewer important ones. Mixing is fine — start with table, expand significant entries to rich format if needed.
226
+
227
+ ### WORKLOG.md
228
+
229
+ Create when PROJECT.md exceeds ~300 lines with completed work items that can be archived.
230
+
231
+ ```markdown
232
+ ---
233
+ type: worklog
234
+ project: {Name}
235
+ created: {today}
236
+ updated: {today}
237
+ ---
238
+
239
+ # Worklog
240
+
241
+ Completed work for the {Name} project. Newest first.
242
+
243
+ ## {Title of completed work}
244
+
245
+ {YYYY-MM-DD} · PR #{number} · [plan link if exists]
246
+
247
+ {1-3 sentence narrative of what was done and why it mattered.}
248
+
249
+ ---
250
+
251
+ ## {Older completed work}
252
+
253
+ {YYYY-MM-DD}
254
+
255
+ {Brief narrative.}
256
+ ```
257
+
258
+ ### Worklog Entry Guidelines
259
+
260
+ - **Title:** Descriptive, in past tense ("Restructured PROJECT.md", "Added permission controls")
261
+ - **Metadata line:** Date is required, PR and plan links are optional
262
+ - **Narrative:** Brief — it's an index, not a retelling. Link out to plans, research, PRs for detail.
263
+ - **Order:** Reverse chronological (newest first)
264
+ - **Separator:** Use `---` between entries for readability
@@ -17,18 +17,25 @@
17
17
  - Important file paths or code locations
18
18
  - Bug fixes or gotchas encountered
19
19
 
20
- 3. **If significant new information found:**
20
+ 3. **Size check** (read current PROJECT.md and count lines):
21
+ - **Under ~300 lines:** Proceed normally
22
+ - **300–400 lines:** Look for archival opportunities — mention them in your proposal
23
+ - **Over 400 lines:** Actively identify content to archive (see "Archival to WORKLOG.md" below)
24
+
25
+ 4. **If significant new information found:**
21
26
  - Propose specific sections/content to add or update
27
+ - Include archival proposals if the size check warrants it
22
28
  - Show what will be changed
23
29
  - Ask for confirmation before proceeding
24
30
 
25
- 4. **If no obvious updates:**
31
+ 5. **If no obvious updates:**
26
32
  - Ask what the user would like to update
27
33
  - Suggest sections: metadata, implementation details, technical decisions, notes
28
34
 
29
- 5. **After approval:**
35
+ 6. **After approval:**
30
36
  - Read current project file
31
37
  - Make approved updates, preserving existing structure
38
+ - Route decisions appropriately (see "Decisions Routing" below)
32
39
  - Determine version bump (see `versioning.md`)
33
40
  - Add changelog entry (see `changelog.md`)
34
41
  - Confirm what was updated
@@ -46,7 +53,74 @@ Good project updates include:
46
53
  | **Progress** | "Completed validation layer, starting on UI" |
47
54
  | **File locations** | "Key files: `src/services/template.service.ts`" |
48
55
 
49
- ## Example
56
+ ## Decisions Routing
57
+
58
+ Decisions are captured differently depending on whether the project has a DECISIONS.md companion doc:
59
+
60
+ 1. **DECISIONS.md exists** → Add new decisions there. Add a brief reference in PROJECT.md only when the decision directly affects active work.
61
+ 2. **DECISIONS.md does not exist AND 3+ decisions in PROJECT.md** → Offer to create DECISIONS.md (from template in `templates.md`) and migrate existing decisions. Keep a summary reference in PROJECT.md.
62
+ 3. **Fewer than 3 decisions** → Keep inline in PROJECT.md as usual.
63
+
64
+ When migrating, preserve the original decision date and context. Remove the detailed decision content from PROJECT.md, leaving just a "See DECISIONS.md" reference in the relevant section.
65
+
66
+ ## Archival to WORKLOG.md
67
+
68
+ When the size check identifies archival opportunities, propose moving completed work items to a WORKLOG.md companion doc.
69
+
70
+ ### What to archive
71
+
72
+ - **Completed** Current Work items (fully shipped, no active follow-ups)
73
+ - **Previous Work** or **Done** sections
74
+ - Inline decision tables with 5+ entries (migrate to DECISIONS.md instead)
75
+ - Historical context that's useful for reference but not needed in active context
76
+
77
+ ### What NOT to archive
78
+
79
+ - Active or in-progress work items
80
+ - Technical details still relevant to current work
81
+ - Architectural patterns or constraints that guide ongoing development
82
+ - The Overview, Goals, or metadata sections
83
+
84
+ ### Archival procedure
85
+
86
+ 1. **Identify candidates** — List completed items with their approximate line counts
87
+ 2. **Propose archival** — Show before/after line counts so the user sees the impact:
88
+ ```
89
+ PROJECT.md is currently 427 lines. Proposed archival:
90
+ - "Completed: Permission Controls" (~35 lines) → WORKLOG.md
91
+ - "Completed: Template Rendering" (~28 lines) → WORKLOG.md
92
+ - Inline decisions table (12 entries) → DECISIONS.md
93
+
94
+ After: ~340 lines (saved ~87 lines)
95
+ ```
96
+ 3. **Create companion doc** if needed — Use templates from `templates.md`
97
+ 4. **Convert to worklog entries** — Condense each item to title + metadata line + 1-3 sentence narrative (see template guidelines)
98
+ 5. **Remove from PROJECT.md** — Delete the detailed content, not the section headers
99
+ 6. **Verify** — Confirm the archived content is preserved in the companion doc
100
+
101
+ ### Example
102
+
103
+ ```
104
+ User: /project update
105
+
106
+ Claude: I'll update #project-transaction-templates with learnings from this session.
107
+
108
+ PROJECT.md is 382 lines — I also found archival opportunities.
109
+
110
+ Proposed changes:
111
+ - Add "Batch Processing" to Current Work with the patterns we established
112
+ - Note the decision to use streaming for large payloads
113
+
114
+ Proposed archival (saves ~45 lines):
115
+ - "Permission Controls" (completed 2026-01-15) → WORKLOG.md
116
+ - "Template Validation" (completed 2026-02-01) → WORKLOG.md
117
+
118
+ This is a minor version bump (0.16.0 → 0.17.0).
119
+
120
+ Proceed with these updates?
121
+ ```
122
+
123
+ ## Example (standard update)
50
124
 
51
125
  ```
52
126
  User: /project update