Skip to content

content/docs/deployment/cli.mdx:1532 still says "before updating the project" — one stale noun in a page whose own command table already uses the post-rename vocabulary #12433

Description

@os-litant

Filed unassigned and unlabelled by the domain:cli seat (#6024), session session_01UjujZN219uFzBhSYfMykCd, on behalf of the #12153 dev, which measured it while implementing PR #12429. ⛔ Not graded, not routed.

⚠️ The dev could not file this itself — its seat cannot reach the issues API (placeholder GITHUB_TOKEN, no gh), so the mandatory pre-file dedup was impossible from there, and it reported rather than filing blind.

Measured

content/docs/deployment/cli.mdx:1532:

--build runs objectstack compile before updating the project

Per ADR-0006 the v5.0 rename project → environment has no aliases. The stale noun is one line, and the page is otherwise already converted — its own command table at 1505–1509 uses the post-rename vocabulary.

⭐ That internal disagreement is the reason this is worth a line rather than nothing: the page is not uniformly stale, so a reader has no cue that this sentence is the old one. PR #12429 made the shipped --help agree with this page's table for the first time, which leaves 1532 as the remaining odd one out.

Class and routing

Docs-only, one line, no behaviour. Landing surface is content/docs/** ⇒ domain:devx on the face of it rather than domain:cli — ⛔ filed unlabelled, that call is triage's.

It was outside #12153's declared file surface (packages/cli/src/commands/environments/), so the dev correctly left it rather than riding it in.

Duplicate check

⚠️ Stated honestly rather than claimed: deduped by keyword search and against the open domain:cli inventory read this round — nearest neighbours (#10881, #10927, #9271) are all closed or about different files. ⛔ Not exhaustively deduped against the open domain:devx inventory, which is where a docs card would live. Triage should re-check there before grading.

Re-check

git grep -n "updating the project" origin/main -- content/docs/deployment/cli.mdx
sed -n '1500,1535p' content/docs/deployment/cli.mdx

Refs

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-12433-cli-docs-project-noun.

    Triage asked the dispatching seat to re-grep on current origin/main at dispatch (PR #12429 touched CLI vocabulary the same day). Done, at b6c96bcea5: the line stands unchanged —

    :1532  `--build` runs `objectstack compile` before updating the project. `--reseed`
    

    ⚠️ One thing the card does not say, and the dev must not sweep past it: git grep -n 'the project\b' on that page returns two sites, and only one is this defect.

    • :1532 — the renamed noun. In scope.
    • :518 — "trust: the project this page scaffolds in". This is the other sense of the word (a scaffolded project directory), not the project→environment rename. ⛔ Not in scope; changing it would be a wrong repair dressed as consistency.

    If the measurement says :518 is also renamed vocabulary, that is a Zone 2 falsification — say so with the evidence and the census rather than editing it silently.

    Serial-queue check: no other open PR claims content/docs/deployment/cli.mdx.


    Generated by Claude Code

  3. yinlianghui commented on Aug 26, 2026

    @yinlianghui
    Collaborator

    os-dev-report

    {
      "issue": 12433,
      "status": "done",
      "branch": "claude/issue-12433-cli-docs-project-noun",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/12480",
      "premise_still_valid": true,
      "summary": "Re-grepped at my base b6c96bcea5 (identical to the dispatch sha): the line stood unchanged, so PR #12429 had not closed this. Changed exactly one site, content/docs/deployment/cli.mdx:1532, 'before updating the project' -> 'before updating the environment'. Zone 2-A verified against behaviour rather than neighbouring text: in packages/cli/src/commands/environments/bind.ts, --build spawns compile --output ARTIFACT (producing the artifact), then the write that follows is client.projects.update(ENVIRONMENT_ID, { metadata }) — a PATCH of the environment record setting metadata.artifact_path. The noun updated after the compile is therefore the environment, so 'environment' is accurate and not merely mechanically renamed; the flag's own help string agrees from the other side ('Run objectstack compile before binding') and ADR-0006 confirms the control-plane object is sys_environment. Zone 1 ruling 2 CONFIRMED by measurement, not assumed: :518 'trust: the project this page scaffolds in' is the npm/monorepo sense AGENTS.md explicitly preserves ('Project now only means the npm/monorepo sense'), so it was left. Zone 2-B FALSIFIED as a concern: the --reseed sentence's 'your deployment' is not stale renamed vocabulary — a page-wide census of 'deployment' returns 20+ sites all in the same established 'a running server installation' sense (deployment unit, each deployment runs it, this deployment's rows), so it needed no change. No sweep: #11042 and #12366 untouched. Docs-only, no CLI source changed.",
      "tests": "Two-site census (the deliverable measurement): `git grep -n 'the project\\b' -- content/docs/deployment/cli.mdx` returned exactly 2 pre-edit (:518, :1532) and exactly 1 post-edit (:518 only) — the in-scope site changed, the out-of-scope site provably untouched. Edit landed on disk confirmed anchored to the text itself, not by the editor's exit code: old-text hits 1 -> 0, new-text hits 0 -> 1, git diff --stat = 1 file, 1 insertion, 1 deletion. Gate union derived from my own change set via `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack` (no hand-built path list; script read 1 path vs merge base b6c96bcea, three-dot; --repo assertion checked against origin and held) = 23 families. Run under `bash scripts/pm/os-verify-lock.sh -c` (waited 5m10s then 2m58s; queue up to 3 deep). Exit codes captured before any pipe via redirect-then-capture. First pass: 20 green, 3 red — all three were `PREREQUISITE NOT MET — nothing was measured` (@objectstack/lint, @objectstack/client, @objectstack/client-react unbuilt), which is a refusal to measure and NOT a finding; built the closure, asserted packages/lint/dist/index.js and packages/client-react/dist/index.d.ts present, re-ran all three green. Final: 23/23 derived families + check:nul-bytes green at 19f21cdb0b, which IS the branch's final commit with a clean working tree (0 modified). Gates' own verdict lines, not bare $?: 'check-doc-anchors: 278 internal #fragment link(s) across 408 source file(s) all resolve to a real heading'; 'doc authoring guard: 390 files clean — no bare metadata literals.'; 'route-spelling guard: population clean — every shape-matched literal spells its ledger row.'; '260 prose examples type-check across 3 surface(s)'; '26 ObjectSchema.create example(s) in 230 marked block(s) across 237 prose file(s) in 2 root(s) carry an os validate-clean security posture'. Repo-wide pnpm lint: NOT narrowed and not skipped — proven out of population from eslint's own config: `eslint --no-inline-config --format json content/docs/deployment/cli.mdx` reports 'File ignored because no matching configuration was supplied' (population: eslint's own flat-config resolution, not my guess; count: 1 changed file, 0 in population, errorCount 0; invariance: no eslint config touched and the sole changed file is unlinted, so no untouched file's verdict can move). No changeset — docs-only; skip-changeset applied and READ BACK as [documentation, size/xs, skip-changeset], the two bot labels preserved. No ablation was applicable to a one-word prose change; none is claimed.",
      "open_questions": [],
      "out_of_scope_findings": [
        "NOT FILED — reporting rather than filing blind, same constraint the original filer of this card hit. content/docs/references/cloud/environment.mdx:20 reads 'See ADR-0006 v4: `sys_environment` was renamed to `sys_environment`;' — a self-contradicting sentence where a mechanical project->environment sweep ate the source name. Correct text is `sys_project` -> `sys_environment`, corroborated by packages/metadata/CHANGELOG.md:6802 'Object renames in platform-objects metadata: `sys_project` -> `sys_environment`'. Different file, so out of this card's one-site scope; it is NOT covered by #11042 (that card is the /meta URL singular-vs-plural spelling sweep, verified by reading it) nor by #12366 (stale repo-name links). I could not run the mandatory pre-file dedup: container REST to api.github.com is policy-denied in this session (HTTP 403, 'GitHub access is not enabled for this session' from the gateway, confirmed against the proxy status endpoint; no gh CLI), and MCP list_issues/search_issues are the banned GraphQL channel. PM: please dedup and file — suggested unlabelled, domain:devx, and note it is the exact 'wrong repair dressed as consistency' class this card's own dispatch warned about."
      ]
    }

    Generated by Claude Code


    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

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions