@warp-drive/memory-alpha 5.10.0-alpha.10 → 5.10.0-alpha.12
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/README.md +65 -6
- package/package.json +1 -1
- package/skills/_meta.json +1 -1
- package/skills/contributors/submit-a-pr.md +8 -1
- package/skills/contributors/write-documentation.md +37 -10
- package/skills/contributors/writing-and-implementing-rfcs.md +9 -2
- package/skills/docs/_meta.json +7 -0
- package/skills/docs/read-the-docs-as-markdown.md +40 -0
- package/skills/index.md +1 -0
- package/skills/overview.md +1 -0
package/README.md
CHANGED
|
@@ -8,13 +8,11 @@
|
|
|
8
8
|
/>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
|
-

|
|
12
|
+

|
|
13
13
|

|
|
14
|
-
[](https://discord.gg/zT3asNS
|
|
15
|
-
)
|
|
16
|
-
[](https://discord.gg/PHBbnWJx5S
|
|
17
|
-
)
|
|
14
|
+
[](https://discord.gg/zT3asNS)
|
|
15
|
+
[](https://discord.gg/PHBbnWJx5S)
|
|
18
16
|
|
|
19
17
|
# @warp-drive/memory-alpha
|
|
20
18
|
|
|
@@ -32,6 +30,7 @@ other skill files, do not list or read whole directories — this table is enoug
|
|
|
32
30
|
| Define a resource's shape — fields, relationships, identity — for the `Store` | `skills/schemas/define-a-resource-schema.md` |
|
|
33
31
|
| Fetch or query remote data through the `Store` so it's cached and reactive | `skills/requests/fetch-and-cache-data.md` |
|
|
34
32
|
| Re-record one holodeck mock, or review a test that sets `RECORD` | `skills/holodeck/using-record.md` |
|
|
33
|
+
| Look up a guide, upgrade note, or API reference page that no row above covers — a concept, an option, a signature | `skills/docs/read-the-docs-as-markdown.md` |
|
|
35
34
|
| You're contributing to WarpDrive itself, not just consuming it as a dependency | `skills/contributors/index.md` |
|
|
36
35
|
|
|
37
36
|
This table is kept in sync with [`skills/index.md`](./skills/index.md), which is the same
|
|
@@ -113,3 +112,63 @@ const skill = readFileSync(pkgPath.replace('package.json', 'skills/schemas/defin
|
|
|
113
112
|
|
|
114
113
|
Or point an MCP filesystem/docs server, a Claude Code skill, or any other agent tooling at the
|
|
115
114
|
installed package's `skills` directory.
|
|
115
|
+
|
|
116
|
+
### ♥️ Credits
|
|
117
|
+
|
|
118
|
+
<details>
|
|
119
|
+
<summary>Brought to you with ♥️ love by <a href="https://emberjs.com" title="EmberJS">🐹 Ember</a></summary>
|
|
120
|
+
|
|
121
|
+
<style type="text/css">
|
|
122
|
+
img.project-logo {
|
|
123
|
+
padding: 0 5em 1em 5em;
|
|
124
|
+
width: 100px;
|
|
125
|
+
border-bottom: 2px solid #bbb;
|
|
126
|
+
margin: 0 auto;
|
|
127
|
+
display: block;
|
|
128
|
+
}
|
|
129
|
+
details > summary {
|
|
130
|
+
font-size: 1.1rem;
|
|
131
|
+
line-height: 1rem;
|
|
132
|
+
margin-bottom: 1rem;
|
|
133
|
+
}
|
|
134
|
+
details {
|
|
135
|
+
font-size: 1rem;
|
|
136
|
+
}
|
|
137
|
+
details > summary strong {
|
|
138
|
+
display: inline-block;
|
|
139
|
+
padding: .2rem 0;
|
|
140
|
+
color: #000;
|
|
141
|
+
border-bottom: 3px solid #bbb;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
details > details {
|
|
145
|
+
margin-left: 2rem;
|
|
146
|
+
}
|
|
147
|
+
details > details > summary {
|
|
148
|
+
font-size: 1rem;
|
|
149
|
+
line-height: 1rem;
|
|
150
|
+
margin-bottom: 1rem;
|
|
151
|
+
}
|
|
152
|
+
details > details > summary strong {
|
|
153
|
+
display: inline-block;
|
|
154
|
+
padding: .2rem 0;
|
|
155
|
+
color: #555;
|
|
156
|
+
border-bottom: 2px solid #555;
|
|
157
|
+
}
|
|
158
|
+
details > details {
|
|
159
|
+
font-size: .85rem;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@media (prefers-color-scheme: dark) {
|
|
163
|
+
details > summary strong {
|
|
164
|
+
color: #fff;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
@media (prefers-color-scheme: dark) {
|
|
168
|
+
details > details > summary strong {
|
|
169
|
+
color: #afaba0;
|
|
170
|
+
border-bottom: 2px solid #afaba0;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
</style>
|
|
174
|
+
</details>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warp-drive/memory-alpha",
|
|
3
|
-
"version": "5.10.0-alpha.
|
|
3
|
+
"version": "5.10.0-alpha.12",
|
|
4
4
|
"description": "WarpDrive knowledge packaged as plain markdown for AI coding agents (Claude Skills, MCP servers, Copilot/Cursor instruction files, etc.)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chris Thoburn <runspired@users.noreply.github.com>",
|
package/skills/_meta.json
CHANGED
|
@@ -64,10 +64,17 @@ checks CI runs on every PR, so a PR opened this way carries everything those che
|
|
|
64
64
|
| `:label: deprecation` | a new deprecation |
|
|
65
65
|
| `:label: doc` | a fix or improvement to guides or API docs |
|
|
66
66
|
| `:label: test` | new tests, or a refactor of existing tests |
|
|
67
|
-
| `:label: chore` | internal refactoring with no public API change worth calling out
|
|
67
|
+
| `:label: chore` | internal refactoring, or a fix scoped only to build tooling, lint/CI config, or other dev-experience-only code, with no public API or runtime-behavior change worth calling out |
|
|
68
68
|
| `:label: rfc` | a new RFC, or a change to one; see [Writing and Implementing RFCs](./writing-and-implementing-rfcs.md) |
|
|
69
69
|
| `:label: dependencies` | a dependency bump on `main` |
|
|
70
70
|
|
|
71
|
+
`:label: bug` is for a fix a consumer of the published packages could actually hit — a runtime
|
|
72
|
+
behavior change. A PR that only touches build/lint/infra/DX surfaces (a broken `turbo` task, a
|
|
73
|
+
flaky CI workflow, an eslint rule, a codemod script) is `:label: chore` even though you're
|
|
74
|
+
"fixing" something, because nothing in the published packages changes. Title that PR
|
|
75
|
+
`chore(scope): subject`, not `fix(scope): subject` — the bot in step 5 maps a `fix:`-typed
|
|
76
|
+
title straight to `:label: bug`, which would misfile it.
|
|
77
|
+
|
|
71
78
|
Add a target label only when the change needs to be backported: one `:dart:` label per
|
|
72
79
|
release channel — `:dart: beta`, `:dart: release`, `:dart: lts`, `:dart: lts-prev`.
|
|
73
80
|
Maintainers search these while releasing and remove each one once its backport PR is open.
|
|
@@ -50,18 +50,36 @@ last two bullets: the checks and the label.
|
|
|
50
50
|
of editing the draft themselves, so their preferences carry into the sections you haven't
|
|
51
51
|
written yet. Link the guide or symbol that owns a concept instead of re-explaining it.
|
|
52
52
|
5. Reader-test before you call it done. Hand the finished text, and only the text (for TSDoc, the
|
|
53
|
-
comment together with the signature it documents), to
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
the
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
comment together with the signature it documents), to one fresh agent instance per audience
|
|
54
|
+
the guide for this type of doc names, each with none of your conversation, run in parallel.
|
|
55
|
+
The guide's first-named audience is the primary one: fix whatever that reader gets wrong or
|
|
56
|
+
has to guess at, and fix a secondary reader's gap only when the fix is cheap, usually a link,
|
|
57
|
+
so the page does not drift toward nobody. If you can't spawn agents, ask the user to paste each
|
|
58
|
+
whole prompt, text included, into a fresh session and relay the answers. Each prompt has three
|
|
59
|
+
parts, and the first is the one that is easy to skip:
|
|
60
|
+
- Tell the agent who it is. Name its audience using one of the bold labels in
|
|
61
|
+
[Know Your Audience](/guides/contributing/writing-documentation/index.md#know-your-audience),
|
|
62
|
+
and say what that reader already knows and does not: an existing user reading API docs knows
|
|
63
|
+
the project's vocabulary but not the concept behind the thing this page documents; a hobbyist
|
|
64
|
+
reading a tutorial knows their own stack and nothing about ***Warp*Drive**. Without this the
|
|
65
|
+
agent judges every unexplained term as a gap, or none of them, and either answer is noise.
|
|
66
|
+
- Give it three to five questions that reader would bring to the text. For API docs, a
|
|
67
|
+
package's `src/index.md` landing page included, the question is always some form of "how do
|
|
68
|
+
I use this?"; if the answer requires opening the source, the doc is missing an example or a
|
|
69
|
+
link. For a README, ask whether the reader would install the package and what they would type
|
|
70
|
+
first. For a guide, ask what prior knowledge it assumes and whether that matches the audience
|
|
71
|
+
you named. For an `upgrading/` or `blog/` page, ask which version the page is written for and
|
|
72
|
+
whether a reader on a different version can tell.
|
|
73
|
+
- Ask it to say, for each answer, whether it came from the text, needed a guess, or could not
|
|
74
|
+
be answered, and to list the terms it did not know. Judge that list against the audience you
|
|
75
|
+
named, not against zero knowledge; a term the audience is assumed to know is not a gap.
|
|
62
76
|
6. Check, preview, then hand off:
|
|
63
77
|
- For API docs, every item in
|
|
64
78
|
[Content Standards](/guides/contributing/writing-documentation/writing-api-docs.md#content-standards),
|
|
79
|
+
including a `@summary` on each exported symbol or `@module` comment you add or touch that
|
|
80
|
+
owns an API page (not on class members), since it is that page's only `llms.txt`
|
|
81
|
+
description, per
|
|
82
|
+
[Give Each API Page a `@summary`](/guides/contributing/writing-documentation/writing-api-docs.md#give-each-api-page-a-summary),
|
|
65
83
|
and nothing private left in the published docs per
|
|
66
84
|
[Ignored Doc Comments](/guides/contributing/writing-documentation/writing-api-docs.md#ignored-doc-comments).
|
|
67
85
|
If you added `@internal` to an exported symbol, build that package (`pnpm --filter <pkg>
|
|
@@ -69,6 +87,15 @@ last two bullets: the checks and the label.
|
|
|
69
87
|
different fix.
|
|
70
88
|
- Every other type of doc a change touches is updated too: see the
|
|
71
89
|
[Cross-Documentation Checklist](/guides/contributing/writing-documentation/index.md#cross-documentation-checklist).
|
|
90
|
+
When that means moving prose out of a README, remove only the sections the other page now
|
|
91
|
+
owns. The README keeps everything
|
|
92
|
+
[README structure](/guides/contributing/writing-documentation/writing-api-docs.md#readme-structure)
|
|
93
|
+
lists: its introduction and, for a legacy package, the alert naming the replacement; the
|
|
94
|
+
install line and one elevator-pitch snippet, which the landing page is meant to repeat in
|
|
95
|
+
more depth; and every branding block, the tagline and the `♥️ Credits` block with its style
|
|
96
|
+
tag.
|
|
97
|
+
[Keep READMEs short](/guides/contributing/writing-documentation/writing-api-docs.md#keep-readmes-short)
|
|
98
|
+
says why.
|
|
72
99
|
- Run `pnpm lint:docs` from the repo root, then build and open the affected pages as described
|
|
73
100
|
in [Previewing Your Changes](/guides/contributing/writing-documentation/index.md#previewing-your-changes).
|
|
74
101
|
- Label the pull request `:label: doc` (see
|
|
@@ -77,7 +104,7 @@ last two bullets: the checks and the label.
|
|
|
77
104
|
|
|
78
105
|
## Gotchas
|
|
79
106
|
|
|
80
|
-
|
|
107
|
+
The first three are explained in the
|
|
81
108
|
[Docs Viewer README](https://github.com/warp-drive-data/warp-drive/blob/main/docs-viewer/README.md).
|
|
82
109
|
|
|
83
110
|
- A page added while `pnpm start` is running is served but missing from the sidebar until you
|
|
@@ -26,11 +26,18 @@ of any `emberjs/rfcs` number:
|
|
|
26
26
|
overwritten and can desync the two copies. Don't start `title` with "WarpDrive" — the sync bot
|
|
27
27
|
adds that prefix automatically for the `emberjs/rfcs` copy and its PR title, so a local title
|
|
28
28
|
that already has it would end up doubled there.
|
|
29
|
-
3.
|
|
29
|
+
3. Review the draft for terseness and conciseness before opening the PR, and again after every
|
|
30
|
+
edit to it. Reviewers, and later implementers, read an RFC to learn what the public behavior
|
|
31
|
+
will be and why; anything else in it costs them time and can drift from the implementation
|
|
32
|
+
that ships. Omit internal implementation details unless they affect observable public
|
|
33
|
+
behavior, and where they do, describe the effect in brief rather than the mechanism. Keep
|
|
34
|
+
historical exposition minimal: enough to motivate the change, not a chronicle of how the
|
|
35
|
+
current behavior came to be.
|
|
36
|
+
4. Open a PR labeled `:label: rfc` (see
|
|
30
37
|
[Pull Request Labeling](/guides/contributing/submitting-prs.md#pull-request-labeling) for the
|
|
31
38
|
PR mechanics). That label also triggers a docs-site PR preview so reviewers can read the
|
|
32
39
|
rendered RFC, not just the raw markdown diff.
|
|
33
|
-
|
|
40
|
+
5. Iterate on the PR like any other design discussion. Once there is team consensus to move
|
|
34
41
|
forward, merging the PR is what publishes the RFC — see the next section for what that
|
|
35
42
|
triggers.
|
|
36
43
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Read the Docs as Markdown
|
|
2
|
+
|
|
3
|
+
Use this skill whenever you need something from WarpDrive's guides, upgrade notes, or API
|
|
4
|
+
reference that no other skill covers: a concept, a config option, a signature, a deprecation.
|
|
5
|
+
The published site at `https://warp-drive.io` serves every page as plain Markdown, so you never
|
|
6
|
+
have to read or scrape its HTML.
|
|
7
|
+
|
|
8
|
+
## Steps
|
|
9
|
+
|
|
10
|
+
1. Fetch `https://warp-drive.io/llms.txt`. It is the table of contents: one absolute link per
|
|
11
|
+
page, grouped by section, with the page title as the link text and, where the page provides
|
|
12
|
+
one, a one-line description after a colon. Pick the one or two pages that match your task and
|
|
13
|
+
fetch only those.
|
|
14
|
+
2. Fetch the page. Every link in `llms.txt` already ends in `.md` and returns raw Markdown. To
|
|
15
|
+
reach a page from any other URL you were given, append `.md`:
|
|
16
|
+
`https://warp-drive.io/guides/the-manual/requests/builders` becomes
|
|
17
|
+
`https://warp-drive.io/guides/the-manual/requests/builders.md`. If the URL ends in `/`, drop the slash
|
|
18
|
+
first (`/guides/installation/` becomes `/guides/installation.md`) or append `index.md`; both
|
|
19
|
+
exist.
|
|
20
|
+
3. Resolve links inside a page against `https://warp-drive.io`. Cross-references in the Markdown
|
|
21
|
+
are root-relative and already end in `.md`, such as
|
|
22
|
+
`/guides/the-manual/schemas/resources/legacy-mode.md`, so following one is the same fetch with
|
|
23
|
+
no guessing. The `url:` line in each page's opening `---` block is the canonical URL to cite.
|
|
24
|
+
4. Read the site's Markdown extensions as what they render to:
|
|
25
|
+
- `:::tip`, `:::info`, `:::warning`, or `:::danger` through the closing `:::` is a callout box.
|
|
26
|
+
Text on the opening line is the box's title.
|
|
27
|
+
- `:::tabs` through `:::` holds alternatives. Each `== Label` line starts one tab. When the
|
|
28
|
+
labels are frameworks or package managers, read only the tab that matches the app you are
|
|
29
|
+
working in.
|
|
30
|
+
- `::: code-group` through `:::` is the same for code: the `[Label]` after each fence's
|
|
31
|
+
language names its tab.
|
|
32
|
+
- Comments like `// [!code focus]` or `// [!code ++]` inside a fence are highlighting hints for
|
|
33
|
+
the website. Ignore them; they are not part of the code.
|
|
34
|
+
5. Reach for `https://warp-drive.io/llms-full.txt` only when you need the whole corpus at once. It
|
|
35
|
+
concatenates every page, is a few megabytes, and each page in it opens with the same `---` /
|
|
36
|
+
`url:` block, so you can still tell which page a passage came from. `llms.txt` plus one page is
|
|
37
|
+
almost always enough.
|
|
38
|
+
|
|
39
|
+
Both `warp-drive.io` and `https://canary.warp-drive.io` are built from the repository's `main`
|
|
40
|
+
branch; canary is redeployed on every merge and production on demand, so canary may be newer.
|
package/skills/index.md
CHANGED
|
@@ -10,6 +10,7 @@ complete a task.
|
|
|
10
10
|
| Define a resource's shape — fields, relationships, identity — for the `Store` | `schemas/define-a-resource-schema.md` |
|
|
11
11
|
| Fetch or query remote data through the `Store` so it's cached and reactive | `requests/fetch-and-cache-data.md` |
|
|
12
12
|
| Re-record one holodeck mock, or review a test that sets `RECORD` | `holodeck/using-record.md` |
|
|
13
|
+
| Look up a guide, upgrade note, or API reference page that no row above covers — a concept, an option, a signature | `docs/read-the-docs-as-markdown.md` |
|
|
13
14
|
| You're contributing to WarpDrive itself, not just consuming it as a dependency | `contributors/index.md` |
|
|
14
15
|
|
|
15
16
|
Each skill file is self-contained for its task and links out to any other skill file it
|
package/skills/overview.md
CHANGED
|
@@ -19,6 +19,7 @@ Find the row below that matches what you're doing, or browse the categories in t
|
|
|
19
19
|
| Define a resource's shape — fields, relationships, identity — for the `Store` | [Define a Resource Schema](/skills/schemas/define-a-resource-schema.md) |
|
|
20
20
|
| Fetch or query remote data through the `Store` so it's cached and reactive | [Fetch and Cache Data](/skills/requests/fetch-and-cache-data.md) |
|
|
21
21
|
| Re-record one holodeck mock, or review a test that sets `RECORD` | [Use RECORD in Holodeck Mocks](/skills/holodeck/using-record.md) |
|
|
22
|
+
| Look up a guide, upgrade note, or API reference page that no row above covers — a concept, an option, a signature | [Read the Docs as Markdown](/skills/docs/read-the-docs-as-markdown.md) |
|
|
22
23
|
| You're contributing to WarpDrive itself, not just consuming it as a dependency | [Contributor Skills](/skills/contributors/index.md) |
|
|
23
24
|
|
|
24
25
|
This is the same routing table an AI agent uses to find a skill — it just links out to readable
|