@panaversity/ksor 0.0.55 → 0.0.57

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,162 +0,0 @@
1
- ---
2
- name: make-slides
3
- description: Generate a presentation from one document and attach it, so it renders on that document's page. Use when the owner says "make slides for X", "turn this into a deck", "I need to present this", asks for a teaching aid or a slideshow, or when onboarding needs a session rather than a page.
4
- metadata:
5
- version: "2.0.0"
6
- ---
7
-
8
- # Generating a presentation for a document
9
-
10
- You write the slides. Not an outline for somebody else to build — the actual
11
- deck, into `<doc>.slides.yaml`, which the site renders on that document's page.
12
- No browser, no third-party tool, no step where a human takes over.
13
-
14
- Run it end to end: read the document, write the deck, check every line back
15
- against the document, verify it builds. **The check is not optional** — it is
16
- the step that keeps the record's guarantee true.
17
-
18
- ## The one rule everything else serves
19
-
20
- **A slide may only say what the document says.**
21
-
22
- The deck is a way of presenting the record, never a second source. A slide
23
- asserting a threshold the document does not contain is a claim nothing governs
24
- and no agent can cite — and because the deck is an attachment, the record now
25
- stands behind it. Every number, date, name and rule is copied from the
26
- document exactly, units included.
27
-
28
- If the document does not say something you want on a slide, there are two
29
- honest options: leave it out, or tell the owner the document is missing it.
30
- Never a third.
31
-
32
- ## 1 · Read the document whole, first
33
-
34
- Read `<doc>.md` completely before writing anything. Note as you go:
35
-
36
- - **the decision it settles** — the reason it exists
37
- - **the rule, in its own words** — usually one or two sentences
38
- - **the numbers** — thresholds, deadlines, limits, and their units
39
- - **the cases** — what happens in each situation it names
40
- - **the boundary** — what it explicitly does NOT cover
41
- - **its governance** — `status`, `ksor.owner` and `ksor.effective_from` from
42
- the frontmatter
43
-
44
- If the document carries `<doc>.summary.md`, read that too: it is a reviewed
45
- compression of the same thing, and it tells you what the author thought was
46
- load-bearing.
47
-
48
- ## 2 · Write the deck
49
-
50
- Write `<doc>.slides.yaml` beside the document:
51
-
52
- ```yaml
53
- slides:
54
- title: Expense approvals
55
- description: The 15-minute version, for a room.
56
- deck:
57
- - heading: What this settles
58
- lead: One sentence, in the document's own words.
59
- note: What to say here. Spoken, never shown.
60
-
61
- - heading: The rule
62
- bullets:
63
- - Two approvers above the threshold, always
64
- - The threshold is per invoice, including tax
65
- note: Pause here. This is the slide people remember wrong.
66
- ```
67
-
68
- **Per slide:**
69
-
70
- | Field | Use |
71
- | --------- | ------------------------------------------------------------ |
72
- | `heading` | required — a statement, not a label. "The rule", not "Rules" |
73
- | `lead` | one sentence, for a slide making a single point |
74
- | `bullets` | three to five. Six is the cap, and six is already too many |
75
- | `note` | what the presenter SAYS — never a repeat of the slide |
76
-
77
- **Per deck** — 8 to 14 slides for an ordinary policy document:
78
-
79
- 1. What this settles, and for whom
80
- 2. Why it exists — the decision behind it
81
- 3. The rule itself, stated once
82
- 4. One slide per case, with the real numbers
83
- 5. What people get wrong, and what is true instead
84
- 6. The boundary — what this document does not cover
85
- 7. Where to find it: the route, the owner, the effective date
86
-
87
- **Habits that decide whether it is any good:**
88
-
89
- - **A heading is a claim.** "Recency is not authority" teaches; "Authority"
90
- does not.
91
- - **A bullet is one thought.** If it needs a comma splice, it is two bullets.
92
- - **The note carries the argument.** The slide holds the shape; the presenter
93
- holds the reasoning. A note repeating the bullets is a wasted field.
94
- - **Do not pad to a target.** Five slides of substance beat twelve with three
95
- that exist to reach twelve.
96
-
97
- ## 3 · Check every line against the document
98
-
99
- Go back through slide by slide with the document open. For each:
100
-
101
- - Is every claim in the document? Name where.
102
- - Is every number identical, same units, same rounding?
103
- - Does any slide imply a rule the document does not state?
104
- - Does the boundary slide match what the document actually excludes?
105
-
106
- This pass finds real errors, reliably. A transcription slip in a deck outlives
107
- the session it was made for, because the next presenter trusts it.
108
-
109
- ## 4 · Verify it
110
-
111
- ```sh
112
- pnpm check # refuses an orphan deck
113
- pnpm dev # look at the page — the deck renders after the introduction,
114
- # immediately before the first `##` section
115
- ```
116
-
117
- `pnpm build` refuses — the deck's own shape is checked in the site build, not
118
- by `pnpm check`:
119
-
120
- - `ksor-slides-empty` — neither `deck:` nor `slides.url:`; nothing to show
121
- - `ksor-slides-two-sources` — both, so nothing says which one governs
122
- - `ksor-attachment-orphan` — no `<doc>.md` beside it
123
-
124
- ## 5 · Tell the owner what you did
125
-
126
- Which document, how many slides, and **anything you left out because the
127
- document did not support it**. That last part is the useful half: it is how an
128
- owner finds out their document has a gap.
129
-
130
- ## Embedding a deck made elsewhere
131
-
132
- If the owner already has a deck in Google Slides, Canva or SlideShare, use the
133
- linked mode — `slides.url:` and no `deck:`:
134
-
135
- ```yaml
136
- slides:
137
- title: Expense approvals
138
- url: https://docs.google.com/presentation/d/<id>/edit?usp=sharing
139
- ```
140
-
141
- The embed url is derived for those three providers; for anything else add
142
- `embed:` explicitly or it renders as a link. `url` must be https — a browser
143
- blocks a mixed-content frame silently, so an http one publishes a panel that
144
- never loads.
145
-
146
- **Prefer the record-owned deck.** A linked deck is not reviewed in a pull
147
- request, not versioned with its document, not withdrawn when the document is,
148
- and can rot to a dead link with nothing going red. Use the link when the deck
149
- already exists and somebody else maintains it — not as the default.
150
-
151
- ## What NOT to do
152
-
153
- - **Do not put the deck in the document.** No `<iframe>`, no raw HTML.
154
- `knowledge/` is CommonMark and must read cleanly in any markdown viewer.
155
- - **Do not write a slide the document cannot support**, even a true one. If it
156
- is not in the record, the record cannot stand behind it.
157
- - **Do not make one deck for several documents.** A deck belongs to one
158
- document, the way a summary does. A deck spanning five policies has no
159
- document to be governed by and nothing to be withdrawn with.
160
- - **Do not patch a stale deck.** When the document changes materially,
161
- regenerate from it. Patching is how a deck and its document drift, and a
162
- deck that drifts starts winning arguments it should lose.
@@ -1,153 +0,0 @@
1
- ---
2
- name: make-summary
3
- description: Write the summary of a document and attach it, so it renders as a second tab on that document's page. Use when the owner says "summarise X", "make a summary for this", "add summaries to the record", "give me the short version", or asks for a TL;DR, an abstract or a précis of a governed document.
4
- metadata:
5
- version: "1.1.0"
6
- ---
7
-
8
- # Writing the summary of a document
9
-
10
- You write the summary. Not an outline for somebody else to finish — the actual
11
- file, `<doc>.summary.md`, which the site renders as a **Summary** tab beside
12
- the document's own words.
13
-
14
- Run it end to end: read the document, write the summary, check every line back
15
- against the document, verify it builds. **The check is not optional** — it is
16
- what keeps a summary from becoming a second, unreviewed copy of the record.
17
-
18
- ## The one rule everything else serves
19
-
20
- **A summary may only say what the document says.**
21
-
22
- It is a compression of the record, never a second source. A summary asserting a
23
- threshold the document does not contain is a claim nothing governs — and
24
- because the summary is an attachment, the record now stands behind it. Every
25
- number, date, name and rule is copied exactly, units included.
26
-
27
- If the document does not say something the summary seems to need, there are two
28
- honest options: leave it out, or tell the owner the document is missing it.
29
- Never a third.
30
-
31
- ## The second rule: cover every section
32
-
33
- **Every `##` section of the document is represented in the summary.**
34
-
35
- A summary that covers the opening and trails off is worse than none: a reader
36
- who used it believes they have the whole document. Walk the headings in order
37
- and check each one has landed somewhere in the summary before you call it done.
38
-
39
- A `###` subsection does not need its own line — fold it into its parent's,
40
- unless it carries a rule or a number of its own, in which case it does.
41
-
42
- ## 1 · Read the document whole, first
43
-
44
- Read `<doc>.md` completely before writing anything. Note as you go:
45
-
46
- - **the decision it settles** — the reason it exists, usually one sentence
47
- - **the rule, in its own words**
48
- - **the numbers** — thresholds, deadlines, limits, and their units
49
- - **each `##` section** — and the one thing it is there to say
50
- - **the boundary** — what the document explicitly does NOT cover
51
- - **its governance** — `status`, `ksor.owner` and `ksor.effective_from` from
52
- the frontmatter
53
-
54
- If the document already carries `<doc>.slides.yaml`, read it: it is a reviewed
55
- compression of the same thing, and the two must not disagree.
56
-
57
- ## 2 · Write the summary
58
-
59
- Write `<doc>.summary.md` beside the document. Its frontmatter is exactly one
60
- key and the checker refuses any other — a summary inherits its parent's
61
- audience, status and takedown, and a second key there would claim governance a
62
- non-document cannot carry:
63
-
64
- ```markdown
65
- ---
66
- type: Summary
67
- ---
68
-
69
- The lead: what this document settles, in one or two sentences, in the
70
- document's own words. **Bold the thing a reader must not misremember.**
71
-
72
- - One line per `##` section, in the document's order.
73
- - Numbers exactly as the document states them, units included.
74
- - What the document explicitly does **not** cover.
75
- ```
76
-
77
- **Shape:**
78
-
79
- | Part | Use |
80
- | --------- | -------------------------------------------------------- |
81
- | lead | one or two sentences — the decision the document settles |
82
- | bullets | one per `##` section, in the document's own order |
83
- | last line | the boundary: what this document does not settle |
84
-
85
- **Length:** aim for a fifth of the document, and never more than a quarter. If
86
- the summary approaches the document's length, it has stopped being a summary
87
- — cut the elaboration, keep the rules.
88
-
89
- **Habits that decide whether it is any good:**
90
-
91
- - **Lead with the decision, not the definition.** A reader opening the Summary
92
- tab wants what this settles, not what the topic is.
93
- - **Keep the document's own words for anything load-bearing.** Paraphrase the
94
- explanation; copy the rule.
95
- - **A bullet is one thought.** If it needs a comma splice, it is two bullets.
96
- - **Say what is excluded.** The boundary is the half a compression loses first
97
- and the half a reader is most likely to get wrong.
98
- - **Do not add.** No context, no advice, no "note that" — the document is one
99
- click away.
100
-
101
- ## 3 · Check every line against the document
102
-
103
- Go back through the summary with the document open. For each line:
104
-
105
- - Is the claim in the document? Name where.
106
- - Is every number identical, same units, same rounding?
107
- - Does any line imply a rule the document does not state?
108
- - Walk the `##` headings in order: is each one represented?
109
- - Would a reader who read ONLY this be wrong about anything?
110
-
111
- That last question is the one that matters. A summary is used instead of the
112
- document, not before it.
113
-
114
- ## 4 · Verify it
115
-
116
- ```sh
117
- pnpm check # refuses an orphan, or frontmatter that is not exactly `type: Summary`
118
- pnpm dev # open the page — a Summary tab appears beside Document
119
- ```
120
-
121
- The build refuses:
122
-
123
- - `ksor-attachment-orphan` — no `<doc>.md` beside it
124
- - `ksor-attachment-frontmatter` — anything but exactly `type: Summary`
125
-
126
- If no Summary tab appears, the file name is wrong: it must be exactly
127
- `<doc>.summary.md`, matching the document's own name.
128
-
129
- ## 5 · Tell the owner what you did
130
-
131
- Which document, how long the summary is against the document, and **anything
132
- you left out because the document did not support it**. That last part is the
133
- useful half: it is how an owner finds out their document has a gap.
134
-
135
- Summarising several documents at once? Report them as a list with the same
136
- three facts each, and name any document you did NOT summarise and why — a
137
- document too short to compress does not need one, and saying so is the answer.
138
-
139
- ## What NOT to do
140
-
141
- - **Do not summarise a document you have not read whole.** A summary written
142
- from the first screen is confidently wrong about the rest.
143
- - **Do not write a line the document cannot support**, even a true one. If it
144
- is not in the record, the record cannot stand behind it.
145
- - **Do not give a short document a summary.** Under roughly two screens there
146
- is nothing to compress, and a Summary tab that restates the page teaches a
147
- reader that the tab is not worth opening.
148
- - **Do not make one summary for several documents.** A summary belongs to one
149
- document. One spanning five policies has no document to be governed by and
150
- nothing to be withdrawn with.
151
- - **Do not patch a stale summary.** When the document changes materially,
152
- rewrite from it. Patching is how a summary and its document drift, and a
153
- reader on the Summary tab has no way to see that it happened.
@@ -1,162 +0,0 @@
1
- ---
2
- name: make-slides
3
- description: Generate a presentation from one document and attach it, so it renders on that document's page. Use when the owner says "make slides for X", "turn this into a deck", "I need to present this", asks for a teaching aid or a slideshow, or when onboarding needs a session rather than a page.
4
- metadata:
5
- version: "2.0.0"
6
- ---
7
-
8
- # Generating a presentation for a document
9
-
10
- You write the slides. Not an outline for somebody else to build — the actual
11
- deck, into `<doc>.slides.yaml`, which the site renders on that document's page.
12
- No browser, no third-party tool, no step where a human takes over.
13
-
14
- Run it end to end: read the document, write the deck, check every line back
15
- against the document, verify it builds. **The check is not optional** — it is
16
- the step that keeps the record's guarantee true.
17
-
18
- ## The one rule everything else serves
19
-
20
- **A slide may only say what the document says.**
21
-
22
- The deck is a way of presenting the record, never a second source. A slide
23
- asserting a threshold the document does not contain is a claim nothing governs
24
- and no agent can cite — and because the deck is an attachment, the record now
25
- stands behind it. Every number, date, name and rule is copied from the
26
- document exactly, units included.
27
-
28
- If the document does not say something you want on a slide, there are two
29
- honest options: leave it out, or tell the owner the document is missing it.
30
- Never a third.
31
-
32
- ## 1 · Read the document whole, first
33
-
34
- Read `<doc>.md` completely before writing anything. Note as you go:
35
-
36
- - **the decision it settles** — the reason it exists
37
- - **the rule, in its own words** — usually one or two sentences
38
- - **the numbers** — thresholds, deadlines, limits, and their units
39
- - **the cases** — what happens in each situation it names
40
- - **the boundary** — what it explicitly does NOT cover
41
- - **its governance** — `status`, `ksor.owner` and `ksor.effective_from` from
42
- the frontmatter
43
-
44
- If the document carries `<doc>.summary.md`, read that too: it is a reviewed
45
- compression of the same thing, and it tells you what the author thought was
46
- load-bearing.
47
-
48
- ## 2 · Write the deck
49
-
50
- Write `<doc>.slides.yaml` beside the document:
51
-
52
- ```yaml
53
- slides:
54
- title: Expense approvals
55
- description: The 15-minute version, for a room.
56
- deck:
57
- - heading: What this settles
58
- lead: One sentence, in the document's own words.
59
- note: What to say here. Spoken, never shown.
60
-
61
- - heading: The rule
62
- bullets:
63
- - Two approvers above the threshold, always
64
- - The threshold is per invoice, including tax
65
- note: Pause here. This is the slide people remember wrong.
66
- ```
67
-
68
- **Per slide:**
69
-
70
- | Field | Use |
71
- | --------- | ------------------------------------------------------------ |
72
- | `heading` | required — a statement, not a label. "The rule", not "Rules" |
73
- | `lead` | one sentence, for a slide making a single point |
74
- | `bullets` | three to five. Six is the cap, and six is already too many |
75
- | `note` | what the presenter SAYS — never a repeat of the slide |
76
-
77
- **Per deck** — 8 to 14 slides for an ordinary policy document:
78
-
79
- 1. What this settles, and for whom
80
- 2. Why it exists — the decision behind it
81
- 3. The rule itself, stated once
82
- 4. One slide per case, with the real numbers
83
- 5. What people get wrong, and what is true instead
84
- 6. The boundary — what this document does not cover
85
- 7. Where to find it: the route, the owner, the effective date
86
-
87
- **Habits that decide whether it is any good:**
88
-
89
- - **A heading is a claim.** "Recency is not authority" teaches; "Authority"
90
- does not.
91
- - **A bullet is one thought.** If it needs a comma splice, it is two bullets.
92
- - **The note carries the argument.** The slide holds the shape; the presenter
93
- holds the reasoning. A note repeating the bullets is a wasted field.
94
- - **Do not pad to a target.** Five slides of substance beat twelve with three
95
- that exist to reach twelve.
96
-
97
- ## 3 · Check every line against the document
98
-
99
- Go back through slide by slide with the document open. For each:
100
-
101
- - Is every claim in the document? Name where.
102
- - Is every number identical, same units, same rounding?
103
- - Does any slide imply a rule the document does not state?
104
- - Does the boundary slide match what the document actually excludes?
105
-
106
- This pass finds real errors, reliably. A transcription slip in a deck outlives
107
- the session it was made for, because the next presenter trusts it.
108
-
109
- ## 4 · Verify it
110
-
111
- ```sh
112
- pnpm check # refuses an orphan deck
113
- pnpm dev # look at the page — the deck renders after the introduction,
114
- # immediately before the first `##` section
115
- ```
116
-
117
- `pnpm build` refuses — the deck's own shape is checked in the site build, not
118
- by `pnpm check`:
119
-
120
- - `ksor-slides-empty` — neither `deck:` nor `slides.url:`; nothing to show
121
- - `ksor-slides-two-sources` — both, so nothing says which one governs
122
- - `ksor-attachment-orphan` — no `<doc>.md` beside it
123
-
124
- ## 5 · Tell the owner what you did
125
-
126
- Which document, how many slides, and **anything you left out because the
127
- document did not support it**. That last part is the useful half: it is how an
128
- owner finds out their document has a gap.
129
-
130
- ## Embedding a deck made elsewhere
131
-
132
- If the owner already has a deck in Google Slides, Canva or SlideShare, use the
133
- linked mode — `slides.url:` and no `deck:`:
134
-
135
- ```yaml
136
- slides:
137
- title: Expense approvals
138
- url: https://docs.google.com/presentation/d/<id>/edit?usp=sharing
139
- ```
140
-
141
- The embed url is derived for those three providers; for anything else add
142
- `embed:` explicitly or it renders as a link. `url` must be https — a browser
143
- blocks a mixed-content frame silently, so an http one publishes a panel that
144
- never loads.
145
-
146
- **Prefer the record-owned deck.** A linked deck is not reviewed in a pull
147
- request, not versioned with its document, not withdrawn when the document is,
148
- and can rot to a dead link with nothing going red. Use the link when the deck
149
- already exists and somebody else maintains it — not as the default.
150
-
151
- ## What NOT to do
152
-
153
- - **Do not put the deck in the document.** No `<iframe>`, no raw HTML.
154
- `knowledge/` is CommonMark and must read cleanly in any markdown viewer.
155
- - **Do not write a slide the document cannot support**, even a true one. If it
156
- is not in the record, the record cannot stand behind it.
157
- - **Do not make one deck for several documents.** A deck belongs to one
158
- document, the way a summary does. A deck spanning five policies has no
159
- document to be governed by and nothing to be withdrawn with.
160
- - **Do not patch a stale deck.** When the document changes materially,
161
- regenerate from it. Patching is how a deck and its document drift, and a
162
- deck that drifts starts winning arguments it should lose.
@@ -1,153 +0,0 @@
1
- ---
2
- name: make-summary
3
- description: Write the summary of a document and attach it, so it renders as a second tab on that document's page. Use when the owner says "summarise X", "make a summary for this", "add summaries to the record", "give me the short version", or asks for a TL;DR, an abstract or a précis of a governed document.
4
- metadata:
5
- version: "1.1.0"
6
- ---
7
-
8
- # Writing the summary of a document
9
-
10
- You write the summary. Not an outline for somebody else to finish — the actual
11
- file, `<doc>.summary.md`, which the site renders as a **Summary** tab beside
12
- the document's own words.
13
-
14
- Run it end to end: read the document, write the summary, check every line back
15
- against the document, verify it builds. **The check is not optional** — it is
16
- what keeps a summary from becoming a second, unreviewed copy of the record.
17
-
18
- ## The one rule everything else serves
19
-
20
- **A summary may only say what the document says.**
21
-
22
- It is a compression of the record, never a second source. A summary asserting a
23
- threshold the document does not contain is a claim nothing governs — and
24
- because the summary is an attachment, the record now stands behind it. Every
25
- number, date, name and rule is copied exactly, units included.
26
-
27
- If the document does not say something the summary seems to need, there are two
28
- honest options: leave it out, or tell the owner the document is missing it.
29
- Never a third.
30
-
31
- ## The second rule: cover every section
32
-
33
- **Every `##` section of the document is represented in the summary.**
34
-
35
- A summary that covers the opening and trails off is worse than none: a reader
36
- who used it believes they have the whole document. Walk the headings in order
37
- and check each one has landed somewhere in the summary before you call it done.
38
-
39
- A `###` subsection does not need its own line — fold it into its parent's,
40
- unless it carries a rule or a number of its own, in which case it does.
41
-
42
- ## 1 · Read the document whole, first
43
-
44
- Read `<doc>.md` completely before writing anything. Note as you go:
45
-
46
- - **the decision it settles** — the reason it exists, usually one sentence
47
- - **the rule, in its own words**
48
- - **the numbers** — thresholds, deadlines, limits, and their units
49
- - **each `##` section** — and the one thing it is there to say
50
- - **the boundary** — what the document explicitly does NOT cover
51
- - **its governance** — `status`, `ksor.owner` and `ksor.effective_from` from
52
- the frontmatter
53
-
54
- If the document already carries `<doc>.slides.yaml`, read it: it is a reviewed
55
- compression of the same thing, and the two must not disagree.
56
-
57
- ## 2 · Write the summary
58
-
59
- Write `<doc>.summary.md` beside the document. Its frontmatter is exactly one
60
- key and the checker refuses any other — a summary inherits its parent's
61
- audience, status and takedown, and a second key there would claim governance a
62
- non-document cannot carry:
63
-
64
- ```markdown
65
- ---
66
- type: Summary
67
- ---
68
-
69
- The lead: what this document settles, in one or two sentences, in the
70
- document's own words. **Bold the thing a reader must not misremember.**
71
-
72
- - One line per `##` section, in the document's order.
73
- - Numbers exactly as the document states them, units included.
74
- - What the document explicitly does **not** cover.
75
- ```
76
-
77
- **Shape:**
78
-
79
- | Part | Use |
80
- | --------- | -------------------------------------------------------- |
81
- | lead | one or two sentences — the decision the document settles |
82
- | bullets | one per `##` section, in the document's own order |
83
- | last line | the boundary: what this document does not settle |
84
-
85
- **Length:** aim for a fifth of the document, and never more than a quarter. If
86
- the summary approaches the document's length, it has stopped being a summary
87
- — cut the elaboration, keep the rules.
88
-
89
- **Habits that decide whether it is any good:**
90
-
91
- - **Lead with the decision, not the definition.** A reader opening the Summary
92
- tab wants what this settles, not what the topic is.
93
- - **Keep the document's own words for anything load-bearing.** Paraphrase the
94
- explanation; copy the rule.
95
- - **A bullet is one thought.** If it needs a comma splice, it is two bullets.
96
- - **Say what is excluded.** The boundary is the half a compression loses first
97
- and the half a reader is most likely to get wrong.
98
- - **Do not add.** No context, no advice, no "note that" — the document is one
99
- click away.
100
-
101
- ## 3 · Check every line against the document
102
-
103
- Go back through the summary with the document open. For each line:
104
-
105
- - Is the claim in the document? Name where.
106
- - Is every number identical, same units, same rounding?
107
- - Does any line imply a rule the document does not state?
108
- - Walk the `##` headings in order: is each one represented?
109
- - Would a reader who read ONLY this be wrong about anything?
110
-
111
- That last question is the one that matters. A summary is used instead of the
112
- document, not before it.
113
-
114
- ## 4 · Verify it
115
-
116
- ```sh
117
- pnpm check # refuses an orphan, or frontmatter that is not exactly `type: Summary`
118
- pnpm dev # open the page — a Summary tab appears beside Document
119
- ```
120
-
121
- The build refuses:
122
-
123
- - `ksor-attachment-orphan` — no `<doc>.md` beside it
124
- - `ksor-attachment-frontmatter` — anything but exactly `type: Summary`
125
-
126
- If no Summary tab appears, the file name is wrong: it must be exactly
127
- `<doc>.summary.md`, matching the document's own name.
128
-
129
- ## 5 · Tell the owner what you did
130
-
131
- Which document, how long the summary is against the document, and **anything
132
- you left out because the document did not support it**. That last part is the
133
- useful half: it is how an owner finds out their document has a gap.
134
-
135
- Summarising several documents at once? Report them as a list with the same
136
- three facts each, and name any document you did NOT summarise and why — a
137
- document too short to compress does not need one, and saying so is the answer.
138
-
139
- ## What NOT to do
140
-
141
- - **Do not summarise a document you have not read whole.** A summary written
142
- from the first screen is confidently wrong about the rest.
143
- - **Do not write a line the document cannot support**, even a true one. If it
144
- is not in the record, the record cannot stand behind it.
145
- - **Do not give a short document a summary.** Under roughly two screens there
146
- is nothing to compress, and a Summary tab that restates the page teaches a
147
- reader that the tab is not worth opening.
148
- - **Do not make one summary for several documents.** A summary belongs to one
149
- document. One spanning five policies has no document to be governed by and
150
- nothing to be withdrawn with.
151
- - **Do not patch a stale summary.** When the document changes materially,
152
- rewrite from it. Patching is how a summary and its document drift, and a
153
- reader on the Summary tab has no way to see that it happened.