dotmd-cli 0.76.0 → 0.76.2
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/package.json +1 -1
- package/src/new.mjs +12 -2
- package/src/section.mjs +2 -2
package/package.json
CHANGED
package/src/new.mjs
CHANGED
|
@@ -101,7 +101,16 @@ const BUILTIN_TEMPLATES = {
|
|
|
101
101
|
'related_plans:',
|
|
102
102
|
'related_docs:',
|
|
103
103
|
].join('\n'),
|
|
104
|
-
body: (t, ctx) =>
|
|
104
|
+
body: (t, ctx) => {
|
|
105
|
+
// Same full-body shortcut the plan templates use, and for the same
|
|
106
|
+
// reason: a body that already authors `## Section` headings is a complete
|
|
107
|
+
// document, not section-content for one slot. Nesting it under `## Overview`
|
|
108
|
+
// produced a second `# Title` under the scaffold's, a placeholder summary
|
|
109
|
+
// line above the author's own opening, and the skeleton's trailing
|
|
110
|
+
// sections after a document that had already ended.
|
|
111
|
+
const authored = fullBodyShortcut(t, ctx?.bodyInput);
|
|
112
|
+
if (authored !== null) return authored;
|
|
113
|
+
return `
|
|
105
114
|
# ${t}
|
|
106
115
|
|
|
107
116
|
> One-line summary of what this doc covers.
|
|
@@ -116,7 +125,8 @@ ${ctx?.bodyInput?.trim() ?? ''}
|
|
|
116
125
|
|
|
117
126
|
## Related Documentation
|
|
118
127
|
|
|
119
|
-
|
|
128
|
+
`;
|
|
129
|
+
},
|
|
120
130
|
},
|
|
121
131
|
plan: {
|
|
122
132
|
description: 'Execution plan — build-up shape (Problem → Phases → Closeout) with phase status markers and Version History',
|
package/src/section.mjs
CHANGED
|
@@ -65,7 +65,7 @@ export function findSection(sections, name) {
|
|
|
65
65
|
// Within each tier the order is still priority order, which decides a heading
|
|
66
66
|
// carrying more than one mark.
|
|
67
67
|
const GLYPH_PATTERNS = [
|
|
68
|
-
{ kind: 'shipped', re: /(
|
|
68
|
+
{ kind: 'shipped', re: /(✅|☑|✔|✓)/ },
|
|
69
69
|
{ kind: 'skipped', re: /(⏭)/ },
|
|
70
70
|
{ kind: 'in-progress', re: /(🟡|🔄)/ },
|
|
71
71
|
{ kind: 'blocked', re: /(🚧|🔴)/ },
|
|
@@ -109,7 +109,7 @@ export function detectMarker(heading) {
|
|
|
109
109
|
// and the space, is not \s, and ends the run — so a heading led by the
|
|
110
110
|
// emoji-presentation form was not a phase heading at all, while the bare
|
|
111
111
|
// codepoint was. Reported by the owner, 2026-08-16.
|
|
112
|
-
const PHASE_DECORATION = String.raw`[\s>*_~\`#-]*(?:[
|
|
112
|
+
const PHASE_DECORATION = String.raw`[\s>*_~\`#-]*(?:[✅🚧⬜🟡⏭☑✔✓◻☐⬛🔴🔄][︎️]?\s*)*`;
|
|
113
113
|
const PHASE_LEAD = new RegExp(`^${PHASE_DECORATION}phase\\b`, 'i');
|
|
114
114
|
|
|
115
115
|
// "Phase 3 outcome" is commentary ABOUT a phase, not a phase. Counting it
|