@sandrinio/vdoc 3.7.0 → 3.8.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/README.md CHANGED
@@ -28,6 +28,24 @@ Then type: **`/vdoc-init`**
28
28
 
29
29
  ---
30
30
 
31
+ ## The Process
32
+
33
+ ### Step 1 — Run `/vdoc-init`
34
+
35
+ vdoc explores your codebase and produces a documentation plan.
36
+
37
+ ### Step 2 — Review the plan
38
+
39
+ Open `_DOCUMENTATION_PLAN.md` and make any changes — add, remove, rename, or reorder docs.
40
+
41
+ ### Step 3 — Tell the AI to proceed
42
+
43
+ The AI takes your approved plan and generates documentation one by one, saving each to the `vdocs/` folder.
44
+
45
+ That's it. Three steps: **init → review → approve**.
46
+
47
+ ---
48
+
31
49
  ## Supported Platforms
32
50
 
33
51
  | Platform | Install Command | `/vdoc` Command | Invocation |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandrinio/vdoc",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "Documentation skills for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `.agents/vdoc/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -10,6 +10,7 @@ Use the user's description to find the relevant source files:
10
10
  2. Otherwise, search the codebase with Glob and Grep to find files matching the user's description
11
11
  3. Read ALL relevant source files — not just the main file, but helpers, types, middleware, tests, API routes, components
12
12
  4. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
13
+ 5. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
13
14
 
14
15
  Do not skim. Understand how the feature actually works before writing.
15
16
 
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in [manifest-schema.json](./manifest-schema.json).
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `references/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `references/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `references/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `.gemini/vdoc/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `.aiassistant/vdoc/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `.junie/vdoc/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in [manifest-schema.json](./manifest-schema.json).
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",
@@ -42,6 +42,15 @@ After exploring, write `vdocs/_exploration_log.md` documenting what you found:
42
42
  | Prisma schema with 8 models | prisma/schema.prisma | DATA_MODEL_DOC.md |
43
43
  | ... | ... | ... |
44
44
 
45
+ ## Cross-Feature Dependencies
46
+ After identifying all feature signals, grep for imports/references between features to map which features consume each other's data, types, or APIs. This prevents missing secondary workflows during doc generation.
47
+
48
+ | Feature A | Feature B | Connection | Impact |
49
+ |-----------|-----------|------------|--------|
50
+ | Azure DevOps Integration | Google Sheets Export | Sheets exports work items fetched by Azure module | Azure doc must cover the export workflow |
51
+ | Auth (NextAuth) | All API routes | Every route uses auth middleware | Auth doc must list all protected routes |
52
+ | ... | ... | ... | ... |
53
+
45
54
  ## Ambiguities / Open Questions
46
55
  - Could not determine why Redis is in dependencies — no usage found. Ask user.
47
56
  - Payments folder exists but appears incomplete / WIP.
@@ -58,6 +67,12 @@ Use this format:
58
67
  ```markdown
59
68
  # Documentation Plan
60
69
 
70
+ ## Fingerprint
71
+ - **Language(s):** e.g., TypeScript, Python
72
+ - **Framework(s):** e.g., Next.js 14, FastAPI
73
+ - **Archetype(s):** e.g., Full-stack Framework
74
+ - **Scope:** e.g., ~85 files, medium
75
+
61
76
  ## Proposed Documents
62
77
 
63
78
  1. **PROJECT_OVERVIEW_DOC.md** — Tech stack, architecture, project structure, dev setup
@@ -85,10 +100,11 @@ Then generate docs **one at a time, sequentially**. For each approved doc:
85
100
 
86
101
  1. Read ALL relevant source files for that feature — not just the main file, but helpers, types, middleware, tests
87
102
  2. **Trace the end-to-end flow** — pick the primary user action and follow it through every layer: frontend → API route → service/lib → database → external service → response. Read each file in the chain. Don't stop at the service layer.
88
- 3. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
89
- 4. Confirm the file was written before moving to the next doc
103
+ 3. **Search for consumers** — grep for the feature's key types, table names, API endpoints, and module imports across the entire codebase. This catches secondary workflows (exports, scheduled jobs, webhooks, notifications, external automation) that live in different directories but depend on this feature. If you find consumers, read them and include those workflows in the doc.
104
+ 4. Write `vdocs/FEATURE_NAME_DOC.md` following the template exactly
105
+ 5. Confirm the file was written before moving to the next doc
90
106
 
91
- Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → write doc → next.
107
+ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle: read sources → trace flows → search consumers → write doc → next.
92
108
 
93
109
  **Writing rules:**
94
110
 
@@ -107,17 +123,30 @@ Do NOT attempt to generate multiple docs from memory. Each doc is a fresh cycle:
107
123
 
108
124
  Create `vdocs/_manifest.json` using the schema in `resources/manifest-schema.json`.
109
125
 
126
+ **Transfer the Fingerprint** from the exploration log into the manifest's top-level `fingerprint` object. This preserves the project identity metadata alongside the documentation inventory.
127
+
110
128
  The `description` field is critical — write it rich enough that you can route any user question to the right doc by matching against descriptions. Include specific technology names, patterns, and concepts.
111
129
 
112
130
  Example:
113
131
 
114
132
  ```json
115
133
  {
116
- "filepath": "AUTHENTICATION_DOC.md",
117
- "title": "Authentication - OAuth2 & JWT",
118
- "version": "1.0.0",
119
- "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
120
- "tags": ["oauth2", "jwt", "session-management", "rbac"]
134
+ "project": "my-project",
135
+ "fingerprint": {
136
+ "languages": ["TypeScript"],
137
+ "frameworks": ["Next.js 14", "Prisma", "NextAuth"],
138
+ "archetypes": ["Full-stack Framework"],
139
+ "scope": "~85 files, medium"
140
+ },
141
+ "documentation": [
142
+ {
143
+ "filepath": "AUTHENTICATION_DOC.md",
144
+ "title": "Authentication - OAuth2 & JWT",
145
+ "version": "1.0.0",
146
+ "description": "OAuth2 flow with Google/GitHub providers, JWT token lifecycle, session management via NextAuth.js, route protection middleware, and role-based access control.",
147
+ "tags": ["oauth2", "jwt", "session-management", "rbac"]
148
+ }
149
+ ]
121
150
  }
122
151
  ```
123
152
 
@@ -4,6 +4,12 @@
4
4
  "created_at": "<ISO-8601>",
5
5
  "last_updated": "<ISO-8601>",
6
6
  "last_commit": "<short-sha>",
7
+ "fingerprint": {
8
+ "languages": ["<language>"],
9
+ "frameworks": ["<framework>"],
10
+ "archetypes": ["<archetype>"],
11
+ "scope": "<file-count-and-size-category>"
12
+ },
7
13
  "documentation": [
8
14
  {
9
15
  "filepath": "FEATURE_NAME_DOC.md",