Found while correcting the root README.md in #301. The root README and REPOSITORY.md are fixed; these three files were left alone and still carry the same errors. The root README currently links to packages/core/README.md as the API reference while flagging it inline as out of date — that workaround should go away once this is fixed.
1. packages/core/package.json — wrong repo in published metadata
Highest priority, because this ships. The package is publish-ready (publishConfig redirects main, types and exports to ./dist/*), so whenever release plumbing is fixed, npm would show links to a repository that does not exist.
| Field |
Current |
Should be |
homepage |
https://github.com/launchstack/launchstack |
https://github.com/Deodat-Lawson/LaunchStack |
repository.url |
https://github.com/launchstack/launchstack.git |
https://github.com/Deodat-Lawson/LaunchStack.git |
2. packages/core/README.md — four false claims
| Line |
Claim |
Reality |
| 5 |
"Core reads zero environment variables at runtime" |
Six files under packages/core/src read process.env: crypto/secret-box.ts, embeddings/company-config.ts, providers/ner/llm.ts, providers/ner/sidecar.ts, providers/reranking/jina.ts, providers/reranking/sidecar.ts. The two sidecar.ts files read SIDECAR_URL at module load with a hardcoded http://localhost:8000 default that cannot be set through CoreConfig at all. |
| 10, 12 |
pnpm add @launchstack/core … |
The registry returns 404 — never published. Blocked by a missing .changeset/ and by release.yml:20 being gated on github.repository == 'launchstack/launchstack', so the release job is skipped on every push. |
| 29 |
embeddings: { indexName: "openai-3-small" } |
Not a registered index. resolveEmbeddingIndex() throws. The static index is legacy-openai-1536 (embeddings/index-registry.ts:55), which is what .env.example:39 sets. The same bogus value also appears in the CoreConfig doc comment at config/types.ts:89. |
| 39 |
await engine.rag?.port.search({ query }) |
Engine exposes only config, db, dbHandle, storage, neo4j, close (src/index.ts:29-47). There is no rag field, and RagPort's only method is companyEnsembleSearch (rag/types.ts:19). Doubly wrong — the sample cannot run. |
3. CONTRIBUTING.md — broken URLs and an overstated lint claim
Five links point at github.com/launchstack/launchstack, including the git clone command, which 404s for anyone following the guide:
:8 — existing issues + discussions
:37 — git clone
:103 — discussions
:104 — new issue
Separately, :24 says "Violations fail lint." They do not: the CI lint step is continue-on-error: true under the heading "Lint (legacy baseline, non-blocking)" (CI.yml:69), and six core files violate the no-process.env rule today. The root README now words this as "ESLint declares these boundaries, but the lint step is non-blocking in CI and there is an existing violation baseline."
Acceptance criteria
Note
release.yml:20's repo-slug gate is the reason no release has ever run. Fixing it is out of scope here but worth tracking — it is recorded in REPOSITORY.md.
Found while correcting the root
README.mdin #301. The root README andREPOSITORY.mdare fixed; these three files were left alone and still carry the same errors. The root README currently links topackages/core/README.mdas the API reference while flagging it inline as out of date — that workaround should go away once this is fixed.1.
packages/core/package.json— wrong repo in published metadataHighest priority, because this ships. The package is publish-ready (
publishConfigredirectsmain,typesandexportsto./dist/*), so whenever release plumbing is fixed, npm would show links to a repository that does not exist.homepagehttps://github.com/launchstack/launchstackhttps://github.com/Deodat-Lawson/LaunchStackrepository.urlhttps://github.com/launchstack/launchstack.githttps://github.com/Deodat-Lawson/LaunchStack.git2.
packages/core/README.md— four false claimspackages/core/srcreadprocess.env:crypto/secret-box.ts,embeddings/company-config.ts,providers/ner/llm.ts,providers/ner/sidecar.ts,providers/reranking/jina.ts,providers/reranking/sidecar.ts. The twosidecar.tsfiles readSIDECAR_URLat module load with a hardcodedhttp://localhost:8000default that cannot be set throughCoreConfigat all.pnpm add @launchstack/core ….changeset/and byrelease.yml:20being gated ongithub.repository == 'launchstack/launchstack', so the release job is skipped on every push.embeddings: { indexName: "openai-3-small" }resolveEmbeddingIndex()throws. The static index islegacy-openai-1536(embeddings/index-registry.ts:55), which is what.env.example:39sets. The same bogus value also appears in theCoreConfigdoc comment atconfig/types.ts:89.await engine.rag?.port.search({ query })Engineexposes onlyconfig,db,dbHandle,storage,neo4j,close(src/index.ts:29-47). There is noragfield, andRagPort's only method iscompanyEnsembleSearch(rag/types.ts:19). Doubly wrong — the sample cannot run.3.
CONTRIBUTING.md— broken URLs and an overstated lint claimFive links point at
github.com/launchstack/launchstack, including thegit clonecommand, which 404s for anyone following the guide::8— existing issues + discussions:37—git clone:103— discussions:104— new issueSeparately,
:24says "Violations fail lint." They do not: the CI lint step iscontinue-on-error: trueunder the heading "Lint (legacy baseline, non-blocking)" (CI.yml:69), and six core files violate the no-process.envrule today. The root README now words this as "ESLint declares these boundaries, but the lint step is non-blocking in CI and there is an existing violation baseline."Acceptance criteria
packages/core/package.jsonhomepageandrepository.urlpoint at the real remotepackages/core/README.mdhas no claim contradicted by the code; its code sample compiles against the realEngineandCoreConfigconfig/types.ts:89doc comment no longer referencesopenai-3-smalllaunchstack/launchstackURLs across the repo resolve —grep -rn "launchstack/launchstack" --exclude-dir=node_modules .returns only the intentionalrelease.ymlgate, or that gate is fixed tooCONTRIBUTING.md:24describes lint enforcement accuratelypackages/core/README.mdis removedNote
release.yml:20's repo-slug gate is the reason no release has ever run. Fixing it is out of scope here but worth tracking — it is recorded inREPOSITORY.md.