mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
3.4 KiB
3.4 KiB
Template: package-library
Use this template for a package with no plugin surface: its entry exports a plain module API and it registers nothing into a composition. Examples: boot/app-boot, util/*, sdk/protocol, typert/generator. The boot/app-boot README pair is the worked example.
A library README differs from a package reference in three ways: no "install into a profile" guidance (a library is a dependency, not a layer), no mount configuration (there is no cordis.yml row), and a Model Experience section only in the audited form the gate assigns (most libraries are none or indirect).
Frontmatter
---
description: "What the library lets a caller build, in one or two concrete sentences with the consuming packages or searchable domain terms."
kind: "package-library"
---
Skeleton
# @deepseek-ai/dsh-<name>
English | [中文](README.zh.md)
## Summary
Three to five sentences: what a caller can DO with the library, who consumes it, the smallest entry point, and the main boundary.
## Table of Contents
- [Use this package](#use-this-package)
- [Understand the implementation](#understand-the-implementation)
- [Further Exploration](#further-exploration)
- [Model Experience](#model-experience)
- [Known Limitations and Deferred Work](#known-limitations-and-deferred-work)
- [Dev Note](#dev-note)
-----
<a id="use-this-package"></a>
## Use this package
### When to use it
Name the consuming call sites (which bins, packages, or runtimes import it) and when a caller should reach for it instead of a plugin.
### Entry point
The smallest import-plus-call that works, in a `text` or `ts` fence, followed by what success and failure look like. Link the owning contracts in `src/index.ts` for exact detail instead of restating them.
-----
<a id="understand-the-implementation"></a>
## Understand the implementation
<details>
<summary>Implementation internals — click to expand</summary>
Design notes and a source-map table. No API catalogs.
</details>
-----
<a id="further-exploration"></a>
## Further Exploration
Adjacent pages, closest prerequisite first.
-----
<a id="model-experience"></a>
## Model Experience
Only the form the verify-package-readme-model-experience gate assigns this package (`none`, `indirect`, or the canonical blocks). A library never invents model effects it does not have.
## Known Limitations and Deferred Work
<a id="known-limitations-and-deferred-work"></a>
Current package constraints as top-level bullets; allowlist the package in scripts/verify-package-readme-limitations.ts when none exist.
<a id="dev-note"></a>
### Dev Note
<details>
<summary>Working context for maintainers — click to expand</summary>
None.
</details>
Rules
- Classify by the entry, not the folder. Read
src/index.tsbefore choosing this template:export defaulta service class or anapplyexport makes the package apackage-reference, anddsh.bundle.patchinpackage.jsonmakes it apackage-bundle. A plain module API without those is a library. - Never write profile-install guidance.
dsh plugin --profile <name> add <package>installs any npm dependency but activates a profile layer only fordsh.bundle-declaring packages; for a library it is at best a no-op dependency and must not appear as an install path. - Re-run
pnpm run verify-translation-pairing --write packages/<group>/<pkg>/README.mdafter editing the pair.