Skip to content

chore: move project metadata to PCMStack and clarify CDB/database terminology - #56

Open
mpicciolli wants to merge 3 commits into
mainfrom
chore/repo-owner-pcmstack
Open

chore: move project metadata to PCMStack and clarify CDB/database terminology#56
mpicciolli wants to merge 3 commits into
mainfrom
chore/repo-owner-pcmstack

Conversation

@mpicciolli

Copy link
Copy Markdown
Collaborator

Summary

Rehomes the project under the PCMStack organisation and cleans up the terminology used across the docs and the browser demo.

  • Ownership / metadata: LICENSE copyright and package.json author now say PCMStack; repository points at PCMStack/converter, plus new bugs and homepage fields. README CI badge and demo footer links updated to the new repo URL.
  • Terminology: adds a Terminology section to AGENTS.md pinning down CDB (the binary format, always handled as a buffer), database (the SQLite side), and save (a .cdb the game itself wrote — reserved for the reverse-engineering notes). README and the demo copy stop using "save" as a generic name for the input file and say "database" instead.
  • Demo: adds a PCMStack eyebrow above the title and a note making it explicit that conversion happens entirely in the browser and no file is uploaded.
  • Minor markdown table realignment in the README.

Notes

The two new demo elements (.page-header__eyebrow, .privacy-note) have no rules in samples/browser/style.css, so they currently render with default paragraph styling.

Test plan

  • npm test
  • Open samples/browser/index.html and check the header/privacy note render acceptably

🤖 Generated with Claude Code

mpicciolli and others added 3 commits August 14, 2026 17:33
The repository moved to the PCMStack organization and was renamed to
"converter". Update the repository URL, author, CI badge and sample links
accordingly. Also document the CDB / database / save terminology in AGENTS.md
and realign two README tables.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A .cdb is a database whatever its provenance: career save, official
Cyanide release or community update. "Save" only describes a .cdb the
game itself wrote into an edition's Cloud/ folder, so it never belongs
in copy about the converter, which accepts any .cdb.

Also states explicitly that the conversion runs client-side.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 14, 2026 21:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR rehomes the project metadata to the PCMStack organization and updates documentation/demo copy to clarify and standardize terminology around CDB vs SQLite database.

Changes:

  • Updates repository/ownership metadata (README badge/links, package.json fields, LICENSE copyright line).
  • Adds a Terminology section to AGENTS.md and adjusts README/demo wording to avoid calling .cdb inputs “saves”.
  • Updates the browser demo header/footer and adds an in-browser privacy note.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
samples/browser/index.html Updates demo title/subtitle, adds PCMStack eyebrow and privacy note, and repoints footer links to the new repo.
README.md Updates CI badge URL, example filenames, and wording to align with clarified terminology; minor table formatting changes.
package.json Updates author/repository metadata and adds bugs + homepage.
LICENSE Updates the copyright holder string.
AGENTS.md Adds a Terminology section defining CDB/database/save usage.
Suppressed comments (5)

samples/browser/index.html:39

  • The privacy note says “Your database is never uploaded”, but the uploaded artifact is the .cdb (CDB) file. Using “CDB” / “.cdb file” here matches the terminology guidance and is more precise.
				<p class="privacy-note">
					Everything runs in your browser. Your database is never uploaded: it is
					read, converted and downloaded entirely on this machine.
				</p>

README.md:68

  • These CLI examples use database.cdb / database.sqlite, but the terminology guidance says “database” refers to the SQLite side and shouldn’t be used bare for a .cdb. Consider switching to a neutral base name (e.g. input.*) throughout these examples.
# CDB → SQLite (default output: database.sqlite)
npx cdb-converter database.cdb

# SQLite → CDB (default output: database.cdb)
npx cdb-converter database.sqlite

README.md:75

  • Same terminology issue as above: these examples show .cdb paths named database.*. Using input.cdb / input.sqlite (or another neutral name) avoids using “database” for the CDB file.
# Provide an explicit output path (directories are created as needed)
npx cdb-converter database.cdb data/database.sqlite

# Reconstruct PRIMARY KEY / FOREIGN KEY constraints (CDB → SQLite only)
npx cdb-converter database.cdb database.sqlite --normalize

README.md:104

  • This Node example reads a .cdb file named database.cdb, but AGENTS.md defines “database” as the SQLite side and advises against using it bare for .cdb inputs. Renaming the example input/output to a neutral basename (e.g. input.*) keeps docs consistent.
// Read and convert a CDB file
const cdbBuffer = fs.readFileSync("database.cdb");
const db = cdbToSql(cdbBuffer, SQL);

README.md:160

  • This reverse conversion example writes a .cdb file named database.cdb, which conflicts with the Terminology guidance that “database” should refer to the SQLite side. Using a neutral basename (e.g. input.*) avoids that ambiguity.
// Load a SQLite database and convert back to CDB
const sqliteBuffer = fs.readFileSync("database.sqlite");
const db = new SQL.Database(sqliteBuffer);

const cdbBuffer = sqlToCdb(db); // automatically compressed

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

<p class="page-header__eyebrow">PCMStack</p>
<h1 class="page-header__title">cdb-converter</h1>
<p class="page-header__subtitle">Convert Pro Cycling Manager save files to SQLite in one line.</p>
<p class="page-header__subtitle">Convert any Pro Cycling Manager database to SQLite in one line.</p>
Comment thread README.md
Convert **Pro Cycling Manager CDB** database files to and from SQLite, straight from the command line or your own code. Lightweight, isomorphic (Node.js **and** the browser), and zero-configuration.

The conversion is **lossless**: a full `cdb → sqlite → cdb` round-trip preserves every table, column, data type, and flag — so you can edit a save in any SQLite tool and load it back into the game. Optionally, it can reconstruct the save's relationships as real `PRIMARY KEY` / `FOREIGN KEY` constraints, turning the export into a normalized database you can explore with JOINs and ER-diagram tools.
The conversion is **lossless**: a full `cdb → sqlite → cdb` round-trip preserves every table, column, data type, and flag — so you can edit a database in any SQLite tool and load it back into the game. Optionally, it can reconstruct the database relationships as real `PRIMARY KEY` / `FOREIGN KEY` constraints, turning the export into a normalized database you can explore with JOINs and ER-diagram tools.
Comment thread README.md

```bash
npx cdb-converter save.cdb
npx cdb-converter database.cdb
Comment thread AGENTS.md
Comment on lines +19 to +21
library reads and writes, and it is always handled as a *buffer*, never a path:
the public API takes `cdbBuffer` / returns `Uint8Array`, and only the CLI in
[src/cli.ts](src/cli.ts) ever touches the filesystem. The format internals live
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants