Skip to content

docs content: links to objectstack-ai/spec — a second stale repository name — survive in two published blog posts and in docs.site.json #12366

Description

@os-zhuang

Measurement

The repository has been renamed at least twice, and links to both former names survive in the tree. All three names resolve to the same repository:

gh api repos/objectstack-ai/framework   --jq .id  →  1136691870
gh api repos/objectstack-ai/spec        --jq .id  →  1136691870
gh api repos/objectstack-ai/objectstack --jq .id  →  1136691870

framework is being fixed at its single producer in #12354 / PR #12364. spec is a separate, unrelated set of spellings, and it is the one this card is about.

Where objectstack-ai/spec still appears

Renders to visitors today:

file hits
content/blog/protocol-first-development.mdx 2
content/blog/metadata-driven-architecture.mdx 1

Inert config that spells a name nothing else spells — content/docs.site.json:

  • line 40 — themeConfig.socials[].url
  • line 63 — page.repoBaseUrl

Both have zero runtime consumers today: the only references to repoBaseUrl anywhere in the repo are gate scripts naming the file as a path-hint fixture. That is precisely why it is worth a card rather than a shrug — inert config carrying a wrong value is what someone wires up later, having reasonably assumed it was maintained.

Also present, and deliberately out of this card's scope unless the maintainer wants them in: CONTRIBUTING.md (3), docs/notes/airtable-dashboard-analysis.mdx, and the link-reference block at the bottom of the root CHANGELOG.md.

Prior art — read this before acting

docs/audits/2026-06-handwritten-docs-accuracy-followups.md:40 already flagged these links and declined to rewrite them. Whoever takes this card should read that entry and either follow its reasoning or say why it no longer applies — ⛔ do not re-litigate it from scratch, and do not silently overturn a recorded decision.

Why it matters

Every one of these costs a 301 today; none is broken. The reason to fix them is that a rename redirect is a signal that decays — GitHub keeps them only while the old name stays unclaimed — and because docs.site.json is a config file whose stale value is invisible until it is used.

Suggested scope

The two blog posts and docs.site.json. CONTRIBUTING.md, docs/notes/** and CHANGELOG.md are a maintainer call: CHANGELOG.md in particular is a historical record, and rewriting URLs inside past entries is not obviously right.

Source

Surfaced by the dev on #12354 while sweeping apps/docs/ for repository-name literals; the sweep was correctly held to apps/docs/ by its dispatch, and these hits are outside it. Every claim above was independently re-measured before filing.

Activity

  1. self-assigned this
    on Aug 26, 2026
  2. yinlianghui commented on Aug 26, 2026

    @yinlianghui
    Collaborator

    Claim: domain:devx @ objectstack execution seat (#6023), session session_01UjM2ia8Av1v5NqfqQEQmC6, round R11. Branch claude/issue-12366-stale-spec-repo-name.

    Premise re-verified by symptom on origin/main before dispatch — 5 sites across 3 files, positive control: 68 files under content/ use the correct objectstack-ai/objectstack spelling, so the reads are instrument-true.

    content/blog/metadata-driven-architecture.mdx:586   .../objectstack-ai/spec/issues
    content/blog/protocol-first-development.mdx:335     // github.com/objectstack-ai/spec
    content/blog/protocol-first-development.mdx:851     .../objectstack-ai/spec/issues
    content/docs.site.json:40                           "url": "https://github.com/objectstack-ai/spec"
    content/docs.site.json:63                           "repoBaseUrl": "https://github.com/objectstack-ai/spec"
    

    ⭐ One site is worse than the card describes, and it changes the card's priority in kind rather than degree. The card frames this as stale prose in published text. docs.site.json:63 is repoBaseUrl — a functional configuration value, not prose. If it feeds the docs site's "edit this page" / "view source" links, then every such link on the whole site points at the wrong repository, which is a live user-facing defect rather than a cosmetic one. :40 is likely a nav/footer link with the same property.

    Zone 2 for the dev, to falsify rather than inherit: I have not established what consumes repoBaseUrl. Read it out of the site code before deciding how to describe the fix — and if it turns out to be inert, say so with the evidence; that is a useful negative, not a failed dispatch.

    ⚠️ ⛔ Do not probe whether objectstack-ai/spec still exists by fetching it. This seat's GitHub scope is objectstack + objectui, and a 404 from outside that scope would be indistinguishable from a permissions refusal — it would be a reading your instrument cannot make. Decide the correct target from in-repo evidence (what the other 68 files spell, what the package metadata says).

    Serial-queue check: no open PR claims either blog post or content/docs.site.json. Distinct from #12469 (api/client-sdk.mdx), #12451 (api/environment-routing.mdx) and #12433 (deployment/cli.mdx), all live in this lane right now.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions