Commit db76982
docs(spec): publish the solution-blueprint module header instead of its export list (#16992)
* docs(spec): let the solution-blueprint module header speak for itself
`findModuleDocBlock()` rejects a header-zone doc block that is immediately
followed by a declaration — TSDoc's own attachment rule, read back: such a
block documents that symbol. In `ai/solution-blueprint.zod.ts` a single blank
line separated the module header from `const SNAKE_CASE`, so the header was
read as that regex constant's documentation and disqualified. The generators
then fell through to the export-list fallback, and the published skill-index
row stated a true fact about the file while saying nothing about its subject:
- `.../ai/solution-blueprint.zod.ts` — Exports: BlueprintConditionSchema, ...
Give `SNAKE_CASE` the one-line doc it always deserved. That is a comment, not
a declaration, so the preamble now ends there and the header — plan-first
authoring, the `apply_blueprint` expansion — becomes the module's own block.
The selector is untouched: it was deciding correctly under its own rule.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
* test(spec): pin the blueprint pointer row to its subject, and regenerate
The published row and the reference page both regain the file's own sentence:
- `.../ai/solution-blueprint.zod.ts` — Solution Blueprint Schema (ADR-0033 §4 — plan-first authoring)
Neither generator can see this class on its own — `check:skill-refs` and
`check:docs` compare the artifact against the generator, and the generator
reproduces the selector faithfully, so a generator-only check passes on the
defect. The pin asserts the fact the artifact must state instead.
Two legs that fail differently: the SOURCE leg reds the moment the separator
between the header and `SNAKE_CASE` goes away; the CORPUS leg stays green
through that and reds once an index is regenerated from a file whose header no
longer qualifies. Both directions measured.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
* chore(spec): declare the new pin's escaping reads, and add the changeset
The pin reads `skills/*/references/_index.md` — outside its own package — so it
belongs in `vitest.repo-tests.json` and runs under the `repo` project, whose
hash moves with what it actually reads. Left undeclared it would run under
`@objectstack/spec#test`, invisible to both the affected-subset filter and the
turbo cache: green on every PR while red on main, which is the one failure this
pin exists to refuse.
`packages/spec` ships `src/**/*.zod.ts`, and `npm pack --dry-run` confirms the
edited source is in the tarball (206 such entries ship; scripts/, skills/ and
content/ ship none), so the change publishes and takes a patch changeset.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
* chore(spec): move the pointer-row pin to its own branch
The pin and its `vitest.repo-tests.json` declaration are a change to
`packages/spec/scripts/`, i.e. to the generator side of this repo. Carried here
they defeat the generated-artifact exception that would otherwise lift the
`skills/**` path on this PR: the recompute that certifies the regenerated index
would be running a tree that also modifies the generator it is trusting, so it
cannot certify itself.
What is left here is a pure `gen:skill-refs` / `gen:docs` regeneration beside
the one-line source fix. The pin lands separately and is not weakened.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 2fd714f commit db76982
4 files changed
Lines changed: 39 additions & 1 deletion
File tree
- .changeset
- content/docs/references/ai
- packages/spec/src/ai
- skills/objectstack-ai/references
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
8 | 22 | | |
9 | 23 | | |
10 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
0 commit comments