dsh-office-kit 0.4.1 → 0.4.3
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/assets/skills/excel-live-control/SKILL.md +120 -148
- package/assets/skills/excel-live-control/container_tools/live_excel.py +9 -0
- package/assets/skills/excel-live-control/domain_guidance/financial_models.md +42 -58
- package/assets/skills/excel-live-control/domain_guidance/healthcare.md +36 -42
- package/assets/skills/excel-live-control/domain_guidance/marketing_advertising.md +33 -34
- package/assets/skills/excel-live-control/domain_guidance/scientific_research.md +34 -36
- package/assets/skills/excel-live-control/references/office-automation.md +127 -153
- package/assets/skills/excel-live-control/references/read_only_qna.md +40 -45
- package/assets/skills/excel-live-control/style_guidelines.md +56 -64
- package/assets/skills/excel-live-control/workflows/create_workflows.md +40 -47
- package/assets/skills/excel-live-control/workflows/edit_workflows.md +37 -45
- package/assets/skills/office-documents/SKILL.md +24 -60
- package/assets/skills/office-documents/examples/end_to_end_smoke_test.md +5 -5
- package/assets/skills/office-documents/ooxml/comments.md +8 -8
- package/assets/skills/office-documents/ooxml/hyperlinks_and_fields.md +10 -10
- package/assets/skills/office-documents/ooxml/rels_and_content_types.md +7 -7
- package/assets/skills/office-documents/ooxml/tracked_changes.md +12 -12
- package/assets/skills/office-documents/references/docx-structure.md +11 -13
- package/assets/skills/office-documents/references/template-elicitation.md +11 -13
- package/assets/skills/office-documents/references/writing-quality.md +20 -20
- package/assets/skills/office-documents/tasks/accessibility_a11y.md +16 -22
- package/assets/skills/office-documents/tasks/captions_crossrefs.md +23 -26
- package/assets/skills/office-documents/tasks/clean_tracked_changes.md +17 -22
- package/assets/skills/office-documents/tasks/comments_manage.md +9 -11
- package/assets/skills/office-documents/tasks/compare_diff.md +10 -16
- package/assets/skills/office-documents/tasks/create_edit.md +14 -16
- package/assets/skills/office-documents/tasks/equations.md +17 -28
- package/assets/skills/office-documents/tasks/fields_update.md +14 -16
- package/assets/skills/office-documents/tasks/fixtures_edge_cases.md +19 -33
- package/assets/skills/office-documents/tasks/footnotes_endnotes.md +12 -14
- package/assets/skills/office-documents/tasks/forms_content_controls.md +16 -20
- package/assets/skills/office-documents/tasks/headings_numbering.md +17 -22
- package/assets/skills/office-documents/tasks/images_figures.md +15 -25
- package/assets/skills/office-documents/tasks/multi_doc_merge.md +13 -23
- package/assets/skills/office-documents/tasks/navigation_internal_links.md +18 -21
- package/assets/skills/office-documents/tasks/privacy_scrub_metadata.md +16 -22
- package/assets/skills/office-documents/tasks/protection_restrict_editing.md +19 -21
- package/assets/skills/office-documents/tasks/read_review.md +9 -20
- package/assets/skills/office-documents/tasks/redaction_anonymization.md +17 -18
- package/assets/skills/office-documents/tasks/sections_layout.md +16 -23
- package/assets/skills/office-documents/tasks/style_lint_normalize.md +18 -22
- package/assets/skills/office-documents/tasks/tables_spreadsheets.md +21 -31
- package/assets/skills/office-documents/tasks/templates_style_packs.md +17 -21
- package/assets/skills/office-documents/tasks/toc_workflow.md +10 -14
- package/assets/skills/office-documents/tasks/verify_render.md +11 -23
- package/assets/skills/office-documents/tasks/watermarks_background.md +11 -15
- package/assets/skills/office-documents/troubleshooting/libreoffice_headless.md +9 -9
- package/assets/skills/office-documents/troubleshooting/run_splitting.md +12 -12
- package/assets/skills/office-pdf/SKILL.md +36 -51
- package/assets/skills/office-pdf/references/form-fields.md +20 -20
- package/assets/skills/office-pdf/references/geometry.md +10 -10
- package/assets/skills/office-pdf/references/layout-quality.md +13 -13
- package/assets/skills/office-pdf/references/limits.md +12 -56
- package/assets/skills/office-pdf/tasks/annotations.md +5 -5
- package/assets/skills/office-pdf/tasks/create.md +6 -9
- package/assets/skills/office-pdf/tasks/edit-pages.md +14 -14
- package/assets/skills/office-pdf/tasks/forms.md +15 -15
- package/assets/skills/office-pdf/tasks/read.md +9 -9
- package/assets/skills/office-pdf/tasks/redact.md +18 -18
- package/assets/skills/office-pdf/tasks/stamp.md +10 -10
- package/assets/skills/office-presentations/SKILL.md +71 -91
- package/assets/skills/office-presentations/container_tools/render_slides.py +1 -1
- package/assets/skills/office-presentations/domain_guidance/finance.md +16 -16
- package/assets/skills/office-presentations/recipes/README.md +24 -35
- package/assets/skills/office-presentations/recipes/autolayout.md +12 -13
- package/assets/skills/office-presentations/recipes/connectors.md +11 -12
- package/assets/skills/office-presentations/recipes/images.md +11 -12
- package/assets/skills/office-presentations/recipes/master-and-layouts.md +18 -18
- package/assets/skills/office-presentations/recipes/native-charts.md +8 -8
- package/assets/skills/office-presentations/recipes/rich-text-runs.md +13 -13
- package/assets/skills/office-presentations/recipes/speaker-notes.md +7 -7
- package/assets/skills/office-presentations/recipes/tables.md +14 -14
- package/assets/skills/office-presentations/recipes/textbox-at-coordinate.md +9 -9
- package/assets/skills/office-presentations/recipes/theme-tokens.md +7 -8
- package/assets/skills/office-presentations/references/authoring-workflow.md +38 -43
- package/assets/skills/office-presentations/references/finalization.md +10 -12
- package/assets/skills/office-presentations/references/native-bullets.md +14 -18
- package/assets/skills/office-presentations/references/native-evidence.md +18 -32
- package/assets/skills/office-presentations/references/style-guidelines.md +27 -32
- package/assets/skills/office-presentations/references/templates.md +31 -60
- package/assets/skills/office-presentations/routing/google_slides.md +4 -4
- package/assets/skills/office-presentations/tasks/apply-annotations.md +17 -17
- package/assets/skills/office-presentations/tasks/charts-tables-notes.md +20 -23
- package/assets/skills/office-presentations/tasks/create-deck.md +19 -19
- package/assets/skills/office-presentations/tasks/edit-deck.md +14 -16
- package/assets/skills/office-presentations/tasks/inspect-and-verify.md +31 -34
- package/assets/skills/office-presentations/tasks/template-following.md +23 -28
- package/assets/skills/office-spreadsheets/SKILL.md +32 -39
- package/assets/skills/office-spreadsheets/recipes/charts.md +8 -26
- package/assets/skills/office-spreadsheets/recipes/conditional-formats.md +9 -26
- package/assets/skills/office-spreadsheets/recipes/data-tables.md +7 -23
- package/assets/skills/office-spreadsheets/recipes/named-ranges.md +8 -21
- package/assets/skills/office-spreadsheets/recipes/number-formats.md +7 -23
- package/assets/skills/office-spreadsheets/recipes/sparklines.md +7 -20
- package/assets/skills/office-spreadsheets/references/charts.md +15 -34
- package/assets/skills/office-spreadsheets/references/domain/financial-models.md +10 -25
- package/assets/skills/office-spreadsheets/references/domain/healthcare.md +8 -19
- package/assets/skills/office-spreadsheets/references/domain/marketing.md +8 -22
- package/assets/skills/office-spreadsheets/references/domain/research.md +8 -19
- package/assets/skills/office-spreadsheets/references/formula-patterns.md +20 -50
- package/assets/skills/office-spreadsheets/references/style-guidelines.md +19 -44
- package/assets/skills/office-spreadsheets/references/workbook-structure.md +12 -35
- package/assets/skills/office-spreadsheets/routing/google-sheets.md +11 -26
- package/assets/skills/office-spreadsheets/tasks/analyze-workbook.md +10 -25
- package/assets/skills/office-spreadsheets/tasks/annotations.md +12 -30
- package/assets/skills/office-spreadsheets/tasks/create-workbook.md +5 -5
- package/assets/skills/office-spreadsheets/tasks/diff-workbooks.md +2 -2
- package/assets/skills/office-spreadsheets/tasks/edit-workbook.md +5 -5
- package/assets/skills/office-spreadsheets/tasks/inspect-workbook.md +9 -9
- package/assets/skills/office-spreadsheets/tasks/recalc-and-check.md +10 -30
- package/assets/skills/shared/annotation-recipes.md +98 -120
- package/assets/skills/shared/common-workflow.md +70 -80
- package/dist/index.js +105 -29
- package/package.json +1 -1
- package/postinstall.mjs +58 -17
- package/python/office_cli.py +70 -7
|
@@ -1,58 +1,52 @@
|
|
|
1
1
|
# Healthcare
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Health organisations run two workbook kinds:
|
|
4
4
|
|
|
5
|
-
- **Clinical and patient records
|
|
6
|
-
|
|
7
|
-
- **Administrative and financial work
|
|
8
|
-
|
|
5
|
+
- **Clinical and patient records** — appointments, encounters, observations, results. The
|
|
6
|
+
clinical system is the source of truth; a workbook holds an extract.
|
|
7
|
+
- **Administrative and financial work** — budgets, staffing, throughput, cost per case. Money
|
|
8
|
+
follows `financial_models.md`, hospitals included.
|
|
9
9
|
|
|
10
|
-
Most
|
|
11
|
-
extract and the analysis visibly separate.
|
|
10
|
+
Most tasks are the second kind built on the first. Keep extract and analysis visibly apart.
|
|
12
11
|
|
|
13
12
|
## Handling the raw extract
|
|
14
13
|
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
`
|
|
19
|
-
- Keep the source's definitions with the data:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- Preserve identifiers exactly
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(bpm)`), not in the cells as text. A column of `"72 bpm"` strings cannot be averaged.
|
|
14
|
+
- Keep raw data untouched on its own sheet or block, as one table; compute beside it or in a
|
|
15
|
+
separate prepared block. Never overwrite a measurement.
|
|
16
|
+
- Name descriptively: `Appointments_RawData` beats `Sheet2`; `Clinic KPI Dashboard` beats
|
|
17
|
+
`Sheet5`.
|
|
18
|
+
- Keep the source's definitions with the data: period covered, extract date, source system,
|
|
19
|
+
denominator. Length of stay, readmission rate and utilisation are meaningless without them,
|
|
20
|
+
and systems define them differently.
|
|
21
|
+
- Preserve identifiers exactly (MRN formats vary); dates as dates, one format down the column.
|
|
22
|
+
- Units in the header (`Weight (kg)`, `Temperature (°C)`, `HbA1c (%)`, `Heart rate (bpm)`),
|
|
23
|
+
never cell text — `"72 bpm"` strings cannot be averaged.
|
|
26
24
|
|
|
27
25
|
## Building on it
|
|
28
26
|
|
|
29
|
-
- Highlight
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
measurement in place; the original and the correction are both evidence.
|
|
27
|
+
- Highlight fields staff must complete (amber fill); no unused placeholders.
|
|
28
|
+
- For a threshold-driven flag, name one cell (`BMI_threshold`) and reference it, so the
|
|
29
|
+
cut-off is visible and changeable.
|
|
30
|
+
- Flags only from a stated source or protocol threshold, with its severity (normal / elevated
|
|
31
|
+
/ high) and a sheet legend. Never invent clinical ranges; never round a borderline value
|
|
32
|
+
into a category.
|
|
33
|
+
- Codebook (code → meaning, units, abbreviations) beside coded data; legend for
|
|
34
|
+
abbreviations.
|
|
35
|
+
- `Corrected value` column or audit log; never edit the original measurement in place —
|
|
36
|
+
original and correction are both evidence.
|
|
40
37
|
|
|
41
38
|
## Consequences of getting it wrong
|
|
42
39
|
|
|
43
|
-
Clinical arithmetic
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
present a screening flag as a diagnosis.
|
|
40
|
+
Clinical arithmetic is not clinical judgement. Compute what the source supports; check a
|
|
41
|
+
critical calculation (dosing, risk score, threshold classification) against the authoritative
|
|
42
|
+
definition, and say when none exists rather than asserting the number. No clinical advice; a
|
|
43
|
+
screening flag is not a diagnosis.
|
|
48
44
|
|
|
49
45
|
## Doing it live
|
|
50
46
|
|
|
51
|
-
- The
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- After writing, verify with `read_range --formulas` and check the `errors` array — a
|
|
58
|
-
healthcare sheet with a `#DIV/0!` in a rate column is a report that will be misread.
|
|
47
|
+
- The extract may be open with the user's formatting. Read first: `info` for sheets and used
|
|
48
|
+
ranges; `read_range --formulas --display` for the block you will extend.
|
|
49
|
+
- Add derived columns right of the raw block with a clear header, or in a separate prepared
|
|
50
|
+
area; never insert a column into an extract that formulas or a pivot reference.
|
|
51
|
+
- After writing, verify with `read_range --formulas` and check `errors` — a `#DIV/0!` in a
|
|
52
|
+
rate column becomes a misread report.
|
|
@@ -1,53 +1,52 @@
|
|
|
1
1
|
# Marketing and advertising
|
|
2
2
|
|
|
3
|
-
Campaign, funnel, lead, CRM and ad-performance data.
|
|
4
|
-
|
|
3
|
+
Campaign, funnel, lead, CRM and ad-performance data. Failures here are grain, denominator or
|
|
4
|
+
freshness — rarely arithmetic.
|
|
5
5
|
|
|
6
6
|
## Know what the export is
|
|
7
7
|
|
|
8
|
-
- **
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **Channel setup
|
|
12
|
-
|
|
13
|
-
- **Grain
|
|
8
|
+
- **Freshness**: an export pulled Tuesday and analysed Friday is Tuesday's data. Record the
|
|
9
|
+
extract date and as-of date in the input area; do not read a Friday-vs-Tuesday difference as
|
|
10
|
+
performance.
|
|
11
|
+
- **Channel setup**: a campaign may span an ad platform, a CRM and a billing system. Name the
|
|
12
|
+
source of each figure before combining them.
|
|
13
|
+
- **Grain**: daily rows are not campaign rows. Impressions are not sessions; clicks are not
|
|
14
14
|
leads; leads are not qualified leads; a pipeline total is not revenue.
|
|
15
|
-
- **Denominators
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
- **Denominators**: CTR uses impressions; CVR uses sessions or clicks per the platform's
|
|
16
|
+
definition; CPA uses conversions attributed that period. Put the platform's definition in
|
|
17
|
+
the label — vendors' "conversion rate" differ.
|
|
18
18
|
|
|
19
19
|
## Layout
|
|
20
20
|
|
|
21
21
|
- Name tabs by content and period: `Leads_Q1_2025`, `Pipeline Analysis`, `ROI Dashboard`.
|
|
22
|
-
- Keep the raw import intact on its own sheet; clean in derived columns or a prepared
|
|
23
|
-
|
|
24
|
-
renamed source) so the exclusion is visible.
|
|
22
|
+
- Keep the raw import intact on its own sheet; clean in derived columns or a prepared area,
|
|
23
|
+
and record exclusions and mappings (non-target region, test account, renamed source).
|
|
25
24
|
- One typed time-series date column with one format. Add an ISO helper column only when a
|
|
26
|
-
downstream import needs it,
|
|
25
|
+
downstream import needs it, labelled as such.
|
|
27
26
|
- Targets and traffic lights only when the source supplies a target and a direction. No
|
|
28
|
-
invented targets, no green/amber/red on
|
|
29
|
-
- Every dashboard figure traces back to a cell in the prepared data
|
|
30
|
-
|
|
27
|
+
invented targets, no green/amber/red on goals nobody set.
|
|
28
|
+
- Every dashboard figure traces back to a cell in the prepared data; otherwise it does not go
|
|
29
|
+
on the dashboard.
|
|
31
30
|
|
|
32
31
|
## Metrics
|
|
33
32
|
|
|
34
|
-
- Define abbreviations where
|
|
35
|
-
|
|
36
|
-
- Keep the comparison basis visible: week over week, month over month, or
|
|
37
|
-
|
|
38
|
-
- Attribution:
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- Charts only when they make a trend,
|
|
42
|
-
|
|
33
|
+
- Define abbreviations where used (CPC, CPM, CPA, ROAS, MQL) — a legend on the analysis sheet,
|
|
34
|
+
not a glossary tab nobody opens.
|
|
35
|
+
- Keep the comparison basis visible: week over week, month over month, or same period last
|
|
36
|
+
year. Mixing bases in one chart is the most common misleading dashboard.
|
|
37
|
+
- Attribution: state the model (last click, first click, linear, platform-reported) and keep
|
|
38
|
+
it consistent within a table. Platform- and analytics-reported conversions never reconcile
|
|
39
|
+
exactly; report both.
|
|
40
|
+
- Charts only when they make a trend, comparison or funnel clearer than a table. Six
|
|
41
|
+
categories is a table with extra steps.
|
|
43
42
|
|
|
44
43
|
## Doing it live
|
|
45
44
|
|
|
46
|
-
- Read first: `info` (
|
|
45
|
+
- Read first: `info` (sheets, used ranges, whether the user is mid-edit), then
|
|
47
46
|
`read_range --formulas` across the block you will extend.
|
|
48
|
-
- Append new periods as rows below the
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
- Verify with `read_range --formulas
|
|
53
|
-
|
|
47
|
+
- Append new periods as rows below the table and extend the table, conditional formatting and
|
|
48
|
+
chart source with them. No second table beside the first.
|
|
49
|
+
- For a refresh flag (stale extract, missing platform), use amber input fill plus a note in
|
|
50
|
+
the cell beside it, not an unexplained colour.
|
|
51
|
+
- Verify with `read_range --formulas`; a misaligned denominator surfaces as a rate off by a
|
|
52
|
+
factor of ten.
|
|
@@ -1,53 +1,51 @@
|
|
|
1
1
|
# Scientific research data
|
|
2
2
|
|
|
3
|
-
The spreadsheet is often the only record of an experiment. Treat
|
|
4
|
-
irreplaceable: a cleaned value that overwrote a raw measurement is data loss, and a live
|
|
5
|
-
|
|
3
|
+
The spreadsheet is often the only record of an experiment. Treat observations as
|
|
4
|
+
irreplaceable: a cleaned value that overwrote a raw measurement is data loss, and a live edit
|
|
5
|
+
is one keystroke away.
|
|
6
6
|
|
|
7
7
|
## Keep the raw table raw
|
|
8
8
|
|
|
9
|
-
- One flat table: one row per observation, one variable per column, one unit per column.
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
`
|
|
13
|
-
- Record the cleaning:
|
|
14
|
-
|
|
15
|
-
- Missing observations stay visibly missing (blank or `n.a
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
- One flat table: one row per observation, one variable per column, one unit per column. No
|
|
10
|
+
merged cells, no multi-row headers, no calculation rows inside the data block.
|
|
11
|
+
- Never overwrite a measurement. Transformations go in separate columns (headed `log10(x)`,
|
|
12
|
+
`normalised`) or a separate processed block or sheet.
|
|
13
|
+
- Record the cleaning: rows excluded and why, values imputed, units converted — in a protocol
|
|
14
|
+
note on or beside the sheet.
|
|
15
|
+
- Missing observations stay visibly missing (blank or `n.a.`, per the table's convention);
|
|
16
|
+
never zero-fill silently. Label randomised and simulated values as such — they are not
|
|
17
|
+
observations.
|
|
18
18
|
|
|
19
19
|
## Presentation tables are a different object
|
|
20
20
|
|
|
21
|
-
When the sheet
|
|
21
|
+
When the sheet reports the data rather than holding it:
|
|
22
22
|
|
|
23
|
-
- One type of data per column
|
|
24
|
-
the cell.
|
|
23
|
+
- One type of data per column; units in the header (`Concentration (mg/L)`), never in the cell.
|
|
25
24
|
- Never encode meaning only in colour or bold — add a labelled value column (`Flag:
|
|
26
|
-
excluded`, `Status: control`). A
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
- No merged cells in a table you expect anyone to sort or filter.
|
|
25
|
+
excluded`, `Status: control`). A monochrome printout must still carry the meaning.
|
|
26
|
+
- Notes belong in a notes column, not in cell comments a co-author will never see.
|
|
27
|
+
- No merged cells in a table anyone will sort or filter.
|
|
30
28
|
|
|
31
29
|
## Analysis
|
|
32
30
|
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
- Show the
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
- Distinguish measurement, derived value, flag and assumption
|
|
40
|
-
|
|
41
|
-
- If the design
|
|
42
|
-
|
|
31
|
+
- A transparent formula beats a clever one; someone must defend the number in review six
|
|
32
|
+
months from now.
|
|
33
|
+
- Show the steps: intermediate columns are the evidence; one formula makes the result
|
|
34
|
+
unfalsifiable.
|
|
35
|
+
- Circular references and iterative calculation are off-limits unless the user asks and
|
|
36
|
+
documents it. A simulation's random seed and method are part of the result.
|
|
37
|
+
- Distinguish measurement, derived value, flag and assumption by label, not by font colour
|
|
38
|
+
alone.
|
|
39
|
+
- If the design changes (exclusion added, normalisation changed), say so in the reply. A
|
|
40
|
+
quiet denominator change rewrites the conclusion.
|
|
43
41
|
|
|
44
42
|
## Doing it live
|
|
45
43
|
|
|
46
44
|
- Before touching anything: `info`, then `read_range --formulas --display` on the block.
|
|
47
|
-
Raw data and report blocks
|
|
48
|
-
- Append observations as
|
|
49
|
-
|
|
50
|
-
- Verify with `read_range --formulas`; the `errors` array catches the `#DIV/0!` and
|
|
51
|
-
|
|
52
|
-
- Never delete rows from the middle of a data table; a delete shifts every downstream
|
|
53
|
-
|
|
45
|
+
Raw data and report blocks usually sit on different sheets; confirm which is which.
|
|
46
|
+
- Append observations as bottom rows, extend any table object to cover them, leave the header
|
|
47
|
+
row untouched.
|
|
48
|
+
- Verify with `read_range --formulas`; the `errors` array catches the `#DIV/0!` and `#VALUE!`
|
|
49
|
+
that appear when text lands in a numeric column.
|
|
50
|
+
- Never delete rows from the middle of a data table; a delete shifts every downstream formula
|
|
51
|
+
and chart range.
|