project-logbook 1.1.0 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -48,7 +48,7 @@ program
48
48
  await upgrade();
49
49
  });
50
50
  program
51
- .command('start <id>')
51
+ .command('start [id]')
52
52
  .description('Mark a logbook entry as active by ID, e.g. LB-5 (writes .logbook-active lockfile)')
53
53
  .action(async (id) => {
54
54
  const { start } = await import('./commands/start.js');
@@ -1,6 +1,6 @@
1
1
  import type { LogbookConfig } from './config.js';
2
2
  import type { TimelineEntry } from './template-types.js';
3
- export declare function mdToHtml(md: string): Promise<string>;
3
+ export declare function mdToHtml(md: string, prefix?: string): Promise<string>;
4
4
  /** Process entry markdown with image path rewriting */
5
5
  export declare function mdToHtmlWithImagePathRewrite(md: string): Promise<string>;
6
6
  export declare function buildProjectMdFiles(projectRoot: string, outputDir: string, excludeDirs: string[], ctx: {
@@ -19,4 +19,4 @@ export declare function renderPost(data: TimelineEntry, i: number, allEntries: T
19
19
  * Generate the standard footer metadata string.
20
20
  * Always hardcoded to 'Project Logbook CLI' with link to npm.
21
21
  */
22
- export declare function generateBuildMeta(version: string, buildTime: string): string;
22
+ export declare const generateBuildMeta: (version: string, buildTime: string) => string;
@@ -1,5 +1,5 @@
1
1
  import fs from 'fs-extra';
2
- import { join } from 'node:path';
2
+ import { join, relative } from 'node:path';
3
3
  import matter from 'gray-matter';
4
4
  import { layout, postTemplate } from './templates.js';
5
5
  import { getGitCommits } from './git-helpers.js';
@@ -11,43 +11,43 @@ import { mdToHtmlWithImages, extractImagePathsFromMarkdown, copyImages, rehypeRe
11
11
  import { transformLogToTimeline } from '../utils/log-timeline.js';
12
12
  const processor = createGeneralMarkdownProcessor(rehypeRewriteMdLinks);
13
13
  const entryProcessor = createEntryMarkdownProcessor(rehypeRewriteMdLinks, rehypeRewriteImagePaths);
14
- export async function mdToHtml(md) {
15
- const result = await processor.process(md);
16
- return result.toString();
14
+ export async function mdToHtml(md, prefix) {
15
+ const proc = prefix ? createGeneralMarkdownProcessor(rehypeRewriteMdLinks, { prefix }) : processor;
16
+ return (await proc.process(md)).toString();
17
17
  }
18
18
  /** Process entry markdown with image path rewriting */
19
19
  export async function mdToHtmlWithImagePathRewrite(md) {
20
- const result = await entryProcessor.process(md);
21
- return result.toString();
20
+ return (await entryProcessor.process(md)).toString();
22
21
  }
23
22
  export async function buildProjectMdFiles(projectRoot, outputDir, excludeDirs, ctx) {
24
- const entries = await fs.readdir(projectRoot, { withFileTypes: true });
25
- for (const entry of entries) {
26
- if (!entry.isFile() || !entry.name.endsWith('.md'))
27
- continue;
28
- if (excludeDirs.includes(entry.name))
29
- continue;
30
- const sourcePath = join(projectRoot, entry.name);
31
- const stem = entry.name.replace(/\.md$/i, '');
32
- const outDir = join(outputDir, stem);
33
- const mdContent = await fs.readFile(sourcePath, 'utf8');
34
- const bodyHtml = await mdToHtml(mdContent);
35
- const buildMeta = generateBuildMeta(ctx.version, ctx.buildTime);
23
+ const scan = (dir) => {
24
+ return fs.readdirSync(dir, { withFileTypes: true }).flatMap((e) => {
25
+ if (e.name.startsWith('.') || excludeDirs.includes(e.name))
26
+ return [];
27
+ const p = join(dir, e.name);
28
+ return e.isDirectory() ? scan(p) : e.name.endsWith('.md') ? [relative(projectRoot, p)] : [];
29
+ });
30
+ };
31
+ for (const relPath of scan(projectRoot)) {
32
+ const relStem = relPath.replace(/\.md$/i, '');
33
+ const mdContent = await fs.readFile(join(projectRoot, relPath), 'utf8');
34
+ const title = relPath.split('/').pop()?.replace(/\.md$/i, '') || '';
36
35
  const pageHtml = layout({
37
- title: stem,
36
+ title,
38
37
  projectName: ctx.config.projectName,
39
- basePath: '../',
40
- buildMeta,
41
- header: `<header><h1>${stem}</h1></header>`,
42
- content: bodyHtml,
38
+ basePath: '../'.repeat(relStem.split('/').length),
39
+ buildMeta: generateBuildMeta(ctx.version, ctx.buildTime),
40
+ header: `<header><h1>${title}</h1></header>`,
41
+ content: await mdToHtml(mdContent, '../'),
43
42
  });
44
- await fs.mkdirp(outDir);
45
- await fs.writeFile(join(outDir, 'index.html'), pageHtml);
43
+ await fs.mkdirp(join(outputDir, relStem));
44
+ await fs.writeFile(join(outputDir, relStem, 'index.html'), pageHtml);
46
45
  }
47
46
  }
48
47
  async function renderLinkedMdFiles(markdownSources, entryPath, entryOutputDir, ctx) {
49
48
  const linkRegex = /\[.*?\]\(([^)]+\.md(?:#[^)]*)?)?\)/gi;
50
49
  const seen = new Set();
50
+ const projectRoot = fs.realpathSync(process.cwd());
51
51
  for (const source of markdownSources) {
52
52
  let match;
53
53
  linkRegex.lastIndex = 0;
@@ -56,42 +56,34 @@ async function renderLinkedMdFiles(markdownSources, entryPath, entryOutputDir, c
56
56
  if (!raw)
57
57
  continue;
58
58
  const href = raw.split('#')[0];
59
- if (!href)
60
- continue;
61
- if (isExternalUrl(href))
59
+ if (!href || isExternalUrl(href))
62
60
  continue;
63
61
  if (seen.has(href))
64
62
  continue;
65
63
  seen.add(href);
66
- let sourcePath = join(entryPath, href);
67
- sourcePath = (await pathExistsOrNull(sourcePath)) ?? join(process.cwd(), href);
68
- if (!sourcePath || !(await pathExistsOrNull(sourcePath))) {
64
+ const sourcePath = (await pathExistsOrNull(join(entryPath, href))) ?? (await pathExistsOrNull(join(projectRoot, href)));
65
+ if (!sourcePath) {
69
66
  console.warn(` Linked file not found, skipping: ${href}`);
70
67
  continue;
71
68
  }
72
- // Path traversal protection: ensure resolved path stays within project boundaries
73
69
  const resolvedPath = fs.realpathSync(sourcePath);
74
- const projectRoot = fs.realpathSync(process.cwd());
75
70
  if (!resolvedPath.startsWith(projectRoot + '/') && resolvedPath !== projectRoot) {
76
71
  console.warn(` Path traversal blocked: ${href}`);
77
72
  continue;
78
73
  }
79
74
  const mdContent = await fs.readFile(sourcePath, 'utf8');
80
- const bodyHtml = await mdToHtml(mdContent);
81
75
  const title = href.replace(/\.md$/i, '');
82
- const buildMeta = generateBuildMeta(ctx.version, ctx.buildTime);
76
+ const stem = href.replace(/\.md$/i, '').replace(/^\.\//, '');
83
77
  const pageHtml = layout({
84
78
  title,
85
79
  projectName: ctx.config.projectName,
86
80
  basePath: '../',
87
- buildMeta,
81
+ buildMeta: generateBuildMeta(ctx.version, ctx.buildTime),
88
82
  header: `<header><h1>${title}</h1></header>`,
89
- content: bodyHtml,
83
+ content: await mdToHtml(mdContent, '../'),
90
84
  });
91
- const stem = href.replace(/\.md$/i, '').replace(/^\.\//, '');
92
- const outDir = join(entryOutputDir, stem);
93
- await fs.mkdirp(outDir);
94
- await fs.writeFile(join(outDir, 'index.html'), pageHtml);
85
+ await fs.mkdirp(join(entryOutputDir, stem));
86
+ await fs.writeFile(join(entryOutputDir, stem, 'index.html'), pageHtml);
95
87
  }
96
88
  }
97
89
  }
@@ -108,15 +100,15 @@ export async function renderPost(data, i, allEntries, ctx, isResearch = false, c
108
100
  const logRaw = await readFileIfExists(entryFilePaths.log);
109
101
  // Process with image collection for index.md content
110
102
  const { html: storyHtml, imagePaths: storyImages } = await mdToHtmlWithImages(content.replace(/^#\s+.+$/m, '').trim());
111
- // Collect images from all markdown sources
112
- const ticketImages = extractImagePathsFromMarkdown(ticketRaw);
113
- const logImages = extractImagePathsFromMarkdown(logRaw);
114
- const allImagePaths = [...storyImages, ...ticketImages, ...logImages];
103
+ const allImagePaths = [
104
+ ...storyImages,
105
+ ...extractImagePathsFromMarkdown(ticketRaw),
106
+ ...extractImagePathsFromMarkdown(logRaw),
107
+ ];
115
108
  const commits = await getGitCommits(entryPath);
116
109
  const jiraUrl = ctx.config.jiraBaseUrl && data.ticket ? `${ctx.config.jiraBaseUrl}${data.ticket}` : undefined;
117
110
  const prev = i > 0 ? allEntries[i - 1] : null;
118
111
  const next = i < allEntries.length - 1 ? allEntries[i + 1] : null;
119
- // Transform log to timeline if possible, otherwise fall back to plain markdown
120
112
  const logHtml = logRaw ? await transformLogToTimeline(logRaw) : '';
121
113
  const backLink = isResearch || customTypeName ? '../../index.html' : '../index.html';
122
114
  const basePath = isResearch || customTypeName ? '../../' : '../';
@@ -135,33 +127,25 @@ export async function renderPost(data, i, allEntries, ctx, isResearch = false, c
135
127
  nextEntry: next ? { slug: next.slug, title: next.title ?? '', ticket: next.ticket } : null,
136
128
  backLink,
137
129
  });
138
- const descriptionRaw = typeof data.summary === 'string' ? data.summary.replace(/[*#`]/g, '').trim() : '';
139
- const buildMeta = generateBuildMeta(ctx.version, ctx.buildTime);
140
130
  const prevUrl = prev ? `../${prev.slug}/index.html` : undefined;
141
131
  const nextUrl = next ? `../${next.slug}/index.html` : undefined;
142
132
  const postHtml = layout({
143
133
  title: data.title ?? data.slug,
144
134
  projectName: ctx.config.projectName,
145
135
  basePath,
146
- description: descriptionRaw.substring(0, 160),
136
+ description: (typeof data.summary === 'string' ? data.summary.replace(/[*#`]/g, '').trim() : '').substring(0, 160),
147
137
  bodySlug: data.slug,
148
- buildMeta,
138
+ buildMeta: generateBuildMeta(ctx.version, ctx.buildTime),
149
139
  header: postHeader,
150
140
  content: postMainContent,
151
141
  prevUrl,
152
142
  nextUrl,
153
143
  });
154
- const entryOutputDir = customTypeName
155
- ? join(ctx.outputDir, customTypeName, data.slug)
156
- : isResearch
157
- ? join(ctx.outputDir, 'research', data.slug)
158
- : join(ctx.outputDir, data.slug);
144
+ const entryOutputDir = join(ctx.outputDir, customTypeName || (isResearch ? 'research' : ''), data.slug);
159
145
  await fs.mkdirp(entryOutputDir);
160
146
  await fs.writeFile(join(entryOutputDir, 'index.html'), postHtml);
161
- // Copy images to output directory
162
147
  if (allImagePaths.length > 0) {
163
- const imagesOutputDir = join(entryOutputDir, 'images');
164
- await copyImages(entryPath, imagesOutputDir, allImagePaths);
148
+ await copyImages(entryPath, join(entryOutputDir, 'images'), allImagePaths);
165
149
  }
166
150
  await renderLinkedMdFiles([summaryContent, ticketRaw, logRaw], entryPath, entryOutputDir, ctx);
167
151
  }
@@ -169,7 +153,5 @@ export async function renderPost(data, i, allEntries, ctx, isResearch = false, c
169
153
  * Generate the standard footer metadata string.
170
154
  * Always hardcoded to 'Project Logbook CLI' with link to npm.
171
155
  */
172
- export function generateBuildMeta(version, buildTime) {
173
- return `Generated by <a href="https://www.npmjs.com/package/project-logbook" target="_blank" rel="noopener noreferrer">Project Logbook CLI</a> v${version} • ${buildTime}`;
174
- }
156
+ export const generateBuildMeta = (version, buildTime) => `Generated by <a href="https://www.npmjs.com/package/project-logbook" target="_blank" rel="noopener noreferrer">Project Logbook CLI</a> v${version} • ${buildTime}`;
175
157
  //# sourceMappingURL=build-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-helpers.js","sourceRoot":"","sources":["../../src/lib/build-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-helpers.js","sourceRoot":"","sources":["../../src/lib/build-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  import { unified } from 'unified';
2
2
  import type { Plugin } from 'unified';
3
3
  import type { Root } from 'hast';
4
+ export interface RewriteMdLinksOptions {
5
+ prefix?: string;
6
+ }
4
7
  /**
5
8
  * Rehype plugin: rewrite relative .md links to /index.html equivalents.
6
9
  */
7
- export declare const rehypeRewriteMdLinks: Plugin<[], Root>;
10
+ export declare const rehypeRewriteMdLinks: Plugin<[RewriteMdLinksOptions?], Root>;
8
11
  /**
9
12
  * General markdown processor for project files (README.md, etc.)
10
13
  * Used for files that don't need image path rewriting
11
14
  */
12
- export declare function createGeneralMarkdownProcessor(rehypeRewriteMdLinks: Plugin<[], Root>): ReturnType<typeof unified.prototype.use>;
15
+ export declare function createGeneralMarkdownProcessor(rehypeRewriteMdLinks: Plugin<[RewriteMdLinksOptions?], Root>, options?: RewriteMdLinksOptions): ReturnType<typeof unified.prototype.use>;
13
16
  /**
14
17
  * Entry markdown processor with image path rewriting
15
18
  * Used for logbook entry content (index.md, ticket.md, log.md)
@@ -10,7 +10,8 @@ import { isExternalUrlOrAnchor } from './url-helpers.js';
10
10
  /**
11
11
  * Rehype plugin: rewrite relative .md links to /index.html equivalents.
12
12
  */
13
- export const rehypeRewriteMdLinks = () => {
13
+ export const rehypeRewriteMdLinks = (options = {}) => {
14
+ const prefix = options.prefix ?? '';
14
15
  return (tree) => {
15
16
  visitHastElements(tree, 'a', (node) => {
16
17
  const href = node.properties?.href;
@@ -23,7 +24,9 @@ export const rehypeRewriteMdLinks = () => {
23
24
  return;
24
25
  const base = mdMatch[1];
25
26
  const fragment = mdMatch[2] ?? '';
26
- node.properties.href = `${base}/index.html${fragment}`;
27
+ const isRelative = !base.startsWith('/') && !base.startsWith('http://') && !base.startsWith('https://');
28
+ const finalBase = (isRelative ? `${prefix}${base}` : base).replace(/\/\.\//g, '/');
29
+ node.properties.href = `${finalBase}/index.html${fragment}`;
27
30
  });
28
31
  };
29
32
  };
@@ -36,17 +39,16 @@ export const rehypeRewriteMdLinks = () => {
36
39
  function createMarkdownProcessor(plugins = []) {
37
40
  const processor = unified().use(remarkParse).use(remarkGfm).use(remarkRehype);
38
41
  // Apply custom plugins before formatting
39
- for (const plugin of plugins) {
40
- processor.use(plugin);
41
- }
42
+ processor.use(plugins);
42
43
  return processor.use(rehypeSlug).use(rehypeFormat).use(rehypeStringify);
43
44
  }
44
45
  /**
45
46
  * General markdown processor for project files (README.md, etc.)
46
47
  * Used for files that don't need image path rewriting
47
48
  */
48
- export function createGeneralMarkdownProcessor(rehypeRewriteMdLinks) {
49
- return createMarkdownProcessor([rehypeRewriteMdLinks]);
49
+ export function createGeneralMarkdownProcessor(rehypeRewriteMdLinks, options) {
50
+ const pluginArg = options ? [rehypeRewriteMdLinks, options] : rehypeRewriteMdLinks;
51
+ return createMarkdownProcessor([pluginArg]);
50
52
  }
51
53
  /**
52
54
  * Entry markdown processor with image path rewriting
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-processors.js","sourceRoot":"","sources":["../../src/lib/markdown-processors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqB,GAAG,EAAE;IACzD,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAa,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;YACnC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO;YACrC,IAAI,qBAAqB,CAAC,IAAI,CAAC;gBAAE,OAAO;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,IAAI,cAAc,QAAQ,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,UAA0C,EAAE;IAE5C,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE9E,yCAAyC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,oBAAsC;IAEtC,OAAO,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,oBAAsC,EACtC,uBAAyC;IAEzC,OAAO,uBAAuB,CAAC,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAC5C,qBAAuC,EACvC,uBAAyC,EACzC,oBAAuC;IAEvC,MAAM,OAAO,GAAmC,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;IACjG,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"markdown-processors.js","sourceRoot":"","sources":["../../src/lib/markdown-processors.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,17 @@ Once the work is ready:
65
65
 
66
66
  The linter enforces rules to be followed.
67
67
 
68
- ### 4. Final Review
68
+ ### 4. Interactive Local QA Loop
69
+ Development is an iterative process. Expect to go through several feedback loops with the prompter before a ticket is finalized:
70
+ - **Test & Challenge**: The prompter will run and test your changes, challenge architectural patterns, and suggest revisions.
71
+ - **Cycle Routine**: During each feedback round:
72
+ 1. Update code according to feedback.
73
+ 2. Log key decisions, errors, and pivots in `log.md` (`logbook log "..."`).
74
+ 3. Keep the story in `index.md` fully up-to-date with any design/code changes.
75
+ 4. Run `npm run pre` to verify linting and tests pass.
76
+ - **Commit Optimization**: Once the implementation is solid, optimize the final git commit message to match project standards before releasing.
77
+
78
+ ### 5. Final Review
69
79
  Use the preview command to see how your entry looks in the context of the whole project:
70
80
  ```bash
71
81
  logbook preview
@@ -88,9 +98,31 @@ If `jiraPrefix` is configured, entry folder names and ticket references must mat
88
98
 
89
99
  ## Research Logs
90
100
  For exploratory research, technical spike investigations, and architectural decision groundwork, we use **Research Logs**.
91
- - **Location**: Stored in `docs/research/` (configurable via `researchDir`).
92
- - **Scaffolding**: Run `logbook new [ID] [Slug] --research` or `logbook new -r` to scaffold. This automatically generates a numeric ID prefixed with `RES-` (e.g. `RES-1`).
101
+
102
+ - **Required Setup**: Before creating your first research log, ensure that your configured research directory exists on your filesystem (for example, create it using `mkdir -p docs/research`).
103
+ - **Location**: Stored in `docs/research/` (configurable via `researchDir` in `.project-logbook`).
104
+ - **Scaffolding**: Run `logbook new [ID] [Slug] --research` or `logbook new -r` to scaffold. This automatically generates a numeric ID prefixed with `RES-` (e.g., `RES-1`).
93
105
  - **Commands**: Commands like `logbook start RES-1`, `logbook log`, and `logbook release` work transparently.
94
106
  - **Auto-Activity Tracking**: Writing a log message via `logbook log` automatically updates the `updated` frontmatter field inside the research log's `index.md`.
95
107
  - **Status Lifecycle**: The frontmatter `status` field tracks progress: `active`, `paused`, `postponed`, or `completed`.
96
108
  - **Visuals**: Research logs are compiled and displayed under a dedicated "Research" tab on the built logbook homepage, sorted by their latest `updated` date.
109
+
110
+ ## Custom Storyline Types
111
+ Beyond standard logbook entries and Research Logs, you can define completely custom storyline types (e.g., "analyses", "spikes", "decisions") in `.project-logbook`.
112
+
113
+ - **Required Setup**: Define the custom types inside your `.project-logbook` configuration file under `customTypes` and ensure the directory exists on your filesystem:
114
+ ```json
115
+ {
116
+ "customTypes": {
117
+ "analyses": {
118
+ "prefix": "ANA",
119
+ "dir": "docs/analyses",
120
+ "tabTitle": "Analyses",
121
+ "sortBy": "updated"
122
+ }
123
+ }
124
+ }
125
+ ```
126
+ - **Directory Setup**: Ensure the directory configured (e.g., `docs/analyses`) is created on your filesystem (for example, create it using `mkdir -p docs/analyses`).
127
+ - **Scaffolding**: Run `logbook new [ID] [Slug] --type analyses` or `logbook new -t analyses` to scaffold the entry.
128
+ - **Visuals**: Just like Research Logs, these custom types will automatically compile into dedicated tabs on the built logbook homepage using your specified `tabTitle`.
@@ -0,0 +1,34 @@
1
+ ---
2
+ id: [ID_NUM]
3
+ title: [YAML_TITLE]
4
+ status: "proposed"
5
+ date: [DATE]
6
+ author: "[AUTHOR]"
7
+ superseded_by: null
8
+ tags: []
9
+ ---
10
+
11
+ # ADR [ID]: [TITLE]
12
+
13
+ ## Context
14
+ [Describe the issue motivating this decision and any context that influences it.]
15
+
16
+ ## Considered Options
17
+ 1. **[Option A]**: [Brief description.]
18
+ 2. **[Option B]**: [Brief description.]
19
+
20
+ ## Decision
21
+ [State the decision and briefly explain what it means in practice.]
22
+
23
+ ## Rationale
24
+ [Explain why this option was chosen over the alternatives.]
25
+
26
+ ## Consequences
27
+
28
+ ### Positive
29
+ * [Benefit 1]
30
+ * [Benefit 2]
31
+
32
+ ### Negative
33
+ * [Drawback 1]
34
+ * [Drawback 2]
@@ -2,7 +2,7 @@
2
2
  # The ticket field should match the ID portion (e.g., LB-34)
3
3
  ticket: {{id}}
4
4
  # The title should be a human-readable description of the work
5
- title: {{title}}
5
+ title: {{yamlTitle}}
6
6
  prompter: "[PROMPTER]"
7
7
  harness: "[HARNESS]"
8
8
  llm: "[LLM]"
@@ -27,9 +27,10 @@ TODO: Write a polished, highly readable ticket summary that reads like an engagi
27
27
 
28
28
  ### Formatting & Style Rules:
29
29
  - **Maintain the narrative tone:** TODO: Keep the storytelling flair (e.g., describing how problems accumulated or how gaps surfaced), but stay strictly factual based on the provided changes.
30
- - **Add thematic headings:** TODO: Break the narrative down into logical chapters using Markdown headings (e.g., ### The Friction Points, ### The Fix, ### Closing the Gap).
31
- - **Use bullet points:** TODO: Whenever listing multiple items (like friction points, test scenarios, or rewritten paths), use a bulleted list instead of a dense paragraph to make it scannable.
30
+ - **Add thematic headings:** TODO: Break the narrative down into logical chapters using action-oriented Markdown subheadings that describe what was improved/solved (e.g., ### Improving TabGroup Accessibility, ### Binding Dialog Colors to the Theme) rather than dry, generic headers like "Friction" or "The Fix".
31
+ - **Avoid forced bullet points:** TODO: Write in natural, flowing paragraphs (like in a dev blog post). Only use bullet points for actual, simple lists of items (e.g., list of modified files or configuration options), never to structure or split your main story thoughts.
32
32
  - **Use bold emphasis:** TODO: Bold key concepts, problems, and solutions to guide the reader's eye.
33
33
  - **Format code:** TODO: Use inline backticks for files, plugins, HTML elements, and code snippets (e.g., `src/lib/build-helpers.ts`).
34
- - **Keep paragraphs short:** TODO: Ensure no paragraph is longer than 3-4 sentences. Keep the pacing quick and engaging.
34
+ - **Keep paragraphs short:** TODO: Ensure no paragraph is longer than 4 sentences. Keep the pacing quick and engaging.
35
+ - **Weave the narrative:** TODO: Do not list all friction points in one massive block followed by all fixes/solutions in another. Instead, weave them together chronologically or by component/theme (e.g., describe the friction and its corresponding fix within the same chapter or paragraph).
35
36
  - **Do not state the obvious**: TODO: Passed tests, lints, pre-commit suites are mandatory and no ticket is released without this. This does not need to be mentioned
@@ -33,9 +33,22 @@ You MUST log your work continuously using `logbook log "<message>"`. This is not
33
33
  Phase 3: Synthesize
34
34
  1. When implementation is finished, write the narrative in `index.md`.
35
35
  2. Storytelling Mode: Explain the "Why" and the "Journey." Avoid simple technical bullet points.
36
+ - **Keep paragraphs short**: Max 4 sentences per paragraph to ensure fast-paced, readable prose.
37
+ - **Use bold & code formatting**: Use inline backticks for files/code, and bolding for key terms/problems.
38
+ - **Structure with H3 headings**: Use action-oriented subheadings describing the topic/component modified (e.g., ### Improving TabGroup Accessibility, ### Binding Dialog Colors to the Theme) instead of generic "Friction" or "Fix" headers.
39
+ - **Avoid forced lists**: Write in natural, flowing paragraphs. Only use bullet points for simple lists of items (e.g., files modified, options checked), never to split or structure your core narrative thoughts.
40
+ - **Weave friction & fix**: Do not separate all problems into one block and all solutions into another. Weave them together chronologically or group them by component/theme.
36
41
  3. Clean up all template placeholders and complete the frontmatter (author, summary, dates).
37
42
 
38
43
  Phase 4: Verify
39
44
  1. Run `npm run pre` (which includes `logbook lint` and other quality gates).
40
45
  2. Ensure there are no linter errors, unreplaced placeholders, or architectural violations before concluding your work.
41
- 3. Hand back to the prompter, who will review and run `logbook release`.
46
+ 3. Hand back to the prompter for local QA/review.
47
+
48
+ Phase 5: Local QA & Iterative Refinement
49
+ 1. Expect feedback loops: The prompter will test your changes, challenge decisions, and request refinements.
50
+ 2. In each iteration loop:
51
+ - Log decisions and pivots in `log.md` in real-time (`logbook log "<message>"`).
52
+ - Update the story in `index.md` to reflect any design/code changes.
53
+ - Run verification again (`npm run pre`).
54
+ 3. Optimize the git commit message (conforming to project standards) before final release.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Standard-library CLI selection menu using Node's readline and raw mode.
3
+ * Moves cursor up/down, handles carriage return, Ctrl+C to abort, and hides the cursor.
4
+ * ponytail: simple raw-mode keyboard selection, no massive external prompt libraries.
5
+ */
6
+ export declare function selectPrompt(message: string, choices: string[]): Promise<number>;
@@ -0,0 +1,59 @@
1
+ import readline from 'node:readline';
2
+ /**
3
+ * Standard-library CLI selection menu using Node's readline and raw mode.
4
+ * Moves cursor up/down, handles carriage return, Ctrl+C to abort, and hides the cursor.
5
+ * ponytail: simple raw-mode keyboard selection, no massive external prompt libraries.
6
+ */
7
+ export async function selectPrompt(message, choices) {
8
+ if (choices.length === 0) {
9
+ return -1;
10
+ }
11
+ const { stdin, stdout } = process;
12
+ // Non-interactive / non-TTY fallback to prevent hanging in CI/scripts
13
+ if (!stdin.isTTY) {
14
+ return 0;
15
+ }
16
+ return new Promise((resolve) => {
17
+ let index = 0;
18
+ const render = () => {
19
+ stdout.write('\r\x1B[K' + message + '\n');
20
+ choices.forEach((choice, i) => {
21
+ const prefix = i === index ? '> ' : ' ';
22
+ stdout.write('\x1B[K' + prefix + choice + '\n');
23
+ });
24
+ // Move cursor back up to the start of the list
25
+ stdout.write(`\x1B[${choices.length + 1}A`);
26
+ };
27
+ readline.emitKeypressEvents(stdin);
28
+ stdin.setRawMode(true);
29
+ stdout.write('\x1B[?25l'); // Hide cursor
30
+ render();
31
+ const onKey = (_str, key) => {
32
+ if (key.name === 'up') {
33
+ index = (index - 1 + choices.length) % choices.length;
34
+ render();
35
+ }
36
+ else if (key.name === 'down') {
37
+ index = (index + 1) % choices.length;
38
+ render();
39
+ }
40
+ else if (key.name === 'return') {
41
+ cleanup();
42
+ resolve(index);
43
+ }
44
+ else if (key.ctrl && key.name === 'c') {
45
+ cleanup();
46
+ process.exit(130); // 130 is standard SIGINT exit code
47
+ }
48
+ };
49
+ const cleanup = () => {
50
+ // Move cursor down past choices and show cursor again
51
+ stdout.write(`\x1B[${choices.length + 1}B\x1B[?25h\r`);
52
+ stdin.removeListener('keypress', onKey);
53
+ stdin.setRawMode(false);
54
+ stdin.pause(); // ponytail: pause stdin so Node can exit instead of hanging
55
+ };
56
+ stdin.on('keypress', onKey);
57
+ });
58
+ }
59
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,OAAiB;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAElC,sEAAsE;IACtE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,+CAA+C;YAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACzC,MAAM,EAAE,CAAC;QAET,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,GAAsC,EAAE,EAAE;YACrE,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACtD,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACrC,MAAM,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxC,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAmC;YACxD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,sDAAsD;YACtD,MAAM,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC;YACvD,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACxC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,4DAA4D;QAC7E,CAAC,CAAC;QAEF,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-logbook",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "A command-line tool for project logbooks.",
5
5
  "workspaces": [
6
6
  "demo-app"
@@ -27,7 +27,7 @@
27
27
  "madge": "madge --circular --extensions ts --ts-config ./tsconfig.json src/index.ts",
28
28
  "jscpd": "jscpd src",
29
29
  "test": "vitest run",
30
- "pre": "npm run format && npm run lint && npm run test && npm run build && npm run knip && npm run madge && npm run jscpd && npm run dev build && npm run dev lint && npm audit",
30
+ "pre": "npm run format && npm run lint && npm run test && npm run build && npm run knip && npm run madge && npm run jscpd && npm run dev build && npm run dev lint && npm audit --audit-level=high",
31
31
  "next": "node scripts/create-ticket-from-backlog.js",
32
32
  "link": "npm run build && npm link",
33
33
  "open": "npm run dev build && node scripts/open-and-view-dist.js"