Skip to content

Commit 122f3d3

Browse files
committed
docs: refresh official-docs snapshot to 687f282e
1 parent cbdb647 commit 122f3d3

207 files changed

Lines changed: 22196 additions & 2794 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CHANGELOG.md‎

100644100755
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [0.3.36] - 2026-10-19
4+
5+
### Docs
6+
7+
- Refresh `references/official-docs` to deepseek-harness `master` `687f282e8625c6b8d11ff58211a90524be2e4317` (docs/: 481 md, 238 .zh.md pairs). The powershell sync script was replicated with `git archive` because pwsh is unavailable on this host; `check-docs-drift-detail.mjs --checkout /home/yy/deepseek-harness` reports FRESH. Closes the docs-drift reports #12/#13/#15.
8+
39
## [0.3.35] - 2026-10-18
410

511
### Changed

‎package.json‎

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dsh-plugin-guide",
3-
"version": "0.3.35",
3+
"version": "0.3.36",
44
"description": "DSH plugin development as an on-demand agent skill: official docs mirror, version-compatibility matrix, migration seams, measured pitfalls, plus a scaffolder, checker and pack verifier CLI.",
55
"type": "module",
66
"main": "index.js",

‎references/official-docs/AGENTS.md‎

100644100755
Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,17 @@ pnpm run test:snapshot:record # re-record expected outputs (needs key)
9292
pnpm run typecheck
9393
pnpm run lint
9494
pnpm run duplication # cross-file TypeScript clone detection
95-
pnpm run build # tsc emits lib/types, tsdown bundles runtime
95+
pnpm run build # build:artifacts + build:check, concurrently
96+
pnpm run build:artifacts # artifacts: tsc emits lib/types, tsdown bundles runtime, Web
97+
pnpm run build:check # typecheck aggregate tests/scripts against current build:artifacts output
9698
pnpm run hygiene # publint + workspace/package/dependency checks + NodeNext consumer check
9799
pnpm run check:windows-wine # ONLY when diagnosing a known Windows failure (needs wine); CI owns this signal
98100
pnpm run doc-sync # documentation gates (scripts/run-gates.ts)
99101
pnpm run test:docs # quick documentation checks (no build; doc-quick aggregate)
100102
pnpm run website:build # VitePress build (doubles as dead-link check)
101103
pnpm dsh --profile headless "task" # run one task from source (needs DEEPSEEK_API_KEY)
102104
pnpm run demo:ptc -- "task" # headless PTC mode run (needs key)
103-
pnpm run dev:web | dev:desktop # build, then launch; Web also rebuilds client bundles on edits. start:web | start:desktop skip the build
105+
pnpm run dev:web | dev:desktop # build:artifacts, then launch; Web also rebuilds client bundles on edits. start:web | start:desktop skip the build
104106
make web|dev-web|desktop|dev-desktop|build # the same commands; ARGS='--no-open' forwards options
105107
```
106108

@@ -115,11 +117,12 @@ Before pushing, follow [dsh-pre-push-checks](.agents/skills/dsh-pre-push-checks/
115117
- Match evidence to the surface: focused behavior tests, model/user-output snapshots, `doc-sync` for docs, built smokes for published paths, and real-API e2e for providers.
116118
- Never default to the full suite or repeat a passing check for commit or push. CI owns exhaustive coverage and the platform matrix; rehearse all locally only by explicit request, for CI diagnosis, or for an irreducibly repository-wide change.
117119
- `test:coverage`, not `test`, is the CI coverage gate ([why](docs/testing.md)).
120+
- Develop with `build:artifacts`; before claiming completion, run `build:check` after the latest `build:artifacts`, or `build` ([layout](docs/development.md#typescript-project-layout)).
118121
- **Web browser automation and GIF recording:** launch with `pnpm dsh web --patch apps/web/tests/pin-browse-picker.overlay.yml` to use the [in-page directory picker](apps/web/tests/pin-browse-picker.overlay.yml); omit this override only when testing native picker behavior explicitly.
119122

120123
## Secrets / .env
121124

122-
Windows packaging/signing: [required reading](apps/desktop/README.md#windows-ev-signing).
125+
Windows packaging/signing: [required reading](apps/desktop/windows-signing/README.md).
123126

124127
Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and root `.env`. cordis.yml allows `!!js` (never `!js`) under plugin `config` and entry `disabled`; other metadata stays literal, so conditional composition also uses overlays ([primer](docs/cordis-primer.md#loader-configuration)). Never commit credentials. CI e2e skips without a key; [testing.md](docs/testing.md) owns key policy.
125128

@@ -150,6 +153,7 @@ Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and
150153
- **Prefer symmetry for parallel values**; unexplained asymmetry usually signals a missed extraction.
151154
- **Tests describe behavior, not correctness.** Change obsolete behavior with its tests; explain why in the PR.
152155
- **Create Agent Notes only for durable decision rationale;** mechanical/local edits are exempt, including local UI changes ([scope](.agents/notes/README.md#when-to-write-one)). Archived notes are frozen: never edit or treat them as current authority ([archive policy](.agents/notes/README.md#archiving-and-deletion)).
156+
- **Official plugin artwork:** use [dsh-official-plugin-artwork](.agents/skills/dsh-official-plugin-artwork/SKILL.md) for official and official experimental plugin icons; obtain designer approval before landing new glyphs.
153157
- **Client UI copy is locale-owned.** Route product text through typed dictionaries and `t` or localized primitive props; `verify-client-ui-i18n` rejects hardcoded copy ([decision](.agents/notes/implemented/architecture/2026-08-23-locale-owned-client-ui-copy.md)).
154158
- **Testing policy** — [docs/testing.md](docs/testing.md). Every non-trivial model- or product-user-visible change updates a keyless recorded-session snapshot; [snapshot ownership](snapshots/AGENTS.md) reserves the top-level tree for session-driven cases and keeps other expected output owner-local. Fixtures replay on macOS/Linux; fix fixtures, not normalizers.
155159
- **Design each tool's UI presentation up front.** Host presenters stay pure; Web cards derive from raw events and persisted result metadata ([cookbook](docs/cookbook/adding-a-tool.md)).
@@ -162,7 +166,7 @@ Real-API tests/demos read `DEEPSEEK_API_KEY`, optional `DEEPSEEK_BASE_URL`, and
162166

163167
## Defensive patterns
164168

165-
Read [docs/defensive-patterns.md](docs/defensive-patterns.md) before lifecycle, concurrency, subprocess, or teardown work.
169+
Read [docs/defensive-patterns/README.md](docs/defensive-patterns/README.md) before changing a package surface, remote service, client component or state, conversation or Session behavior, or lifecycle, concurrency, subprocess, and teardown code. Its [review principles](docs/defensive-patterns/README.md#why-these-rules) apply per artifact.
166170

167171
## Type safety and documentation
168172

‎references/official-docs/CLAUDE.md‎

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
AGENTS.md
1+
AGENTS.md

‎references/official-docs/SNAPSHOT.md‎

100644100755
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
# official-docs snapshot (SNAPSHOT.md)
1+
# official-docs snapshot (SNAPSHOT.md)
22

3-
> Generated by `scripts/sync-official-docs.ps1`. This file is the single authority for how `references/official-docs/` lines up with upstream deepseek-harness.
3+
> Generated by `scripts/sync-official-docs.ps1` (replicated with git archive on this host). This file is the single authority for how `references/official-docs/` lines up with upstream deepseek-harness.
44
> The "last verified" dates and commit SHAs in README/guide must cite this file; do not hand-edit them.
55
66
| Item | Value |
77
|---|---|
8-
| Source checkout | `D:\deepseek-harness` |
9-
| Source ref | `origin/master` |
10-
| Source commit | `d743267388641bc76f17c45ce8b4c231aed1d32c` |
11-
| Synced at (UTC) | 2026-10-13T13:01:50Z |
8+
| Source checkout | `/home/yy/deepseek-harness` |
9+
| Source ref | `master` |
10+
| Source commit | `687f282e8625c6b8d11ff58211a90524be2e4317` |
11+
| Synced at (UTC) | 2026-10-18T17:41:57Z |
1212
| Scope | tracked files at the ref: `docs/`, root `AGENTS.md`, `BENCHMARK.md`, `CLAUDE.md` (symlink target text), `CONTRIBUTING.md`/`.zh.md`/`.i18n.yaml`, `README.zh.md`/`.i18n.yaml` (the upstream English `README.md` is not in this dir; its snapshot lives in `downloads/github/harness/README.md`), `THIRD_PARTY_NOTICES.md`, `LICENSE`, `packages/AGENTS.md`, `packages/README.md`, `vendor/README.md`, `website/docs.ts` |
13-
| File counts | docs/: 429 md files (212 .zh.md pairs) |
14-
| Pruned this run | 15 out-of-scope/upstream-deleted entries |
15-
16-
Drift check: `pwsh -File scripts/verify-kit.ps1 -Checkout <checkout>` (tracked files only).
13+
| File counts | docs/: 481 md files (238 .zh.md pairs) |
14+
| Pruned this run | stale docs/ paths removed by rsync --delete; root scope refreshed |

‎references/official-docs/THIRD_PARTY_NOTICES.md‎

100644100755
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
DeepSeek Harness is licensed under [MIT](LICENSE). It depends on the third-party software listed below. Each project remains under its own license; nothing in this file changes those terms.
77

8-
This file lists **direct** dependencies declared by the workspace, the explicitly disclosed official Claude Code platform payload closure, and the Bundled Python distributions. It is generated by `scripts/gen-third-party-notices.ts`: a pre-commit hook regenerates it whenever a staged file changes one of its inputs, and `scripts/gen-third-party-notices.spec.ts` asserts in the test lane that the committed bytes match. Deleting a manifest runs no hook, so that case is caught by the assertion instead. Run `pnpm run verify-third-party-notices` for the standalone check.
8+
This file lists **direct** dependencies declared by the workspace, the explicitly disclosed official Claude Code platform payload closure, and the Bundled Python distributions. It is generated by `scripts/gen-third-party-notices.ts`, and `scripts/gen-third-party-notices.spec.ts` asserts in the test lane that the committed bytes match. Run `pnpm run gen-third-party-notices` after changing one of its inputs, or `pnpm run verify-third-party-notices` for the standalone check.
99

1010
The complete npm transitive closure, including the Landlock launcher workspace, is recorded with exact pinned versions in [`pnpm-lock.yaml`](pnpm-lock.yaml) — inspect it with `pnpm licenses list`. The Python SDK closure is recorded separately in [`python/sdk/uv.lock`](python/sdk/uv.lock).
1111

@@ -92,6 +92,7 @@ External packages installed for runtime use or distributed inside the prebuilt b
9292
| [`fast-xml-parser`](https://github.com/NaturalIntelligence/fast-xml-parser) | MIT |
9393
| [`fflate`](https://github.com/101arrowz/fflate) | MIT |
9494
| [`got`](https://github.com/sindresorhus/got) | MIT |
95+
| [`hosted-git-info`](https://github.com/npm/hosted-git-info) | ISC |
9596
| [`immer`](https://github.com/immerjs/immer) | MIT |
9697
| [`ipaddr.js`](https://github.com/whitequark/ipaddr.js) | MIT |
9798
| [`js-yaml`](https://github.com/nodeca/js-yaml) | MIT |
@@ -110,10 +111,12 @@ External packages installed for runtime use or distributed inside the prebuilt b
110111
| [`micromark-util-sanitize-uri`](https://github.com/micromark/micromark/tree/main/packages/micromark-util-sanitize-uri) | MIT |
111112
| [`micromark-util-symbol`](https://github.com/micromark/micromark/tree/main/packages/micromark-util-symbol) | MIT |
112113
| [`mime-types`](https://github.com/jshttp/mime-types) | MIT |
114+
| [`minisearch`](https://github.com/lucaong/minisearch) | MIT |
113115
| [`negotiator`](https://github.com/jshttp/negotiator) | MIT |
114116
| [`node-addon-require-builtin`](https://www.npmjs.com/package/node-addon-require-builtin) | MIT |
115117
| [`node-pty`](https://github.com/microsoft/node-pty) | MIT |
116118
| [`open`](https://github.com/sindresorhus/open) | MIT |
119+
| [`p-limit`](https://github.com/sindresorhus/p-limit) | MIT |
117120
| [`papaparse`](https://github.com/mholt/PapaParse) | MIT |
118121
| [`pdfjs-dist`](https://github.com/mozilla/pdf.js) | Apache-2.0 |
119122
| [`picomatch`](https://github.com/micromatch/picomatch) | MIT |
@@ -128,6 +131,7 @@ External packages installed for runtime use or distributed inside the prebuilt b
128131
| [`shiki`](https://github.com/shikijs/shiki) | MIT |
129132
| [`simple-icons`](https://github.com/simple-icons/simple-icons) | CC0-1.0 |
130133
| [`supports-color`](https://github.com/chalk/supports-color) | MIT |
134+
| [`tar`](https://github.com/isaacs/node-tar) | BlueOak-1.0.0 |
131135
| [`tsx`](https://github.com/privatenumber/tsx) | MIT |
132136
| [`turndown`](https://github.com/mixmark-io/turndown) | MIT |
133137
| [`typescript`](https://github.com/microsoft/TypeScript) | Apache-2.0 |
@@ -141,11 +145,12 @@ External packages installed for runtime use or distributed inside the prebuilt b
141145

142146
pnpm applies local patches to the following packages at install time, so shipped artifacts carry modified copies; each patch file is the complete record of the modification:
143147

144-
- `@earendil-works/pi-ai@1.0.2` — [`patches/@earendil-works__pi-ai@1.0.2.patch`](patches/@earendil-works__pi-ai@1.0.2.patch)
148+
- `@earendil-works/pi-ai@1.1.0` — [`patches/@earendil-works__pi-ai@1.1.0.patch`](patches/@earendil-works__pi-ai@1.1.0.patch)
145149
- `@electron/osx-sign@1.3.3` — [`patches/@electron__osx-sign@1.3.3.patch`](patches/@electron__osx-sign@1.3.3.patch)
146150
- `@fortune-sheet/core@1.0.4` — [`patches/@fortune-sheet__core@1.0.4.patch`](patches/@fortune-sheet__core@1.0.4.patch)
147151
- `@fortune-sheet/react@1.0.4` — [`patches/@fortune-sheet__react@1.0.4.patch`](patches/@fortune-sheet__react@1.0.4.patch)
148152
- `@yao-pkg/pkg@6.21.0` — [`patches/@yao-pkg__pkg@6.21.0.patch`](patches/@yao-pkg__pkg@6.21.0.patch)
153+
- `app-builder-lib@26.17.0` — [`patches/app-builder-lib@26.17.0.patch`](patches/app-builder-lib@26.17.0.patch)
149154
- `exceljs@4.4.0` — [`patches/exceljs@4.4.0.patch`](patches/exceljs@4.4.0.patch)
150155
- `node-pty@1.2.0-beta.15` — [`patches/node-pty@1.2.0-beta.15.patch`](patches/node-pty@1.2.0-beta.15.patch)
151156

@@ -200,6 +205,7 @@ External packages **directly declared** for development, tests, types, or toolin
200205
| [`@types/babel__code-frame`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
201206
| [`@types/big.js`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
202207
| [`@types/compression`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
208+
| [`@types/hosted-git-info`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
203209
| [`@types/js-yaml`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
204210
| [`@types/jsdom`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
205211
| [`@types/mdast`](https://github.com/DefinitelyTyped/DefinitelyTyped) | MIT |
@@ -250,7 +256,6 @@ External packages **directly declared** for development, tests, types, or toolin
250256
| [`selfsigned`](https://github.com/jfromaniello/selfsigned) | MIT |
251257
| [`smol-toml`](https://github.com/squirrelchat/smol-toml) | BSD-3-Clause |
252258
| [`spdx-expression-parse`](https://github.com/jslicense/spdx-expression-parse.js) | MIT |
253-
| [`tar`](https://github.com/isaacs/node-tar) | BlueOak-1.0.0 |
254259
| [`tsdown`](https://github.com/rolldown/tsdown) | MIT |
255260
| [`typescript-language-server`](https://github.com/typescript-language-server/typescript-language-server) | Apache-2.0 |
256261
| [`vite`](https://github.com/vitejs/vite) | MIT |
@@ -269,6 +274,7 @@ Direct dependencies of the `pyproject.toml` manifests, plus `uv` as the developm
269274
| Package | License | Role |
270275
| --- | --- | --- |
271276
| [`hatchling`](https://github.com/pypa/hatch) | MIT | build backend |
277+
| [`pillow`](https://github.com/python-pillow/Pillow) | MIT-CMU | Python project dependency |
272278
| [`pydantic`](https://github.com/pydantic/pydantic) | MIT | runtime dependency of `deepseek-harness-sdk` |
273279
| [`pytest`](https://github.com/pytest-dev/pytest) | MIT | test-only |
274280
| [`uv`](https://github.com/astral-sh/uv) | MIT / Apache-2.0 | development workflow tool |

‎references/official-docs/docs/AGENTS.md‎

100644100755
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Each fact has one home: the tier whose job it is; elsewhere, link there.
2323
| [architecture.md](architecture.md) | Ordered map: composition, core packages, loop, seams, extension points; read before changing `packages/` | Type definitions (→ subsystems), per-package detail (→ package READMEs), decision rationale (→ Agent Notes), implementation-status annotations |
2424
| [subsystems/](subsystems/README.md) | One reference page per subsystem: type definitions, semantics, and the generated Cordis API | Behavior narration (→ architecture.md) |
2525
| [Agent Notes](../.agents/notes/README.md) | Active decision records: the why, what-was-given-up, and required verification; `implemented/` notes describe shipped reality in present tense | Migration plans, acceptance-task checklists, fixture walkthroughs, and spec-speak ("should…") once the decision has shipped; archived notes are frozen history, never current authority |
26+
| [defensive-patterns/](defensive-patterns/README.md) | Rules this repository enforces in review, split by artifact: one general bug-class page plus per-domain pages | Type definitions and semantics (→ subsystems), decision rationale (→ Agent Notes) |
2627
| [postmortem/](postmortem/README.md) | Incident stories — the only tier where war-story narrative belongs | — |
2728
| [Persistence history](persistence-changes/README.md) and [format references](persistence-changes/historical-formats/README.md) | Type-change acknowledgements, release comparisons, and complete historical format schemas | Behavior-only changes; current runtime contracts |
2829
| [cookbook/](cookbook/adding-a-package.md) | Step-by-step how-tos with numbered verify steps | Design rationale (→ the Agent Note each guide links) |
@@ -32,7 +33,7 @@ Each fact has one home: the tier whose job it is; elsewhere, link there.
3233
| Generated reference: the per-page `cordis-surface` regions in [subsystems/](subsystems/README.md), the [Cordis core API + inherited tier](cordis-api/context.md), [tool-catalog](tool-catalog.md), [config-catalog](config-catalog.md), [persistence-catalog](persistence-catalog.md), [module-graph.md](module-graph.md), [cli-help](cli-help.md) | Exhaustive English sources regenerated from source and freshness-gated; reviewed Chinese counterparts follow the [pairing workflow](i18n/README.md#scope-and-exclusions) | Hand edits to generated English sources or regions; Chinese counterparts update through pairing only |
3334
| Skills (`.agents/skills/`) | Reusable workflows and specialized decision standards | Product and runtime contracts (→ docs or source) |
3435

35-
Placement: bugs → postmortems; rationale → Agent Notes; procedures → cookbooks; type definitions → subsystems; package contracts → READMEs; standing orders → root `AGENTS.md` with a rationale link.
36+
Placement: bugs → postmortems; rationale → Agent Notes; procedures → cookbooks; type definitions → subsystems; package contracts → READMEs; standing orders → root `AGENTS.md` with a rationale link; review-enforced rules → `defensive-patterns/`.
3637

3738
## Writing rules
3839

@@ -55,7 +56,7 @@ When the gate goes red:
5556
2. **Condense** content that belongs here but can be shorter.
5657
3. **Raise** the ceiling only when the words need the space; justify the manifest diff in the PR. A too-low ceiling is a budget bug.
5758

58-
Ceilings are guardrails, not reduction targets. At or below target, retain at least 5% headroom; above target, freeze the ceiling until relocation or condensation brings the document under target. Lower a ceiling only when the document still has room. Targets: root `AGENTS.md` ≤ 1,960; `architecture.md` ≤ 2,400; subtree `AGENTS.md` ≤ 600, except `packages/AGENTS.md` ≤ 750 and this file ≤ 1,320; `packages/README.md` ≤ 994; plus `cordis-primer.md` 600, `defensive-patterns.md` 550, `testing.md` 1,300, `examples/AGENTS.md` 310. Review governs unbudgeted tiers.
59+
Ceilings are guardrails, not reduction targets. At or below target, retain at least 5% headroom; above target, freeze the ceiling until relocation or condensation brings the document under target. Lower a ceiling only when the document still has room. Targets: root `AGENTS.md` ≤ 2,080; `architecture.md` ≤ 2,400; subtree `AGENTS.md` ≤ 600, except `packages/AGENTS.md` ≤ 810 and this file ≤ 1,430; `packages/README.md` ≤ 994; plus `cordis-primer.md` 600, `testing.md` 1,300, `examples/AGENTS.md` 310. Review governs unbudgeted tiers.
5960

6061
## The slop checklist
6162

0 commit comments

Comments
 (0)