opencode-skills-collection 4.1.0 → 4.1.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.
Files changed (219) hide show
  1. package/README.md +46 -42
  2. package/bundled-skills/.antigravity-install-manifest.json +127 -1
  3. package/bundled-skills/360-feedback-system/SKILL.md +481 -0
  4. package/bundled-skills/access-matrix/SKILL.md +338 -0
  5. package/bundled-skills/accounting-audit-system-builder/SKILL.md +302 -0
  6. package/bundled-skills/accounting-audit-system-builder/references/catalog.md +114 -0
  7. package/bundled-skills/accounting-software-selection/SKILL.md +427 -0
  8. package/bundled-skills/accounting-software-selection/references/build-artifacts.md +362 -0
  9. package/bundled-skills/accounting-software-selection/references/common-pitfalls.md +44 -0
  10. package/bundled-skills/accounting-software-selection/references/field-reference.md +93 -0
  11. package/bundled-skills/accounting-software-selection/references/select-options.md +202 -0
  12. package/bundled-skills/admin-access-register/SKILL.md +381 -0
  13. package/bundled-skills/advanced-analytics-dashboard/SKILL.md +318 -0
  14. package/bundled-skills/ai-image-generation-studio/SKILL.md +259 -0
  15. package/bundled-skills/ai-logo-maker/SKILL.md +259 -0
  16. package/bundled-skills/ai-multilingual-dubbing/SKILL.md +259 -0
  17. package/bundled-skills/ai-photo-restyler/SKILL.md +259 -0
  18. package/bundled-skills/ai-podcast-voiceover/SKILL.md +259 -0
  19. package/bundled-skills/alumni-re-hire-tracker/SKILL.md +314 -0
  20. package/bundled-skills/announcement-board/SKILL.md +336 -0
  21. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +48 -3
  22. package/bundled-skills/asset-it-management/SKILL.md +407 -0
  23. package/bundled-skills/attendance/SKILL.md +331 -0
  24. package/bundled-skills/audit-log/SKILL.md +314 -0
  25. package/bundled-skills/audit-preparation/SKILL.md +416 -0
  26. package/bundled-skills/beatra/SKILL.md +260 -0
  27. package/bundled-skills/board-governance/SKILL.md +360 -0
  28. package/bundled-skills/brand-growth-system-builder/SKILL.md +360 -0
  29. package/bundled-skills/brand-kit-print-collateral/SKILL.md +498 -0
  30. package/bundled-skills/buddy-program-manager/SKILL.md +329 -0
  31. package/bundled-skills/budget-cash-flow/SKILL.md +352 -0
  32. package/bundled-skills/busabase/SKILL.md +118 -0
  33. package/bundled-skills/business-email-template/SKILL.md +480 -0
  34. package/bundled-skills/business-email-template/references/common-pitfalls.md +30 -0
  35. package/bundled-skills/business-website-setup/SKILL.md +489 -0
  36. package/bundled-skills/business-website-setup/references/common-pitfalls.md +32 -0
  37. package/bundled-skills/candidate-talent-pool/SKILL.md +359 -0
  38. package/bundled-skills/capacity-workload-planner/SKILL.md +354 -0
  39. package/bundled-skills/changelog-entry/SKILL.md +141 -0
  40. package/bundled-skills/clients-accounts/SKILL.md +398 -0
  41. package/bundled-skills/code-of-conduct/SKILL.md +488 -0
  42. package/bundled-skills/code-of-conduct/references/common-pitfalls.md +31 -0
  43. package/bundled-skills/company-email-accounts/SKILL.md +404 -0
  44. package/bundled-skills/competency-matrix/SKILL.md +335 -0
  45. package/bundled-skills/contract-document-renewal/SKILL.md +396 -0
  46. package/bundled-skills/course-upskilling-requests/SKILL.md +354 -0
  47. package/bundled-skills/credit-cycle-analysis/SKILL.md +303 -0
  48. package/bundled-skills/credit-cycle-analysis/references/best-practices.md +35 -0
  49. package/bundled-skills/credit-cycle-analysis/references/common-pitfalls.md +5 -0
  50. package/bundled-skills/credit-cycle-analysis/references/examples.md +34 -0
  51. package/bundled-skills/credit-cycle-analysis/references/field-reference.md +47 -0
  52. package/bundled-skills/credit-cycle-analysis/references/how-it-works.md +494 -0
  53. package/bundled-skills/credit-cycle-analysis/references/security-notes.md +16 -0
  54. package/bundled-skills/credit-cycle-analysis/references/select-options.md +32 -0
  55. package/bundled-skills/csv-manual-export/SKILL.md +499 -0
  56. package/bundled-skills/csv-manual-export/references/common-pitfalls.md +19 -0
  57. package/bundled-skills/culture-retention/SKILL.md +346 -0
  58. package/bundled-skills/data-export-engine/SKILL.md +308 -0
  59. package/bundled-skills/data-privacy-controls/SKILL.md +317 -0
  60. package/bundled-skills/day-book/SKILL.md +499 -0
  61. package/bundled-skills/day-book/references/best-practices.md +32 -0
  62. package/bundled-skills/day-book/references/common-pitfalls.md +58 -0
  63. package/bundled-skills/day-book/references/field-reference.md +45 -0
  64. package/bundled-skills/day-book/references/how-it-works.md +7 -0
  65. package/bundled-skills/day-book/references/related-skills.md +18 -0
  66. package/bundled-skills/day-book/references/relations.md +14 -0
  67. package/bundled-skills/day-book/references/reusable-prompt.md +50 -0
  68. package/bundled-skills/day-book/references/security-safety-notes.md +19 -0
  69. package/bundled-skills/day-book/references/select-options.md +38 -0
  70. package/bundled-skills/dei-dashboard/SKILL.md +307 -0
  71. package/bundled-skills/design-theme-guide/SKILL.md +472 -0
  72. package/bundled-skills/disciplinary-pip-tracker/SKILL.md +345 -0
  73. package/bundled-skills/document-management-system/SKILL.md +328 -0
  74. package/bundled-skills/ecommerce-listing-image-set/SKILL.md +259 -0
  75. package/bundled-skills/employee-suggestion-hub/SKILL.md +322 -0
  76. package/bundled-skills/esop-equity-tracker/SKILL.md +331 -0
  77. package/bundled-skills/events-activities/SKILL.md +355 -0
  78. package/bundled-skills/expense-accounting/SKILL.md +496 -0
  79. package/bundled-skills/expense-accounting/references/common-pitfalls.md +41 -0
  80. package/bundled-skills/expense-accounting/references/related-skills.md +11 -0
  81. package/bundled-skills/expense-accounting/references/reusable-prompt.md +36 -0
  82. package/bundled-skills/expense-management/SKILL.md +351 -0
  83. package/bundled-skills/free-design-resources/SKILL.md +480 -0
  84. package/bundled-skills/free-design-resources/references/common-pitfalls.md +44 -0
  85. package/bundled-skills/free-design-resources/references/related-skills.md +24 -0
  86. package/bundled-skills/free-design-resources/references/reusable-prompt.md +12 -0
  87. package/bundled-skills/gamification-engine/SKILL.md +307 -0
  88. package/bundled-skills/gbp-local-seo-intent/SKILL.md +466 -0
  89. package/bundled-skills/gbp-local-seo-intent/references/best-practices.md +41 -0
  90. package/bundled-skills/gbp-local-seo-intent/references/common-pitfalls.md +40 -0
  91. package/bundled-skills/gbp-local-seo-intent/references/related-skills.md +17 -0
  92. package/bundled-skills/gbp-local-seo-intent/references/reusable-prompt.md +11 -0
  93. package/bundled-skills/gbp-local-seo-intent/references/security-safety-notes.md +27 -0
  94. package/bundled-skills/health-wellness/SKILL.md +334 -0
  95. package/bundled-skills/intern-program/SKILL.md +354 -0
  96. package/bundled-skills/internal-communication/SKILL.md +318 -0
  97. package/bundled-skills/inventory-stock-reconciliation/SKILL.md +470 -0
  98. package/bundled-skills/inventory-stock-reconciliation/references/best-practices.md +18 -0
  99. package/bundled-skills/inventory-stock-reconciliation/references/common-pitfalls.md +42 -0
  100. package/bundled-skills/inventory-stock-reconciliation/references/related-skills.md +13 -0
  101. package/bundled-skills/inventory-stock-reconciliation/references/relations.md +8 -0
  102. package/bundled-skills/inventory-stock-reconciliation/references/reusable-prompt.md +31 -0
  103. package/bundled-skills/inventory-stock-reconciliation/references/security-safety-notes.md +17 -0
  104. package/bundled-skills/inventory-stock-reconciliation/references/select-options.md +45 -0
  105. package/bundled-skills/invoices-billing/SKILL.md +385 -0
  106. package/bundled-skills/issue-grievance-tracker/SKILL.md +400 -0
  107. package/bundled-skills/json-schema-manual/SKILL.md +309 -0
  108. package/bundled-skills/json-schema-manual/references/best-practices.md +9 -0
  109. package/bundled-skills/json-schema-manual/references/common-pitfalls.md +25 -0
  110. package/bundled-skills/json-schema-manual/references/input-modules.md +203 -0
  111. package/bundled-skills/json-schema-manual/references/related-skills.md +8 -0
  112. package/bundled-skills/json-schema-manual/references/reusable-prompt.md +10 -0
  113. package/bundled-skills/json-schema-manual/references/security-safety-notes.md +13 -0
  114. package/bundled-skills/knowledge-base/SKILL.md +318 -0
  115. package/bundled-skills/kpi-tracker/SKILL.md +345 -0
  116. package/bundled-skills/learning-career-development/SKILL.md +349 -0
  117. package/bundled-skills/leave-management/SKILL.md +341 -0
  118. package/bundled-skills/legal-compliance-vault/SKILL.md +324 -0
  119. package/bundled-skills/linktree-link-hub/SKILL.md +453 -0
  120. package/bundled-skills/logo-image-design/SKILL.md +459 -0
  121. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +3 -3
  122. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +2 -1
  123. package/bundled-skills/mentorship-program/SKILL.md +332 -0
  124. package/bundled-skills/mirrord/SKILL.md +90 -0
  125. package/bundled-skills/monthly-closing-statements/SKILL.md +488 -0
  126. package/bundled-skills/monthly-closing-statements/references/related-skills.md +17 -0
  127. package/bundled-skills/monthly-closing-statements/references/reusable-prompt.md +8 -0
  128. package/bundled-skills/music-generation-studio/SKILL.md +259 -0
  129. package/bundled-skills/notification-reminder-hub/SKILL.md +324 -0
  130. package/bundled-skills/notion-manual-import/SKILL.md +376 -0
  131. package/bundled-skills/notion-manual-import/references/best-practices.md +10 -0
  132. package/bundled-skills/notion-manual-import/references/common-pitfalls.md +26 -0
  133. package/bundled-skills/notion-manual-import/references/input-modules.md +203 -0
  134. package/bundled-skills/notion-manual-import/references/related-skills.md +7 -0
  135. package/bundled-skills/notion-manual-import/references/reusable-prompt.md +8 -0
  136. package/bundled-skills/notion-manual-import/references/security-safety-notes.md +15 -0
  137. package/bundled-skills/observability-cloud-planning/SKILL.md +487 -0
  138. package/bundled-skills/observability-cloud-planning/references/common-pitfalls.md +39 -0
  139. package/bundled-skills/observability-cloud-planning/references/related-skills.md +20 -0
  140. package/bundled-skills/observability-cloud-planning/references/reusable-prompt.md +12 -0
  141. package/bundled-skills/observability-cloud-planning/references/security-safety-notes.md +30 -0
  142. package/bundled-skills/offboarding-exit/SKILL.md +343 -0
  143. package/bundled-skills/offer-appointment/SKILL.md +351 -0
  144. package/bundled-skills/okr-system/SKILL.md +355 -0
  145. package/bundled-skills/omentir-linkedin-outreach/SKILL.md +96 -0
  146. package/bundled-skills/onboarding-playbook/SKILL.md +292 -0
  147. package/bundled-skills/organization-design/SKILL.md +324 -0
  148. package/bundled-skills/party-ledger-reconciliation/SKILL.md +411 -0
  149. package/bundled-skills/payment-accounting/SKILL.md +421 -0
  150. package/bundled-skills/payments-received/SKILL.md +315 -0
  151. package/bundled-skills/payroll-finance/SKILL.md +351 -0
  152. package/bundled-skills/people-directory/SKILL.md +459 -0
  153. package/bundled-skills/performance-management/SKILL.md +367 -0
  154. package/bundled-skills/petty-cash-management/SKILL.md +448 -0
  155. package/bundled-skills/policy-acknowledgement/SKILL.md +314 -0
  156. package/bundled-skills/policy-library/SKILL.md +327 -0
  157. package/bundled-skills/poster-design-studio/SKILL.md +259 -0
  158. package/bundled-skills/pre-boarding/SKILL.md +326 -0
  159. package/bundled-skills/presentation-deck/SKILL.md +491 -0
  160. package/bundled-skills/presentation-deck/references/related-skills.md +19 -0
  161. package/bundled-skills/presentation-deck/references/reusable-prompt.md +11 -0
  162. package/bundled-skills/probation-tracker/SKILL.md +347 -0
  163. package/bundled-skills/product-photo-studio/SKILL.md +259 -0
  164. package/bundled-skills/project-based-performance/SKILL.md +323 -0
  165. package/bundled-skills/projects-work-management/SKILL.md +368 -0
  166. package/bundled-skills/promotion-upgrade-requests/SKILL.md +377 -0
  167. package/bundled-skills/purchase-accounting/SKILL.md +414 -0
  168. package/bundled-skills/receipt-accounting/SKILL.md +424 -0
  169. package/bundled-skills/recognition-rewards/SKILL.md +324 -0
  170. package/bundled-skills/recruitment-pipeline/SKILL.md +399 -0
  171. package/bundled-skills/remote-work-tracker/SKILL.md +306 -0
  172. package/bundled-skills/reports-analytics/SKILL.md +320 -0
  173. package/bundled-skills/salary-benchmarking/SKILL.md +318 -0
  174. package/bundled-skills/salary-wage-accounting/SKILL.md +412 -0
  175. package/bundled-skills/sales-accounting/SKILL.md +494 -0
  176. package/bundled-skills/sales-accounting/references/common-pitfalls.md +28 -0
  177. package/bundled-skills/sales-accounting/references/related-skills.md +13 -0
  178. package/bundled-skills/sales-accounting/references/reusable-prompt.md +8 -0
  179. package/bundled-skills/seo-directory-backlinks/SKILL.md +484 -0
  180. package/bundled-skills/seo-directory-backlinks/references/common-pitfalls.md +36 -0
  181. package/bundled-skills/seo-directory-backlinks/references/related-skills.md +15 -0
  182. package/bundled-skills/seo-directory-backlinks/references/reusable-prompt.md +11 -0
  183. package/bundled-skills/since-cutoff/SKILL.md +68 -0
  184. package/bundled-skills/skill-gap-analysis/SKILL.md +338 -0
  185. package/bundled-skills/social-media-setup/SKILL.md +477 -0
  186. package/bundled-skills/social-media-setup/references/common-pitfalls.md +34 -0
  187. package/bundled-skills/social-media-setup/references/related-skills.md +19 -0
  188. package/bundled-skills/social-media-setup/references/reusable-prompt.md +11 -0
  189. package/bundled-skills/social-media-setup/references/security-safety-notes.md +27 -0
  190. package/bundled-skills/sop-company-wiki/SKILL.md +324 -0
  191. package/bundled-skills/source-document-filing/SKILL.md +368 -0
  192. package/bundled-skills/spreadsheet-manual-build/SKILL.md +493 -0
  193. package/bundled-skills/spreadsheet-manual-build/references/best-practices.md +9 -0
  194. package/bundled-skills/spreadsheet-manual-build/references/common-pitfalls.md +22 -0
  195. package/bundled-skills/spreadsheet-manual-build/references/related-skills.md +8 -0
  196. package/bundled-skills/spreadsheet-manual-build/references/reusable-prompt.md +9 -0
  197. package/bundled-skills/spreadsheet-manual-build/references/security-safety-notes.md +16 -0
  198. package/bundled-skills/stakeholder-investor-reports/SKILL.md +303 -0
  199. package/bundled-skills/suno-lyrics-to-song/SKILL.md +259 -0
  200. package/bundled-skills/talking-avatar-video/SKILL.md +260 -0
  201. package/bundled-skills/tax-register/SKILL.md +363 -0
  202. package/bundled-skills/tds-booking-payment/SKILL.md +405 -0
  203. package/bundled-skills/team-calendar/SKILL.md +312 -0
  204. package/bundled-skills/telegram/assets/boilerplate/nodejs/package-lock.json +3 -3
  205. package/bundled-skills/telegram/assets/boilerplate/nodejs/package.json +1 -0
  206. package/bundled-skills/template-library/SKILL.md +304 -0
  207. package/bundled-skills/time-tracking/SKILL.md +353 -0
  208. package/bundled-skills/vendor-contractor-management/SKILL.md +327 -0
  209. package/bundled-skills/viral-video-teardown-remake/SKILL.md +260 -0
  210. package/bundled-skills/voice-cloning-studio/SKILL.md +260 -0
  211. package/bundled-skills/voiceover-narration-studio/SKILL.md +259 -0
  212. package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package-lock.json +3 -3
  213. package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package.json +1 -0
  214. package/dist/skill-pointer/index.d.ts +2 -1
  215. package/dist/skill-pointer/index.js +2 -1
  216. package/dist/skill-pointer/pointer-generator.d.ts +4 -2
  217. package/dist/skill-pointer/pointer-generator.js +4 -2
  218. package/package.json +1 -1
  219. package/skills_index.json +4312 -0
package/README.md CHANGED
@@ -28,11 +28,13 @@
28
28
 
29
29
  ## Overview
30
30
 
31
- **OpenCode Skills Collection** ships a pre-bundled snapshot of 1595+ universal skills for the OpenCode.
31
+ **OpenCode Skills Collection** ships a pre-bundled snapshot of 2400+ universal skills for OpenCode.
32
32
 
33
- Instead of loading every skill into the AI context at startup — which would consume ~80k tokens and cause compaction
34
- loops — the plugin uses a **SkillPointer** architecture: skills are organized into categories inside a hidden vault and
35
- only loaded into context on demand.
33
+ Instead of registering every skill with OpenCode at startup — which would flood the model's available-skills list with
34
+ thousands of entries — the plugin uses a **SkillPointer** architecture: skills are stored in a hidden vault organized by
35
+ category, and only ~100 lightweight pointer skills are registered. At each model step OpenCode advertises the pointers
36
+ (ID, name, description); the model loads a pointer via the `skill` tool, reads which vault skills match the task, then
37
+ loads the chosen vault `SKILL.md` via `read`.
36
38
 
37
39
  ---
38
40
 
@@ -42,28 +44,36 @@ The plugin operates in two phases:
42
44
 
43
45
  **1. Local deployment (startup)**
44
46
 
45
- When OpenCode starts, the plugin copies the pre-bundled skills from the npm package and runs the SkillPointer pipeline:
47
+ When OpenCode starts, the plugin runs the SkillPointer pipeline synchronously before anything else. No hooks, tools,
48
+ or commands are registered — the only side effect is files on disk:
46
49
 
47
50
  ```
48
- bundled-skills/ (npm package)
51
+ bundled-skills/ (npm package) + skills_index.json
49
52
  │
50
- ▼
51
- ~/.config/opencode/skills/ ← OpenCode reads this
53
+ ▼ runSkillPointer()
54
+ ├─ filterIndex → drops skills matching excluded risk levels / IDs
55
+ ├─ installSkillsToVault → copies kept skills into the vault by category,
56
+ │ removes vault entries no longer in the filtered index
57
+ ├─ applySkillPatches → regex find/replace from skill-filter.jsonc on vault copies
58
+ └─ generatePointers → writes one <category>-category-pointer/SKILL.md per
59
+ category into the active skills dir, removes stale pointers
52
60
  │
53
- └── SkillPointer pipeline
54
- │
55
- ├─ risk-filter → excludes skills by risk level or ID
56
- ├─ content-scanner → quarantines skills with dangerous patterns
57
- ├─ vault-manager → moves safe skills to the vault
58
- ├─ skill-patcher → applies config-driven content patches
59
- └─ pointer-generator → writes ~35 lightweight pointer files
61
+ ├── ~/.config/opencode/skill-libraries/<category>/<skill>/SKILL.md (vault, NOT registered)
62
+ └── ~/.config/opencode/skills/<category>-category-pointer/SKILL.md (registered by OpenCode)
60
63
  ```
61
64
 
62
- **2. On-demand skill loading**
65
+ Content scanning is NOT a runtime stage: dangerous skills are quarantined at CI time (sync-skills.yml) and never
66
+ reach the npm package.
63
67
 
64
- Each pointer file tells the AI: *"there are N skills for this category in the vault — use `read` to
65
- retrieve them when needed."*
66
- The full skill content is only injected into context when the AI actually needs it.
68
+ **2. On-demand skill loading (at inference time)**
69
+
70
+ 1. OpenCode discovers pointer skills in `~/.config/opencode/skills/` and advertises ID + name + description to the
71
+ model at each step (body stays out of context).
72
+ 2. The model loads the matching pointer via the `skill` tool (`{"id": "<category>-category-pointer"}`); OpenCode
73
+ injects the pointer body — the categorized skill list plus vault path.
74
+ 3. The model reads the chosen vault file via `read` (`skill-libraries/<category>/<skill>/SKILL.md`) and follows it.
75
+
76
+ Vault skills are never registered with OpenCode directly, so they never appear in the advertised list.
67
77
 
68
78
  ---
69
79
 
@@ -91,12 +101,12 @@ After the first startup, your `~/.config/opencode/` directory looks like this:
91
101
 
92
102
  ## Context Usage
93
103
 
94
- | | Without SkillPointer | With SkillPointer |
95
- |----------------------|----------------------|---------------------|
96
- | Folders in `skills/` | ~1000 | ~35 |
97
- | Tokens at startup | ~80,000 | ~255 |
98
- | Skills available | All injected upfront | On-demand via vault |
99
- | Compaction loops | ✗ frequent | ✓ none |
104
+ | | Without SkillPointer | With SkillPointer |
105
+ |------------------------------|----------------------|-----------------------|
106
+ | Entries in `skills/` | ~2450 | ~100 pointers |
107
+ | Skills advertised per step | ~2450 | ~100 |
108
+ | Full bodies in context | On explicit load | On explicit load |
109
+ | Vault skills loaded | n/a | Via `read` after pointer |
100
110
 
101
111
  ---
102
112
 
@@ -131,29 +141,23 @@ needed.
131
141
 
132
142
  ## Usage
133
143
 
134
- Once installed, all skills are available in three ways:
144
+ The plugin registers pointer skills, not commands. There is no `/skill-name` slash command and no `opencode run /...`
145
+ syntax — slash commands live in `commands/`, this plugin only writes to `skills/`.
135
146
 
136
- **Explicit invocation via CLI:**
137
-
138
- ```bash
139
- opencode run /brainstorming help me plan a new feature
140
- opencode run /refactor clean up this function
141
- ```
147
+ **How a skill gets used (V2 runtime):**
142
148
 
143
- **Slash commands in the OpenCode chat:**
149
+ 1. You describe the task in plain language (CLI `opencode run "..."`, TUI chat, or session).
150
+ 2. OpenCode advertises the ~100 pointer skills (ID + description) to the model.
151
+ 3. The model loads the matching `<category>-category-pointer` via the `skill` tool, picks the vault skill from its
152
+ list, reads `skill-libraries/<category>/<skill>/SKILL.md` via `read`, and follows it.
144
153
 
145
154
  ```
146
- /brainstorming
147
- /refactor
148
- /document
155
+ "Help me design a REST API" → model loads backend-dev-category-pointer → reads laravel-expert/SKILL.md
149
156
  ```
150
157
 
151
- **Natural language — OpenCode picks the right skill automatically:**
152
-
153
- ```
154
- "Help me brainstorm ideas for a REST API design"
155
- "Refactor this function to be more readable"
156
- ```
158
+ Skills without a `description` are never advertised; skills can opt out of the advertised list with
159
+ `metadata.opencode/autoinvoke: false` but remain loadable by exact ID. The `skill` tool takes an exact,
160
+ case-sensitive ID.
157
161
 
158
162
  ---
159
163