LearnNewsExamplesServices
Frontmatter
id11954
titleRename acme/* placeholders to neomjs-owned across cloud-deployment docs + test fixtures
stateClosed
labels
airefactoring
assigneesneo-opus-ada
createdAtMay 25, 2026, 8:27 AM
updatedAtJun 7, 2026, 7:15 PM
githubUrlhttps://github.com/neomjs/neo/issues/11954
authorneo-opus-ada
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 25, 2026, 9:46 AM

Rename acme/* placeholders to neomjs-owned across cloud-deployment docs + test fixtures

neo-opus-ada
neo-opus-ada commented on May 25, 2026, 8:27 AM

Context

Operator-flagged 2026-05-25 during PR #11951 cycle-1: the acme family (acme/app, acme/docs, acme-corp/widgets, tenant-acme, etc.) is widely used as a placeholder across operator-facing cloud-deployment docs and test fixtures. The acme and acme-corp GitHub orgs both actually exist, so using their namespace as a placeholder risks (a) misdirecting operators who try to clone the example, (b) name-collision if those orgs ever publish a repo with the matching slug, and (c) implying association with a real third-party org. PR #11951 fixed acme-corp/widgetsneomjs/create-app in the new "Server-Side Pull Mode" section but did NOT touch the rest of the codebase.

The Problem

grep -rni "acme" across the tracked codebase (excluding ACME-TLS-protocol references and devindex tracking data) surfaces ~30+ placeholder uses in operator-facing docs + test fixtures. None of these were introduced by PR #11951 — they predate it — but they share the same substrate-quality concern.

The Architectural Reality

Per the new memory entry feedback_example_placeholders_no_third_party_namespaces, operator-facing example identifiers (org names, repo slugs, clone URLs, env-var values) MUST NOT collide with real third-party GitHub org namespaces. Approved replacement strategies:

  1. Neomjs-owned repos: neomjs/create-app, neomjs/neo. Operator-suggested approach for tenant-ingestion shape-illustrative examples.
  2. RFC-reserved domains: https://example.com/... for URL placeholders that don't need git-host shape.
  3. Explicit angle-bracket placeholders: <your-tenant-org>/<your-tenant-repo> for snippets that read as "substitute here."

The Fix

Rename surfaces across two categories:

Operator-facing docs (learn/agentos/cloud-deployment/)

  • HookWiring.md (2 lines): NEO_KB_REPO_SLUG="acme/app" + --repo-slug acme/app
  • Configuration.md (1 line): acme/app in env-var description
  • TenantIngestionModel.md (lines 53-54): acme/app, acme/docs in the Repository Identity examples block. The new "Server-Side Pull Mode" section already uses neomjs/create-app — Repository Identity examples should harmonize.
  • Day0Tutorial.md (5+ lines): acme/app in env exports, ingestion payload examples, command-line invocations

Recommended replacement: neomjs/create-app for the primary example; if a second-repo example is needed for the multi-repo case (e.g. acme/app + acme/docs showing same tenant with two repos), use neomjs/neo as the second slot.

Test fixtures (test/playwright/unit/)

  • KbTenantHealthHelper.spec.mjs (3 occurrences): tenant-acme / acme-web test-fixture identifiers — used in assertion strings that surface in the test-output rendered markdown
  • GitMirror.spec.mjs (line 158): 'https://token:secret@example.com/acme/repo.git' — note this is testing the secret-redaction path so the format must remain credential-bearing; only the acme/repo part needs renaming
  • kbPushClient.spec.mjs (8+ occurrences): acme/app as repoSlug across multiple it(...) blocks

Recommended replacement for test fixtures: tenant-a / tenant-a/repo-x style explicit-placeholder identifiers (or neomjs/... for consistency). Test fixtures don't need to be operator-readable, but consistency-with-docs reduces cognitive load when an operator reads a test for documentation purposes.

Acceptance Criteria

  • AC1 — All acme/* and acme-corp/* placeholders in learn/agentos/cloud-deployment/*.md replaced with neomjs/create-app (primary) or neomjs/neo (secondary slot for multi-repo examples), or angle-bracket placeholders where context calls for "substitute here" style
  • AC2 — Test fixtures in the 3 named spec files renamed to a consistent non-third-party-collision scheme (recommend tenant-a/tenant-a/repo-x OR neomjs/... for consistency); test assertions updated to match
  • AC3 — grep -rni "acme" learn/agentos/cloud-deployment/ test/playwright/unit/ai/services/knowledge-base/ test/playwright/unit/ai/scripts/maintenance/ returns zero placeholder hits (legitimate ACME-protocol references in PipelineWiring.md are NOT in scope)
  • AC4 — All affected test specs still pass post-rename

Out of Scope

  • ACME-TLS-protocol references in PipelineWiring.md and adjacent (legitimate technical term, not a placeholder)
  • apps/devindex/resources/data/visited.json real-repo tracking entries (acme-dns/acme-dns, go-acme/lego, etc.) — these track real public repos for devindex, not placeholders
  • apps/devindex/resources/data/tracker.json real GitHub user entries (jacmet)
  • Memory Core / KB data that may have acme/* in stored chunks (handled by next KB resync, not this PR)

Avoided Traps

  • DON'T: do a blanket sed s/acme/neomjs/g — that would corrupt ACME-protocol mentions in PipelineWiring.md
  • DON'T: rename one file in isolation — operators read across the cloud-deployment guide tree; mixed acme/app and neomjs/create-app is worse than either alone
  • DON'T: change credential-bearing URL test fixtures in GitMirror.spec.mjs in a way that defeats the secret-redaction test — keep token:secret@ shape, only rename the acme/repo path component

Empirical Anchor

Operator flag 2026-05-25 during PR #11951 cycle-1 review: "the github org actually exists! the repo does not (at least not public). does it make sense to use an unrelated org for examples? we could e.g. use neomjs/create-app or other own repos instead." Memory entry feedback_example_placeholders_no_third_party_namespaces codifies the discipline.

Authored by: [Claude Opus 4.7] (Claude Code)

tobiu referenced in commit 6c68362 - "chore(cloud-deployment): rename acme/* placeholders to neomjs-owned (#11954) (#11956) on May 25, 2026, 9:47 AM
tobiu closed this issue on May 25, 2026, 9:47 AM