setup-ts-deep-modules SKILL.md skillA
setup-ts-deep-modules from shumingyang-opencode/mattpocock-skills-zh-tw is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add shumingyang-opencode/mattpocock-skills-zh-tw/setup-ts-deep-modules@git:20260806.5bfe60bPins git:20260806.5bfe60b in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- shumingyang-opencode/mattpocock-skills-zh-tw
- Path
skills/in-progress/setup-ts-deep-modules/SKILL.md- Versions recorded
- 3
- Latest version
- git:20260806.5bfe60b, committed Aug 6, 2026
- First version recorded
- Jul 10, 2026
- Size
- 7,670 bytes
- Repository stars
- 3
- License
- MIT
將 dependency-cruiser 接入 TypeScript repo,讓每個套件都是深模組 — 實作藏在子資料夾中,只能透過其進入點檔案觸達。使用者觸發。.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 設定 TS 深模組(Setup TS Deep Modules)
讓此 repo 中的每個套件都是**深模組**:小介面後面的大量行為。套件的公開表面是它的**進入點** — 套件根目錄中的檔案 — 而其子資料夾中的一切都被隱藏。此技能安裝 [dependency-cruiser](https://github.com/sverweij/dependency-cruiser) 以及讓進入點成為唯一入口的規則,然後證明規則確實咬人。
對於詞彙(深模組、介面、接縫、深度),執行 `/codebase-design` 技能 — 全程使用它的語言。
## 這強制出來的形狀
```
src/packages/
<name>/
index.ts ← 一個進入點(公開)。從外部匯入這個。
client.ts ← 另一個進入點。套件可以暴露多個(SEVERAL)。
lib/ ← 實作:對外隱藏,彼此之間可以自由匯入。
tests/ ← 共置的測試 + 固定裝置(一個子資料夾,所以是私有的)。
```
公開表面是套件的**根目錄檔案** — 不是一個指定的 `index.ts`。依照慣例,實作住在 `lib/`、測試住在 `tests/`,給每個套件相同的兩資料夾形狀。但規則本身是通用的:*任何*子資料夾中的*任何東西*都是私有的,所以您永遠不需要擴充設定來新增資料夾。
四個規則,全部是 `error`:
1. **進入點邊界** — 套件外的程式碼(app 程式碼或另一個套件)只能匯入該套件的進入點(其根目錄檔案),絕不能匯入其子資料夾中的任何東西。
2. **套件內自由** — 套件自己的檔案彼此自由匯入。
3. **測試透過進入點** — `<pkg>/tests/` 下的檔案可以匯入任何套件的進入點與它們自己的 `tests/` 固定裝置,但絕不能匯入任何套件的子資料夾內部(即使自己的也不行)。跨套件的整合測試可以;深層匯入不行。
4. **無循環** — 沒有依賴循環。
**進入點,不是 barrel。** 因為公開表面是*每個*根目錄檔案,一個套件可以暴露幾個小的進入點(`index.ts`、`client.ts`、`server.ts`),而不是把一切漏斗進一個巨大的 `index.ts`。重新匯出整個子樹的 barrel 檔案是不被鼓勵的 — 保持進入點小而把實作藏在子資料夾中。
分層(哪個套件可以依賴哪個)是*另一個*關注點,在設定中留為一個註解掉的樁,供此 repo 填寫。
## 步驟
### 1. 偵測環境
…Read the whole file at its exact version.
How to install
mdr add shumingyang-opencode/mattpocock-skills-zh-tw/setup-ts-deep-modules@sha256:7a523e0c464eca36The line at the top of this page pins the label git:20260806.5bfe60b, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_hsalgz7ivch76gku)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, between Jul 10, 2026 and Aug 6, 2026, about one every 13 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260806.5bfe60b latest | 2026-08-06 | 5bfe60b | 7,670 B | A | view · diff |
| git:20260710.3687fb4 | 2026-07-10 | 3687fb4 | 7,602 B | A | view · diff |
| git:20260710.3ea30af | 2026-07-10 | 3ea30af | 7,214 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (7670 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
shumingyang-opencode/mattpocock-skills-zh-tw · 3 stars · license MIT · pushed 2026-10-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_hsalgz7ivch76gku GET https://markdownregistry.com/api/v1/resolve?ref=shumingyang-opencode/mattpocock-skills-zh-tw/setup-ts-deep-modules GET https://markdownregistry.com/api/v1/blob/7a523e0c464eca369e7216db290e512bb0cd206fc4b49e1525fd280607162892
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.
More from shumingyang-opencode/mattpocock-skills-zh-tw
Every file in shumingyang-opencode/mattpocock-skills-zh-tw