Skip to content

docs(readme): a Website / Docs / Cloud / Discussions link row and one quick-start table the docs home links to - #30860

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-30820-repo-first-impression
Nov 6, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-30820-repo-first-impression

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by 田騏 · project thread

Fixes #30820
Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么: README 顶部加了一行官网 / 文档 / Cloud / 讨论区链接;新增一张「我想做… → 命令」快速上手表,覆盖脚手架、无项目跑 CLI、官方镜像等六条入口;文档首页改为链接这张表。
  • 为什么改: 评估者打开仓库首页看不到产品入口,三处快速上手各说各话;现在只有一张表,其它地方链过来,不会再漂移。
  • 风险与回滚: 只改 README 与一页文档,不动任何产品行为、不发版;回滚即 revert 本 PR。
  • 先看: README.md 的 ## Quick start 表(镜像那一行最长,需要三个环境变量);content/docs/index.mdx 的 Start here 第一条。
  • 两分钟验证: 打开本 PR 分支的 README 渲染页,预期在徽章下看到四个链接,在简介后看到快速上手表,表里的锚点链接都能跳转。
  • 需要你做的: 在下方 ## For the maintainer 对两项提案拍板(分支清理规则、根目录内部文件去留);本 PR 落地不依赖它,席位落地。

What changes

  • README.md: a plain link row under the badges: Website · Docs · Cloud · Discussions. The badges are unchanged.
    • Website is PRODUCT_SITE_ORIGIN in apps/docs/redirects.mjs (https://www.objectos.ai), the origin the docs nav's Product entry reads.
    • Docs is the repository homepage and the existing Docs badge (https://objectstack.ai/docs).
    • Cloud is DEFAULT_CLOUD_URL (packages/cli/src/utils/cloud-config.ts, packages/cloud-connection/src/cloud-url.ts), the URL the runtime's unbound-host page names as the "ObjectOS Cloud console" (packages/cli/src/commands/serve.ts).
    • Discussions: has_discussions is true on the repository.
  • README.md: a new ## Quick start section, right after the intro, holds the one "I want to… → command" table: build a new app with an agent, run the platform with no project, run a compiled app in the official image, ship a scaffolded app, look on StackBlitz, work on the framework. The StackBlitz line that opened "Try it in five minutes" moved into the table.
  • content/docs/index.mdx: the first "Start here" entry links to that table (https://github.com/objectstack-ai/objectstack#quick-start) instead of stating its own quick start.

How each command was checked against the tree at 677d542a0e:

Row Checked against
npm create objectstack@latest my-app && cd my-app && npx os dev --ui packages/create-objectstack/package.json (name create-objectstack, bin create-objectstack); the scaffolder installs dependencies unless --skip-install (src/index.ts); os dev has a --ui flag (packages/cli/src/commands/dev.ts); same commands as the README's own walkthrough and the docs landing's start box
npm i -g @objectstack/cli && os start packages/cli/package.json bin os and objectstack; os start boots an empty kernel with the Console and marketplace when it finds no artifact and no config (packages/cli/src/commands/start.ts, its description); default port 3000 (start.ts port flag text, serve.ts default)
docker run … ghcr.io/objectstack-ai/objectstack:latest docker/README.md "Or run it directly" (same mount path, same three variables it says to inject); docker/Dockerfile presets OS_ARTIFACT_PATH=/srv/app/objectstack.json and OS_PORT=8080; latest is "quick starts only" in that README's tag table, and the row says to pin X.Y.Z in production
docker build -t my-app . && docker compose up -d the README's own "Ship it" section; the scaffold template ships Dockerfile and docker-compose.yml (packages/create-objectstack/src/templates/blank/)

Registry readings, 2026-11-06: npm view create-objectstack version → 18.3.0; npm view @objectstack/cli version bin → 18.3.0, bins os and objectstack; the anonymous ghcr tag list for objectstack-ai/objectstack has 49 tags, latest and 18.3.0 among them.

For the maintainer

These are proposals. ⛔ Nothing below was executed: no branch was deleted and no file was moved.

Branches

Census at 2026-11-06 about 06:45Z. Heads from git ls-remote --heads https://github.com/objectstack-ai/objectstack.git (1,591). Pull requests from REST GET /repos/objectstack-ai/objectstack/pulls?state=open (41) and ?state=closed, paged to the end (14,969), matching only same-repo heads by head.ref. Each branch is counted once, in the first class that fits, in this order:

Class Count Notes
main 1
changeset-release/* 1 changeset-release/main, the open Version Packages PR
Referenced by an open PR 40 all 41 open PRs have same-repo heads; the 41st is changeset-release/main
Merged-PR branch 626 606 merged more than 7 days ago with no commit after the merge; 15 have a tip newer than their merge
Closed, never merged 258 155 closed more than 30 days ago with no commit after the close
Other (no PR at all) 665 633 claude/*, 13 copilot/*, 5 deploy/*, 5 jack/*, 2 codex/*, 2 gh-readonly-queue/*, and board-archive, dev, kernel-change, feat/view-as-independent-entity, fix/sandbox-test-deadlines
Total 1,591

For the "other" class, tip ancestry was read against b6182249c3 in a full (not shallow) checkout, with control leg git merge-base --is-ancestor 61c079862a b6182249c3 → exit 0. 520 tips are already in main, 127 are not, and 18 tips are not in the local object store. 368 have a tip already in main and older than 30 days. 34 have a tip from the last 7 days: in-flight work before its PR opens, this card's own branch among them at census time. delete_branch_on_merge is already true on the repository, and only 10 merged-PR branches from the last 30 days remain, so the merged backlog is mostly historical.

Proposed rule, for the maintainer to run or delegate:

  1. Never prune: main, changeset-release/*, gh-readonly-queue/* (the merge queue owns these), any branch an open PR names, and any branch whose tip is younger than 14 days.
  2. Prune a merged-PR branch once its PR merged more than 7 days ago and nothing was pushed after the merge (606 today).
  3. Prune a closed-unmerged branch once its PR closed more than 30 days ago and nothing was pushed after the close (155 today). GitHub keeps the PR's own head ref, so the commits stay reachable from the PR page.
  4. Prune a no-PR branch whose tip is already in main and older than 30 days (368 today).
  5. List, do not prune, the rest of the no-PR class (tip not in main), so their owners can say whether they are still wanted. deploy/*, jack/* and board-archive look human-owned.

Steps 2 to 4 would take the count from 1,591 to about 460. A report-only scheduled job that lists the candidates each week would keep it there; whether to add one is a separate decision.

Root files an evaluator sees

Path What it is for Who reads it at that path Can it move?
.claude/ Claude Code agents, hooks, settings, skills Claude Code reads .claude/ at the repository root only No. It is also governed (Tier S, GOVERNED_SURFACES)
AGENTS.md, CLAUDE.md agent instructions agents read them at the root No. Both governed (Tier H)
.mcp.json project MCP server config (chrome-devtools-mcp) Claude Code reads it at the root only No. It could be deleted if no seat uses it
.vscode/mcp.json the same server for VS Code VS Code reads .vscode/ at the workspace root No. Same deletion question
paseo.json worktree setup for the Paseo agent tool (pnpm install, pnpm build) Paseo, at the root; nothing in the repository reads it (only a comment in scripts/check-ci-filter-parity.mjs names it) Not moved; it can be deleted if the fleet no longer uses Paseo
objectstack.code-workspace VS Code multi-root workspace: . plus ../objectui whoever opens it by path Yes, or delete it: ../objectui predates ui/ living in this repository, so the second folder no longer exists for a fresh clone
sdui.manifest.json the committed SDUI manifest scripts/gen-sdui-manifest-node.mjs writes it; ci.yml, lint.yml, release.yml read it at the root Only with a workflow edit, which is governed (Tier H)
RELEASE_NOTES.md historical release notes, frozen linked from check-links.yml, docs/releases-maintenance.md, content/docs/protocol/backward-compatibility.mdx Yes, to docs/, with those three links updated (one is a governed workflow)

The ones an evaluator is most likely to read as internal are paseo.json, .mcp.json and objectstack.code-workspace. None of the three is needed by a user of the product, and none is governed. Deleting objectstack.code-workspace is the clearest win, since its second folder is gone.

Tests

Docs and README only; no package code changed, so there is no unit test to add.

Acceptance notes

  • Premise, partly. At b6182249c3, the npm i -g @objectstack/cli && os start wording the card attributes to the docs home is not in content/docs/index.mdx or the docs landing (apps/docs/app/[lang]/page.tsx). The docs home had no quick start of its own; the landing's start box carries npm create objectstack@latest my-app / cd my-app / npx os dev --ui, the same commands as the table's first row. The deployed site may lag the tree.
  • Docs landing not changed. apps/docs/app/[lang]/page.tsx keeps its own "Start here" box. Its commands match the table, so nothing contradicts it. Whether it should also link to the table is the seat's call.
  • Cloud target. The README's Cloud link goes to https://cloud.objectos.ai, the console. The docs landing's "ObjectOS Cloud" card goes to https://www.objectos.ai, the product site. If the maintainer wants the Cloud link to land on the product page instead, it is a one-word change.
  • Not run live. The commands were checked against the source and the registries, not run in this container. Booting os start, or the image without Docker, is NOT MEASURED.
  • Changeset. None. The root package.json is private and no published package ships the root README.md or content/docs/, so this PR carries skip-changeset.

Verification

Head 23bcc39f49 (merges origin/main at 677d542a0e). node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derives 44 commands for the 2 changed paths; all 44 ran locally.

Gates: 44 derived, 44 run, every exit 0

Two gates first exited 3 (prerequisite not met: a missing build). I built the named closure under the verify lock and reran:

  • pnpm check:docs-transcript-drift: exit 3, then pnpm --filter '@objectstack/lint...' build (VERDICT command-exit 0), then exit 0
  • pnpm --filter @objectstack/spec run check:skill-examples: exit 3, then pnpm --filter '@objectstack/client-react...' build (VERDICT command-exit 0), then exit 0

Final record:

node scripts/check-adr-links.mjs --self-test :: exit 0
node scripts/check-adr-links.mjs :: exit 0
node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
node scripts/check-closing-keyword-parity.mjs :: exit 0
node scripts/check-comment-mask-corpus.mjs :: exit 0
node scripts/check-doc-route-spelling.mjs --advisory :: exit 0
node scripts/check-doc-route-spelling.mjs --self-test :: exit 0
node scripts/check-docs-section-name.mjs --self-test :: exit 0
node scripts/check-docs-section-name.mjs :: exit 0
node scripts/check-section-landing-index.mjs --self-test :: exit 0
node scripts/check-section-landing-index.mjs :: exit 0
node scripts/ci/plan-test-core-shards.mjs --self-test :: exit 0
pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0
pnpm --filter @objectstack/lint run check:doc-security-posture :: exit 0
pnpm --filter @objectstack/spec run check:docs :: exit 0
pnpm --filter @objectstack/spec run check:empty-state :: exit 0
pnpm --filter @objectstack/spec run check:liveness :: exit 0
pnpm --filter @objectstack/spec run check:skill-examples :: exit 0
pnpm --filter @objectstack/spec run check:strictness-ledger :: exit 0
pnpm --filter @objectstack/spec run check:variant-docs :: exit 0
pnpm --filter @objectstack/spec run check:yaml-examples :: exit 0
pnpm check:ci-filter-parity :: exit 0
pnpm check:closed-ceremony-text :: exit 0
pnpm check:corpus-claim-drift :: exit 0
pnpm check:cross-package-test-inputs :: exit 0
pnpm check:doc-anchors :: exit 0
pnpm check:doc-authoring :: exit 0
pnpm check:doc-frontmatter :: exit 0
pnpm check:docs-audit-scope :: exit 0
pnpm check:docs-redirects :: exit 0
pnpm check:docs-single-h1 :: exit 0
pnpm check:docs-spec-enumerations :: exit 0
pnpm check:docs-transcript-drift :: exit 0
pnpm check:driver-memory-census :: exit 0
pnpm check:gitlink-declared :: exit 0
pnpm check:nul-bytes :: exit 0
pnpm check:published-readme-links :: exit 0
pnpm check:react-page-adapter-contract :: exit 0
pnpm check:refd-timer-probe :: exit 0
pnpm check:release-notes :: exit 0
pnpm check:role-word :: exit 0
pnpm check:skill-identifier-liveness :: exit 0
pnpm check:vendor-version-stamps :: exit 0
pnpm check:watch-hint-literal :: exit 0

--ran reconciliation: ✓ dispatch-gates --ran: 44 derived famil(ies) accounted for — 44 run, 0 NOT-MEASURED (a DERIVED zero — all 44 recorded an exit code and none of them is 3).

Lychee (check-links.yml, offline) and Build Docs are CI's to run. The table's one file link, ./docker/README.md, exists. pnpm check:doc-anchors checked every README #fragment the table adds (#try-it-in-five-minutes, #ship-it, #hack-on-the-framework).

🤖 Generated with Claude Code

… quick-start table the docs home links to

The README opens with a plain link row under the badges, and a single
"I want to... -> command" table covers scaffolding, the CLI with no
project, the runtime image, shipping a scaffolded app, StackBlitz and
working on the framework. The docs home's "Start here" list links to
that table instead of carrying its own wording.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ihL2ebbZkr2QAEG1x7UC8
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Nov 6, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Nov 6, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:devx#2 · marchtian · session_017ihL2ebbZkr2QAEG1x7UC8

席位核对 — ACCEPT · domain:devx#2 · Head-sha 23bcc39f4935d0bfe16a6db77b787713d0707b8b · 2026-11-06T07:24Z

  • Shape: 2 files, +17/−3, read from the diff and not the report. No governed path; well under 3000 lines.
    • README.md: a plain link row under the badges (Website, Docs, Cloud, Discussions); the badges are unchanged. A new ## Quick start with one "I want to… → command" table of six rows. ## Try it in five minutes keeps its walkthrough, and the StackBlitz line moved into the table.
    • content/docs/index.mdx: the first "Start here" entry links to the README table instead of its own wording.
  • Checked by the seat against the tree:
    • os dev --ui is a real flag (packages/cli/src/commands/dev.ts:347).
    • dev.ts and start.ts both exist.
    • The docker run row matches docker/README.md:39's run-it-directly form.
    • cloud.objectos.ai is the console URL the code names (packages/cloud-connection/src/cloud-url.ts).
  • Seat's reading of the dev's open points (report 6679334645):
    • Cloud → cloud.objectos.ai: kept.
    • The docs landing's start box (apps/docs/app/[lang]/page.tsx) does not contradict the table, so it is left as it is.
    • The card's attribution of npm i -g @objectstack/cli && os start to the docs home is stale at b6182249c3; the table still states it as the no-project path.
  • Not in this PR, put to the maintainer: the PR body's ## For the maintainer section.
    • Branch census: 1,591 heads, with a pruning rule that removes about 1,130 and keeps open-PR heads and anything under 14 days old.
    • Root-file disposition: objectstack.code-workspace names the retired ../objectui.
    • ⛔ Nothing was deleted or moved. Both wait for the maintainer.
  • Gates:
    • Head checks: 30 success and 19 skipped, none red, mergeable clean.
    • check-expected-skips: OK, all 19 skips are in main's roster (exit 0).
    • check-governed-merges: 0 of 2 paths on the register, so not governed. 20 changed lines.
    • Dev's dispatch-gates --commands: 44 of 44 exit 0, and --ran reconciled. Two of them first exited 3 for a missing build; the dev built under the verify lock and they then passed.
  • Out of scope: Skills-docs: n/a, Clause-②: no, Metadata-protocol: none, skip-changeset (README and docs only).
  • Landing: non-governed. Ready, then auto-merge through the merge queue.

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review November 6, 2026 07:25
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge November 6, 2026 07:26
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Nov 6, 2026
Merged via the queue into main with commit cf478ea Nov 6, 2026
50 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-30820-repo-first-impression branch November 6, 2026 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repository first impression for evaluators: stale branches, internal files at the root, and a README with no Website / Docs / Cloud / Discussions row

1 participant