You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
B --> C["Mode Selector\n(--type docusaurus|blog|faq|...)"]
379
+
C --> D["Prompt Builder\n(_shared.md + _profile.md + mode.md + config)"]
380
+
D --> E["Provider Adapter\nmock | OpenAI | Anthropic | Gemini"]
381
+
E --> F["Markdown Generator\n(index.md · docs/{slug}.md)"]
382
+
F --> G["Review Checklist\n(review-checklist.md · metadata.json · source-summary.md)"]
383
+
G --> H["Docs Site\n(Docusaurus · GitBook · GitHub · Blog)"]
375
384
```
376
-
Transcript / Notes
377
-
↓
378
-
Source Parser
379
-
(extract title, source URL, content)
380
-
↓
381
-
Video Intake Guard (if --url provided)
382
-
(URL validate → metadata fetch → tech classify)
383
-
↓
384
-
Mode Prompt Builder
385
-
(shared rules + user profile + mode template)
386
-
↓
387
-
Provider Adapter
388
-
(mock / OpenAI / Anthropic / Gemini)
389
-
↓
390
-
Markdown Generator
391
-
(index.md + type-specific files)
392
-
↓
393
-
Review Checklist
394
-
(review-checklist.md + metadata.json)
395
-
↓
396
-
Output Files
397
-
(output/{slug}-{date}/)
398
-
```
385
+
386
+
---
387
+
388
+
## What This Proves
389
+
390
+
> For recruiters, hiring managers, and anyone evaluating AI developer tooling skills.
391
+
392
+
devdocs-forge-agent is not a toy project. It is a working CLI tool with a real user experience, a test suite, CI/CD, and documentation — built to demonstrate specific engineering capabilities:
393
+
394
+
| Capability | Where to Look |
395
+
|---|---|
396
+
|**Provider abstraction pattern**|`src/providers/provider.types.ts` + `provider-registry.ts` — one interface, four implementations, zero coupling |
The `--type gitbook` mode generates valid Markdown but misses some GitBook-specific conventions: hint blocks (`{% hint style="info" %}`), page-ref cards, and tab blocks. Improve the mode prompt and add an example output.
111
+
112
+
Key files:
113
+
-`modes/gitbook.md` — update prompt with GitBook-specific formatting instructions
114
+
-`examples/` — add a sample GitBook output showing hint blocks
115
+
-`docs/MODES.md` — document the GitBook-specific output features
116
+
117
+
Acceptance criteria:
118
+
- Generated GitBook output uses `{% hint %}` blocks for notes and warnings
119
+
- Output renders correctly in a local GitBook project
**Labels:**`good first issue`, `docusaurus`, `enhancement`
128
+
**Difficulty:** Low to medium (TypeScript, file reading)
129
+
130
+
After running `npm run batch`, users manually update their Docusaurus `sidebars.js`. Add a command that reads the `output/` directory and prints a ready-to-paste sidebar config snippet.
131
+
132
+
Key files:
133
+
- Create `src/cli/commands/sidebar.command.ts`
134
+
- Register in `src/cli/index.ts`
135
+
- Add `npm run sidebar` script to `package.json`
136
+
137
+
Acceptance criteria:
138
+
-`npm run sidebar` prints a valid Docusaurus sidebar config snippet to stdout
139
+
- Snippet includes all `docs/{slug}.md` files found in `output/`
140
+
- Works with zero additional config
141
+
142
+
---
143
+
144
+
### 8. Transcript Chunking for Long Videos
145
+
146
+
**Title:** Add transcript chunking for long transcripts
147
+
**Labels:**`good first issue`, `pipeline`, `enhancement`
148
+
**Difficulty:** Medium (~100 lines, involves pipeline changes)
149
+
150
+
Long transcripts (>8,000 tokens) exceed typical LLM context windows. Add a chunking strategy that splits long transcripts into sections, generates per-section docs, and merges them into a single output.
151
+
152
+
Key files:
153
+
- Create `src/pipeline/transcript-chunker.ts`
154
+
- Update `src/pipeline/generation-pipeline.ts` to call chunker when transcript exceeds a threshold
155
+
- Add chunking config option to `src/config/config.schema.ts`
156
+
157
+
Acceptance criteria:
158
+
- Transcripts under the threshold are processed unchanged
159
+
- Transcripts over the threshold are split at section boundaries (H2 headings)
160
+
- Merged output is a single valid Markdown document
161
+
-`metadata.json` records `chunked: true` and chunk count
162
+
163
+
---
164
+
165
+
### 9. Docs Quality Score
166
+
167
+
**Title:** Add documentation quality score to verify output
168
+
**Labels:**`good first issue`, `pipeline`, `enhancement`
169
+
**Difficulty:** Medium (~80 lines, heuristic scoring)
170
+
171
+
`npm run verify` currently checks for required files. Add a quality score (0–100) based on heuristics: heading count, code block count, word count, checklist completeness, frontmatter completeness.
172
+
173
+
Key files:
174
+
- Create `src/pipeline/quality-scorer.ts`
175
+
- Update `src/cli/commands/verify.command.ts` to display the score
176
+
- Add score to `metadata.json`
177
+
178
+
Acceptance criteria:
179
+
-`npm run verify` displays a quality score for each output directory
180
+
- Score is between 0 and 100
181
+
- Score is written to `metadata.json` as `qualityScore`
182
+
- Documented scoring criteria in `docs/output-contract.md`
183
+
184
+
---
185
+
104
186
## Creating These as GitHub Issues
105
187
106
188
If you are the maintainer, use GitHub CLI to create these issues:
@@ -130,6 +212,27 @@ gh issue create \
130
212
--title "Build minimal local web preview for generated docs" \
--label "good first issue,docusaurus,enhancement" \
225
+
--body "See docs/GOOD_FIRST_ISSUES.md issue #7 for full spec."
226
+
227
+
gh issue create \
228
+
--title "Add transcript chunking for long videos" \
229
+
--label "good first issue,pipeline,enhancement" \
230
+
--body "See docs/GOOD_FIRST_ISSUES.md issue #8 for full spec."
231
+
232
+
gh issue create \
233
+
--title "Add docs quality score to verify command" \
234
+
--label "good first issue,pipeline,enhancement" \
235
+
--body "See docs/GOOD_FIRST_ISSUES.md issue #9 for full spec."
133
236
```
134
237
135
238
> Note: GitHub labels must exist before using `--label`. Create them first in the Labels settings page or with `gh label create "good first issue" --color "#7057ff"`.
Every `generate` or `batch` run produces a timestamped output directory with a guaranteed file set. This document defines what those files contain and what consumers can rely on.
4
+
5
+
## Directory Structure
6
+
7
+
```
8
+
output/{slug}-{YYYY-MM-DD}/
9
+
├── index.md ← Primary generated documentation
10
+
├── metadata.json ← Machine-readable generation record
11
+
├── review-checklist.md ← Human review tasks
12
+
├── source-summary.md ← Source attribution and stats
13
+
└── docs/ ← (docusaurus mode only)
14
+
└── {slug}.md ← Docusaurus-ready copy with YAML frontmatter
15
+
```
16
+
17
+
The `docs/` subdirectory is only created when `--type docusaurus` is used.
18
+
19
+
## File Specifications
20
+
21
+
### `index.md`
22
+
23
+
The primary generated document. Contains:
24
+
25
+
- Markdown body matching the requested output mode
26
+
- Source attribution comment at the bottom
27
+
- A "Review Checklist" section embedded in the document
28
+
29
+
**Consumers:** human review, Git history, docs site ingestion.
0 commit comments