Skip to content

Commit 4ed6380

Browse files
hotlongclaude
andcommitted
docs(create-objectstack): re-anchor the dead tracker citations in packages/create-objectstack/src to the commits that decided them
Stage 11 of the domain:cli lane of the dead-citation sweep. 25 comment sites that cited a tracker number answering 404 now cite, in ruling C+D's form C, the commit in this repository's history that decided what the line describes: cec9d23 (the banner reads its own version), 8d21f7a (Next steps names the detected package manager), c27e160 (the boot-probe neighbour reports why it did not come up), fd75728 (the skills bundle is installed for one agent), 21756b3 (scaffold docs converge on the canonical host), cc986c9 (the escaping-relative-path MONOREPO_ONLY pattern), 4998efa (the blank template's CI workflow) and 675ab57 (the two benign peer skews are declared). Comments only; every file keeps its line count; no tracker number is added. Claude-Session: https://claude.ai/code/session_local_1d2a197c-c20e-4e90-9be8-413d4d432289 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 01e78dc commit 4ed6380

10 files changed

Lines changed: 25 additions & 25 deletions

‎packages/create-objectstack/src/banner-version.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright (c) 2026 ObjectStack contributors. Apache-2.0 license.
22
//
3-
// Pins #10325: the startup banner (`◆ Create ObjectStack …`) names the
3+
// Pins commit cec9d239d's fix: the startup banner (`◆ Create ObjectStack …`) names the
44
// version `create-objectstack`'s own package.json actually declares, not a
55
// hardcoded literal — the banner had said `v6.x` for eleven majors, the
66
// first line of output a newcomer ever sees.
@@ -14,7 +14,7 @@
1414
// 2. The three box lines still render to EQUAL display width with the
1515
// borders aligned, computed from PLAIN, ANSI-stripped text — a test
1616
// that only greps for the version string would still pass with the
17-
// right border pushed out of alignment (the #10322 defect class, one
17+
// right border pushed out of alignment (the defect class commit 8d21f7a76 fixed, one
1818
// function away in the same file: a box hand-kerned for one string
1919
// length, broken by a longer one).
2020
//

‎packages/create-objectstack/src/banner.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
* tests — see the comment above `rewriteProjectIdentity`) purely so the
88
* padding math has somewhere to be unit-tested without spawning a subprocess.
99
*
10-
* #10325: the banner used to hardcode `v6.x` — eleven majors stale — rather
10+
* Until commit cec9d239d the banner hardcoded `v6.x` — eleven majors stale — rather
1111
* than reading the version it already had a working reader for
1212
* (`readCliVersion()` in index.ts, already used by `.version()`). The naive
1313
* fix of dropping the real version string into the old literal would have
1414
* reintroduced the same defect class one line later: the box's borders are a
1515
* fixed run of `═` computed for a 4-character `v6.x`, and `v17.1.0` (7 chars)
1616
* would push the right border out of alignment without recomputing the pad
17-
* (the sibling bug in #10322, one function away in the same file — a box
17+
* (the sibling bug commit 8d21f7a76 fixed, one function away in the same file — a box
1818
* hand-kerned for `npm` broken by the one-character-longer `pnpm`).
1919
*/
2020

‎packages/create-objectstack/src/blank-readme-validate-disclosure.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright (c) 2026 ObjectStack contributors. Apache-2.0 license.
22
//
3-
// Pins #10322 part 3 — the substantive half, per triage: the generated
3+
// Pins the README half of commit 8d21f7a76 — the substantive half, per triage: the generated
44
// `AGENTS.md` calls `validate` the command you must never skip ("Never report
55
// a metadata change as done until `npm run validate` passes"), and the
66
// newcomer's primary doc, the blank template's own README, must name it where
@@ -47,7 +47,7 @@ describe('blank template README names `validate` at first touch (#10322)', () =>
4747
});
4848

4949
it('names one consistent package manager throughout — no bare npm mixed into a pnpm doc', () => {
50-
// #10322 part 1: pick one and say it everywhere. The blank template
50+
// The package-manager half of commit 8d21f7a76: pick one and say it everywhere. The blank template
5151
// already used pnpm consistently; this pin keeps it that way. Excludes
5252
// the `engines.pnpm` prose about pnpm-version floors living in
5353
// template-consistency.test.ts, and non-pm words like "npm" never occur

‎packages/create-objectstack/src/index.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ const program = new Command()
438438
// accurate "Next steps" instead of a guess: the probe is a read-only
439439
// `<pm> --version` check, so running it costs nothing even when there is
440440
// no install to drive. Previously "Next steps" hardcoded `npm` regardless
441-
// of which package manager actually ran (#10322) — a newcomer who just
441+
// of which package manager actually ran (fixed by commit 8d21f7a76) — a newcomer who just
442442
// watched `pnpm install` run was then told `npm run dev`.
443443
//
444444
// The probe reports WHY as well as WHAT. `npm` used to mean two different

‎packages/create-objectstack/src/scaffold-e2e-boot-probe.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ function said(r: Ran): string {
394394
* spells it — would hang until the harness timeout. Measured while writing this
395395
* file: every case sat at its 240s ceiling.
396396
*
397-
* ## Why this waits on the child's own word instead of on a clock (#19424)
397+
* ## Why this waits on the child's own word instead of on a clock (commit c27e16059)
398398
*
399399
* The wait this replaces was 80 `curl` probes 0.25s apart — exactly 20s — run
400400
* through `execFileSync('bash', …, { stdio: 'ignore' })` against a child
@@ -676,7 +676,7 @@ describe.skipIf(!RUNNABLE)('[#9779] scaffold-e2e.yml boot-and-probe blocks asser
676676
it('refuses a neighbour already answering the URL its loop accepts as proof', async () => {
677677
// The neighbour goes up FIRST and reports the port the kernel gave it,
678678
// so the script is rewritten around a port that is already held rather
679-
// than around one that merely tested free a moment ago (#19424).
679+
// than around one that merely tested free a moment ago (commit c27e16059).
680680
const n = await neighbour();
681681
const port = n.port;
682682
const script = stepScript(step).replaceAll('8080', String(port));
@@ -813,7 +813,7 @@ async function failedNeighbour(
813813
}
814814

815815
/**
816-
* The controls for the instrument above (#19424).
816+
* The controls for the instrument above (commit c27e16059).
817817
*
818818
* ⛔ A green suite is not evidence that a diagnostic works — only a
819819
* deliberately broken child is. Each case here breaks the neighbour a

‎packages/create-objectstack/src/scaffold-next-steps-pm.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// Copyright (c) 2026 ObjectStack contributors. Apache-2.0 license.
22
//
3-
// Pins #10322: the printed "Next steps" (and the install-failure remedy) must
3+
// Pins commit 8d21f7a76: the printed "Next steps" (and the install-failure remedy) must
44
// name the SAME package manager the run actually detected — never a
55
// hardcoded `npm` regardless of what ran. Before this fix, a newcomer whose
66
// install ran with `pnpm` was told to run `npm run dev` / `npm run validate`
7-
// afterwards — the third of the "three different answers" #10322 measured.
7+
// afterwards — the third of the "three different answers" commit 8d21f7a76 measured.
88
// `packages/cli/src/commands/init.ts`'s own "Next steps" already threads its
99
// detected `chosenPm` through; this file is the same contract for
1010
// `create-objectstack`.

‎packages/create-objectstack/src/scaffold-skills-single-copy.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright (c) 2026 ObjectStack contributors. Apache-2.0 license.
22
//
3-
// #16331 — a scaffolded project's FIRST `git add -A` must stage the skills
3+
// Commit fd75728bc — a scaffolded project's FIRST `git add -A` must stage the skills
44
// bundle exactly once, and a clone of that commit must yield readable
55
// `SKILL.md` files.
66
//

‎packages/create-objectstack/src/starter-comments-self-contained.test.ts‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
// would widen this suite's declared cross-package read radius to buy nothing.
3939
//
4040
// Assertion 3 only judges URLs already on the canonical origin; host
41-
// CONVERGENCE — is the origin the RULED one at all — is assertion 4 (#10990).
41+
// CONVERGENCE — is the origin the RULED one at all — is assertion 4 (commit 21756b325).
4242
// It could not have lived anywhere else: the published-readme-links gate
4343
// prescribes the same canonical origin, but its population is publishable
4444
// packages' PUBLISHED markdown, which never reaches this package's templates
@@ -47,7 +47,7 @@
4747
// `shippedFiles()` below is the one walker in the repo that already
4848
// enumerates exactly what a scaffold ships, so the host pin belongs here.
4949
//
50-
// ## A fifth `MONOREPO_ONLY` pattern, found while fixing #11022
50+
// ## A fifth `MONOREPO_ONLY` pattern, found while fixing the blank README (commit 21756b325)
5151
//
5252
// `blank/README.md` named "the ObjectStack framework repo" as the home of
5353
// `skills/` — a monorepo-only reference in PROSE rather than in one of the
@@ -69,7 +69,7 @@
6969
// project. `os create` shipped exactly that into a project README —
7070
// `[ObjectStack Documentation](../../content/docs)` — and assertion 1 read
7171
// the file, matched none of its five patterns, and reported it as a PASSING
72-
// row, which is worse than never having reported on it (#15150).
72+
// row, which is worse than never having reported on it (commit cc986c913).
7373
//
7474
// The sixth pattern closes that spelling. It is a pure regression guardrail:
7575
// this tree ships zero `../` of any kind today, so it catches nothing on the
@@ -88,7 +88,7 @@ const contentDocs = path.resolve(HERE, '..', '..', '..', 'content', 'docs');
8888
* Nothing is excluded — every shipped file is scanned. `blank/README.md` used
8989
* to carry a self-retiring entry here ("still carries an ADR identifier; owned
9090
* by another card") while its ADR-0097 reference and its unlinked "ObjectStack
91-
* framework repo" reference were another card's (#11022); both are gone now,
91+
* framework repo" reference were another card's; commit 21756b325 removed both,
9292
* so the retirement fired as designed and this map goes back to empty rather
9393
* than staying around as a silent exemption over the most-read file in the
9494
* tree.
@@ -119,7 +119,7 @@ const MONOREPO_ONLY = [
119119
{ label: 'a bare issue number', re: /(^|[^\w/])#\d{3,6}\b/ },
120120
{ label: 'a repo build-script path', re: /\bscripts\/[\w.-]+\.(?:mjs|mts|cjs|ts|js)\b/ },
121121
{ label: 'a monorepo package path', re: /\bpackages\/[a-z0-9][\w-]*\//i },
122-
// #11022: `blank/README.md` named "the ObjectStack framework repo" as the
122+
// Added by commit 21756b325: `blank/README.md` named "the ObjectStack framework repo" as the
123123
// home of `skills/`, unlinked — a reader with only their own scaffolded
124124
// project has no way to reach it. The first four patterns are syntactic
125125
// identifiers (an ADR id, an issue number, a repo-relative path); this one
@@ -130,15 +130,15 @@ const MONOREPO_ONLY = [
130130
// "a monorepo root" (`blank/pnpm-workspace.yaml`), which is a correct,
131131
// self-contained, followable statement about a directory they do have.
132132
{ label: 'a reference to the ObjectStack repo as an unlinked location', re: /\bObjectStack (?:framework )?(?:mono)?repo\b/i },
133-
// #15150: the five patterns above are all spelled ABSOLUTELY — a
133+
// Added by commit cc986c913: the five patterns above are all spelled ABSOLUTELY — a
134134
// repo-rooted path, an identifier, or a name. This one is the same class of
135135
// unfollowable reference written RELATIVELY, as a path that climbs out of
136136
// the project the reader actually has. A scaffolded project has no parent
137137
// directory to climb into, so `../../content/docs` resolves nowhere for
138138
// them however faithfully it describes this monorepo.
139139
//
140140
// Anchored on `../`, deliberately NOT on `./`, and deliberately not on the
141-
// depth judgement #15150 proposed (`check:cross-package-test-inputs`-style
141+
// depth judgement commit cc986c913 set aside (`check:cross-package-test-inputs`-style
142142
// "the shallowest point a path reaches"). In THIS population the two give
143143
// the same answer, for a measured reason: every relative reference the
144144
// shipped tree carries is `./`-anchored and points DOWNWARD from the file
@@ -218,7 +218,7 @@ describe('shipped template comments are followable by a stranger', () => {
218218
],
219219
},
220220
{
221-
// #11022's two rewrites (ADR-0097 -> a public docs link; "the ObjectStack
221+
// Commit 21756b325's two rewrites (ADR-0097 -> a public docs link; "the ObjectStack
222222
// framework repo" -> the followable install form) are RATIONALE entries
223223
// too, for the same reason blank/objectstack.config.ts and
224224
// note.object.ts already are: assertions 1/3/4 only ever check that
@@ -280,7 +280,7 @@ describe('shipped template comments are followable by a stranger', () => {
280280
});
281281

282282
// ── assertion 4: no non-canonical docs host ships into a project ────────
283-
// #10990: three shipped lines cited `objectstack.com` (not even a
283+
// Fixed by commit 21756b325: three shipped lines cited `objectstack.com` (not even a
284284
// redirecting alias — a different, wrong domain) or `docs.objectstack.ai`
285285
// (an accepted-but-unratified alias per the published-readme-links gate's
286286
// DOCS_HOSTS) instead of the ruled canonical origin (maintainer ruling,

‎packages/create-objectstack/src/template-ci-workflow.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright (c) 2026 ObjectStack contributors. Apache-2.0 license.
22
//
3-
// The bundled template's own CI workflow (#16330).
3+
// The bundled template's own CI workflow (commit 4998efa71).
44
//
55
// The scaffolder already creates a `.github/` directory at runtime — for one
66
// file, `copilot-instructions.md` — while the template's gates (`validate`,

‎packages/create-objectstack/src/template-consistency.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ describe('templates survive npm packing', () => {
373373
expect(rules).toContain('.env');
374374
});
375375

376-
// The first dot-DIRECTORY the template has ever carried (#16330). The set
376+
// The first dot-DIRECTORY the template has ever carried (commit 4998efa71). The set
377377
// comparison above already covers it, but it names nothing: a strip of
378378
// `.github` would read there as "some file went missing". Naming the path
379379
// literally, the way the .dockerignore case below does, is what makes the
@@ -495,7 +495,7 @@ describe('blank template pnpm build approvals (#3119)', () => {
495495

496496
// A brand-new scaffold's very first `pnpm install` reported two unmet peers —
497497
// on the one screen where a newcomer is deciding whether this project is solid,
498-
// with nothing they did to cause it and nothing they can do about it (#10326).
498+
// with nothing they did to cause it and nothing they can do about it (until commit 675ab574e).
499499
// Both are third-party ranges we cannot edit, so the declaration is pnpm's
500500
// scoped `allowedVersions`, and it has to travel INSIDE the scaffold: a
501501
// `peerDependencyRules` block in this repo's own pnpm-workspace.yaml would not

0 commit comments

Comments
 (0)