From d6dcf65ae70494993621a7a6992a4a75663b693b Mon Sep 17 00:00:00 2001
From: Joseph Dale Banares
Date: Fri, 2 Oct 2026 22:12:48 +0800
Subject: [PATCH 1/5] docs: keep LICENSE plain MIT so GitHub detects it, and
carry archify's notice in THIRD_PARTY_NOTICES
---
LICENSE | 29 -----------------------------
THIRD_PARTY_NOTICES.md | 27 ++++++++++++++++++++++++++-
2 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/LICENSE b/LICENSE
index 92d4b89..a5e0916 100644
--- a/LICENSE
+++ b/LICENSE
@@ -19,32 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-
----------------------------------------------------------------------------
-
-stackmap is a successor to archify (https://github.com/tt-a1i/archify). Parts
-of the agent skill (skill/references/authoring-contract.md) are adapted from
-archify's documentation, used under the following license:
-
-MIT License
-
-Copyright (c) 2026 tt-a1i (Archify)
-Copyright (c) 2025 Cocoon AI
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md
index 49fc941..bc83a39 100644
--- a/THIRD_PARTY_NOTICES.md
+++ b/THIRD_PARTY_NOTICES.md
@@ -28,7 +28,32 @@ stackmap is MIT-licensed (see [LICENSE](LICENSE)). It builds on the work below.
## Adapted documentation
-Parts of `skill/references/authoring-contract.md` are adapted from [archify](https://github.com/tt-a1i/archify), MIT, Copyright (c) 2026 tt-a1i (Archify), Copyright (c) 2025 Cocoon AI. The full notice is included in [LICENSE](LICENSE) and [skill/LICENSE](skill/LICENSE).
+Parts of `skill/references/authoring-contract.md` are adapted from [archify](https://github.com/tt-a1i/archify), used under its license, which is reproduced below and in [skill/LICENSE](skill/LICENSE):
+
+```text
+MIT License
+
+Copyright (c) 2026 tt-a1i (Archify)
+Copyright (c) 2025 Cocoon AI
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+```
## MIT license text (React, html-to-image, zod)
From 8c852dfa0fd12199c8c476fb0e36152051defcdd Mon Sep 17 00:00:00 2001
From: Joseph Dale Banares
Date: Fri, 2 Oct 2026 22:23:19 +0800
Subject: [PATCH 2/5] fix(cli): list every diagram kind in the npm keywords, so
workflow, lifecycle and sequence searches find it
---
packages/cli/package.json | 5 ++++-
packages/cli/test/skill.test.ts | 6 ++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/packages/cli/package.json b/packages/cli/package.json
index d41ff12..fce0c71 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -11,7 +11,10 @@
"elk",
"offline",
"html",
- "dataflow"
+ "dataflow",
+ "workflow",
+ "lifecycle",
+ "sequence"
],
"homepage": "https://stackmap.omsimos.com",
"repository": {
diff --git a/packages/cli/test/skill.test.ts b/packages/cli/test/skill.test.ts
index 71b73f7..3d306c1 100644
--- a/packages/cli/test/skill.test.ts
+++ b/packages/cli/test/skill.test.ts
@@ -1,5 +1,6 @@
import { readdirSync, readFileSync } from 'node:fs';
import { describe, expect, it } from 'vitest';
+import { DIAGRAM_KINDS } from '@stackmap/core';
import { SCHEMA_ID } from '@stackmap/schema';
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { name: string; version: string };
@@ -24,6 +25,11 @@ describe('skill ↔ CLI version', () => {
});
describe('package.json', () => {
+ it('names every diagram kind in its npm keywords, so a search for any of them finds the package', () => {
+ const { keywords } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { keywords: string[] };
+ for (const kind of DIAGRAM_KINDS) expect(keywords, kind).toContain(kind);
+ });
+
it('declares bin paths the way npm publish accepts them (no "./" prefix, or npm drops the bin)', () => {
const { bin } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { bin: Record };
expect(bin).toEqual({ stackmap: 'dist/cli.js' });
From 7b426dd15afbe6e414b56366a7bd484e27c761f9 Mon Sep 17 00:00:00 2001
From: Joseph Dale Banares
Date: Fri, 2 Oct 2026 22:32:51 +0800
Subject: [PATCH 3/5] fix(cli): publish as @omsimos/stackmap from the
omsimos/stackmap repo
---
.github/ISSUE_TEMPLATE/bug.yml | 2 +-
.github/ISSUE_TEMPLATE/config.yml | 2 +-
CONTRIBUTING.md | 6 +++---
README.md | 16 ++++++++--------
SECURITY.md | 4 ++--
bun.lock | 4 ++--
package.json | 2 +-
packages/cli/package.json | 6 +++---
packages/cli/scripts/prepack.mjs | 2 +-
packages/cli/test/skill.test.ts | 2 +-
packages/core/src/samples/index.ts | 2 +-
packages/schema/src/schema.ts | 4 ++--
packages/schema/stackmap.schema.json | 4 ++--
packages/viewer/e2e/explore.spec.ts | 2 +-
packages/viewer/index.html | 4 ++--
.../viewer/src/samples/commerce-api.layout.ts | 2 +-
scripts/set-version.mjs | 10 +++++-----
site/app/docs/cli/page.tsx | 2 +-
site/app/docs/page.tsx | 2 +-
site/app/docs/schema/page.tsx | 2 +-
site/components/site/links.ts | 4 ++--
site/content/examples/repo-architecture.json | 4 ++--
site/e2e/smoke.spec.ts | 2 +-
site/lib/data/data.test.ts | 4 ++--
site/lib/data/version.ts | 2 +-
site/lib/schema-docs.ts | 4 ++--
site/lib/seo.ts | 2 +-
site/tests/links.test.ts | 6 +++---
site/tests/no-pins.test.ts | 6 +++---
skill/SKILL.md | 6 +++---
skill/examples/checkout.sequence.json | 2 +-
skill/examples/clickstream.dataflow.json | 2 +-
skill/examples/job.lifecycle.json | 2 +-
skill/examples/release.workflow.json | 2 +-
skill/examples/web-app.architecture.json | 2 +-
skill/references/schema.md | 2 +-
skill/references/stackmap.schema.json | 4 ++--
37 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index 128e2c7..bd4e1ad 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -19,7 +19,7 @@ body:
id: version
attributes:
label: stackmap version
- description: "`npx @hyamero/stackmap --version`, or the version in the skill's SKILL.md"
+ description: "`npx @omsimos/stackmap --version`, or the version in the skill's SKILL.md"
validations:
required: true
- type: input
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 580ef78..05ef378 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Report a security vulnerability
- url: https://github.com/hyamero/stackmap/security/advisories/new
+ url: https://github.com/omsimos/stackmap/security/advisories/new
about: Please report security issues privately, not as a public issue.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 296a31c..99bb0db 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -29,7 +29,7 @@ bun run test && bun run typecheck && bun run build # unit tests, types, viewer
| `packages/schema` | Zod schema → `stackmap.schema.json`, the validator and its diagnostics |
| `packages/layout` | ELK wrapper and stackmap's own lane and sequence layout: diagram → absolute geometry |
| `packages/viewer` | React viewer, built into one self-contained HTML template |
-| `packages/cli` | `@hyamero/stackmap`: validate · deliver · serve (the only published package) |
+| `packages/cli` | `@omsimos/stackmap`: validate · deliver · serve (the only published package) |
| `skill/` | the agent skill that `npx skills add` installs: `SKILL.md`, the schema reference, examples |
| `site/` | `@stackmap/site`: the website (Next.js), deployed on Vercel; never published |
@@ -92,11 +92,11 @@ workflow's `release` job runs them after the checks pass.
- **Release candidates:** every push to `staging` with a `feat`, `fix` or `perf` commit since the last release
publishes `x.y.z-rc.N` to npm under the `rc` tag, with a GitHub prerelease. Try one with
- `npx @hyamero/stackmap@rc`.
+ `npx @omsimos/stackmap@rc`.
- **Releases:** merging `staging` into `main` with a **merge commit** publishes `x.y.z` under `latest`, with a
GitHub release. Don't squash or rebase this merge: the release candidates' tags must stay in `main`'s history,
or the next version is miscounted.
-- **The version is pinned in the repo:** the skill runs an exact CLI version (`npx -y @hyamero/stackmap@x.y.z`),
+- **The version is pinned in the repo:** the skill runs an exact CLI version (`npx -y @omsimos/stackmap@x.y.z`),
and the JSON Schema id and the examples name it too. On a release, `scripts/set-version.mjs` updates them all,
the bot commits `chore(release): x.y.z [skip ci]` to `main`, and then merges `main` back into `staging`.
Release candidates only change the published package, so the repo keeps the last release's version between
diff --git a/README.md b/README.md
index 2f44a56..01fb59c 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,9 @@
-
-
-
+
+
+
@@ -26,7 +26,7 @@ https://github.com/user-attachments/assets/4dd05dfc-fa5a-42e7-ad1a-6150aeb9ad9f
Install the skill into your agent (Claude Code, Cursor, Codex and [others](https://github.com/vercel-labs/skills)):
```bash
-npx skills add hyamero/stackmap
+npx skills add omsimos/stackmap
```
Then ask:
@@ -63,7 +63,7 @@ The agent writes `.stackmap//diagram.json`, validates and repairs it, and
```json
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "architecture",
"title": "Bookshop",
"direction": "DOWN",
@@ -96,9 +96,9 @@ Full reference: [skill/references/schema.md](skill/references/schema.md), or the
The skill runs the CLI for you, and it works on its own too (Node 22.12 or later):
```bash
-npx @hyamero/stackmap validate diagram.json [--json] # diagnostics with fixes; exit 1 on errors
-npx @hyamero/stackmap deliver diagram.json [-o out.html] [--open] # validate → layout → one offline HTML file
-npx @hyamero/stackmap serve diagram.json [--port 4400] # live viewer that reloads on every save
+npx @omsimos/stackmap validate diagram.json [--json] # diagnostics with fixes; exit 1 on errors
+npx @omsimos/stackmap deliver diagram.json [-o out.html] [--open] # validate → layout → one offline HTML file
+npx @omsimos/stackmap serve diagram.json [--port 4400] # live viewer that reloads on every save
```
- **validate** lists every problem with a code, its evidence and the allowed fixes, including card text that won't fit. It exits `1` when the diagram has errors and `2` on usage, IO or internal errors.
diff --git a/SECURITY.md b/SECURITY.md
index 4a6f277..6e8041c 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -3,10 +3,10 @@
## Reporting a vulnerability
Please report security issues privately through GitHub:
-[**Report a vulnerability**](https://github.com/hyamero/stackmap/security/advisories/new). Don't open a public
+[**Report a vulnerability**](https://github.com/omsimos/stackmap/security/advisories/new). Don't open a public
issue or pull request for them.
-Include what an attacker could do, the stackmap version (`npx @hyamero/stackmap --version`), and a diagram or steps
+Include what an attacker could do, the stackmap version (`npx @omsimos/stackmap --version`), and a diagram or steps
that reproduce it. You'll get a reply within a week. Once a fix is released, the advisory is published with credit
to you unless you'd rather stay anonymous.
diff --git a/bun.lock b/bun.lock
index 215484f..65116d9 100644
--- a/bun.lock
+++ b/bun.lock
@@ -20,7 +20,7 @@
},
},
"packages/cli": {
- "name": "@hyamero/stackmap",
+ "name": "@omsimos/stackmap",
"version": "0.2.0",
"bin": {
"stackmap": "./dist/cli.js",
@@ -263,7 +263,7 @@
"@gsap/react": ["@gsap/react@2.1.2", "", { "peerDependencies": { "gsap": "^3.12.5", "react": ">=17" } }, "sha512-JqliybO1837UcgH2hVOM4VO+38APk3ECNrsuSM4MuXp+rbf+/2IG2K1YJiqfTcXQHH7XlA0m3ykniFYstfq0Iw=="],
- "@hyamero/stackmap": ["@hyamero/stackmap@workspace:packages/cli"],
+ "@omsimos/stackmap": ["@omsimos/stackmap@workspace:packages/cli"],
"@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="],
diff --git a/package.json b/package.json
index 79e557a..29ab25c 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,7 @@
"scripts": {
"test": "bun run --filter './packages/*' test",
"typecheck": "bun run --filter './packages/*' typecheck",
- "build": "bun run --filter @stackmap/viewer build && bun run --filter @hyamero/stackmap build"
+ "build": "bun run --filter @stackmap/viewer build && bun run --filter @omsimos/stackmap build"
},
"devDependencies": {
"@commitlint/cli": "^21.2.3",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index fce0c71..93f3bd9 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,5 +1,5 @@
{
- "name": "@hyamero/stackmap",
+ "name": "@omsimos/stackmap",
"version": "0.2.0",
"description": "Interactive system diagrams your coding agent writes, as one offline HTML file",
"keywords": [
@@ -19,10 +19,10 @@
"homepage": "https://stackmap.omsimos.com",
"repository": {
"type": "git",
- "url": "git+https://github.com/hyamero/stackmap.git",
+ "url": "git+https://github.com/omsimos/stackmap.git",
"directory": "packages/cli"
},
- "bugs": "https://github.com/hyamero/stackmap/issues",
+ "bugs": "https://github.com/omsimos/stackmap/issues",
"license": "MIT",
"type": "module",
"bin": {
diff --git a/packages/cli/scripts/prepack.mjs b/packages/cli/scripts/prepack.mjs
index 8c909f9..9abf131 100644
--- a/packages/cli/scripts/prepack.mjs
+++ b/packages/cli/scripts/prepack.mjs
@@ -5,5 +5,5 @@ for (const f of ['README.md', 'LICENSE', 'THIRD_PARTY_NOTICES.md']) copyFileSync
// npm resolves relative images against the package, not the repo root: point the README's images at GitHub.
const readme = new URL('../README.md', import.meta.url);
-const raw = 'https://raw.githubusercontent.com/hyamero/stackmap/main/';
+const raw = 'https://raw.githubusercontent.com/omsimos/stackmap/main/';
writeFileSync(readme, readFileSync(readme, 'utf8').replace(/(src|srcset)="(assets\/[^"]+)"/g, `$1="${raw}$2"`));
diff --git a/packages/cli/test/skill.test.ts b/packages/cli/test/skill.test.ts
index 3d306c1..4d35725 100644
--- a/packages/cli/test/skill.test.ts
+++ b/packages/cli/test/skill.test.ts
@@ -11,7 +11,7 @@ const pinned = `${pkg.name}@${pkg.version}`;
describe('skill ↔ CLI version', () => {
it('SKILL.md runs exactly this CLI version', () => {
const md = skill('SKILL.md');
- const pins = [...md.matchAll(/@hyamero\/stackmap@[\w.-]+/g)].map((m) => m[0]);
+ const pins = [...md.matchAll(/@omsimos\/stackmap@[\w.-]+/g)].map((m) => m[0]);
expect(pins.length).toBeGreaterThan(0);
expect(new Set(pins)).toEqual(new Set([pinned]));
expect(md).toContain(`version: "${pkg.version}"`);
diff --git a/packages/core/src/samples/index.ts b/packages/core/src/samples/index.ts
index e2068b5..5733531 100644
--- a/packages/core/src/samples/index.ts
+++ b/packages/core/src/samples/index.ts
@@ -16,7 +16,7 @@ export const commerceApi: DiagramDraft = {
kind: 'architecture',
title: 'Commerce API',
subtitle: 'Production topology',
- source: { url: 'https://github.com/hyamero/stackmap/blob/main' },
+ source: { url: 'https://github.com/omsimos/stackmap/blob/main' },
direction: 'RIGHT',
nodes: [
{
diff --git a/packages/schema/src/schema.ts b/packages/schema/src/schema.ts
index 4462fa4..afd1281 100644
--- a/packages/schema/src/schema.ts
+++ b/packages/schema/src/schema.ts
@@ -117,7 +117,7 @@ const View = z.strictObject({
export const DiagramDraftSchema = z
.strictObject({
- $schema: z.string().optional().meta({ description: `Optional; set it to ${'`'}https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json${'`'} for editor completion.` }),
+ $schema: z.string().optional().meta({ description: `Optional; set it to ${'`'}https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json${'`'} for editor completion.` }),
kind: z.enum(DIAGRAM_KINDS),
density: z
.enum(['compact'])
@@ -145,7 +145,7 @@ export const DiagramDraftSchema = z
.meta({ title: 'stackmap diagram', description: 'Agent-authored diagram. Layout is computed by stackmap; never give coordinates.' });
/** Served from the published CLI package, so it is pinned to the same version as the validator. */
-export const SCHEMA_ID = 'https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json';
+export const SCHEMA_ID = 'https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json';
export function buildJsonSchema(): Record {
return { ...z.toJSONSchema(DiagramDraftSchema, { target: 'draft-2020-12' }), $id: SCHEMA_ID };
diff --git a/packages/schema/stackmap.schema.json b/packages/schema/stackmap.schema.json
index 1c2b733..06f3c79 100644
--- a/packages/schema/stackmap.schema.json
+++ b/packages/schema/stackmap.schema.json
@@ -3,7 +3,7 @@
"type": "object",
"properties": {
"$schema": {
- "description": "Optional; set it to `https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion.",
+ "description": "Optional; set it to `https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion.",
"type": "string"
},
"kind": {
@@ -510,5 +510,5 @@
"additionalProperties": false,
"title": "stackmap diagram",
"description": "Agent-authored diagram. Layout is computed by stackmap; never give coordinates.",
- "$id": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json"
+ "$id": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json"
}
diff --git a/packages/viewer/e2e/explore.spec.ts b/packages/viewer/e2e/explore.spec.ts
index 4042c9c..37ae7b5 100644
--- a/packages/viewer/e2e/explore.spec.ts
+++ b/packages/viewer/e2e/explore.spec.ts
@@ -26,7 +26,7 @@ test('clicking a card selects it: inspector shows its data, connections and evid
await expect(panel.getByText('Read replicas', { exact: true })).toBeVisible();
await expect(panel.getByRole('list', { name: 'Connections' }).getByRole('button')).toHaveCount(3);
const link = panel.getByRole('link', { name: 'infra/orders/postgres.tf:12' });
- await expect(link).toHaveAttribute('href', 'https://github.com/hyamero/stackmap/blob/main/infra/orders/postgres.tf#L12');
+ await expect(link).toHaveAttribute('href', 'https://github.com/omsimos/stackmap/blob/main/infra/orders/postgres.tf#L12');
await expect(panel.getByText('Primary + 2 read replicas')).toBeVisible();
// Its direct edges take the source (service) tint.
await expect(page.locator('path[data-edge-id="e-1-orders"]')).toHaveAttribute('data-tint', 'service');
diff --git a/packages/viewer/index.html b/packages/viewer/index.html
index 08132a1..7c08cb0 100644
--- a/packages/viewer/index.html
+++ b/packages/viewer/index.html
@@ -2,11 +2,11 @@
diff --git a/packages/viewer/src/samples/commerce-api.layout.ts b/packages/viewer/src/samples/commerce-api.layout.ts
index 2aac715..ed6a207 100644
--- a/packages/viewer/src/samples/commerce-api.layout.ts
+++ b/packages/viewer/src/samples/commerce-api.layout.ts
@@ -7,7 +7,7 @@ export const commerceApiLayout: LaidOutDiagram = {
"title": "Commerce API",
"subtitle": "Production topology",
"source": {
- "url": "https://github.com/hyamero/stackmap/blob/main"
+ "url": "https://github.com/omsimos/stackmap/blob/main"
},
"direction": "RIGHT",
"nodes": [
diff --git a/scripts/set-version.mjs b/scripts/set-version.mjs
index 71aca31..2a09a3e 100644
--- a/scripts/set-version.mjs
+++ b/scripts/set-version.mjs
@@ -1,5 +1,5 @@
// Sets the release version everywhere it is pinned: the CLI's package.json and lockfile entry, and every
-// `@hyamero/stackmap@x.y.z` in tracked files (the skill's npx commands, the JSON Schema id, the examples).
+// `@omsimos/stackmap@x.y.z` in tracked files (the skill's npx commands, the JSON Schema id, the examples).
// semantic-release runs it before packing; `skill.test.ts` checks the pins agree. Usage: node scripts/set-version.mjs
import { execFileSync } from 'node:child_process';
import { readFileSync, writeFileSync } from 'node:fs';
@@ -23,12 +23,12 @@ const changed = [];
// Only the version line, so the rest of each file keeps its formatting.
if (edit('packages/cli/package.json', (s) => s.replace(/^( "version": )"[^"]+"/m, `$1"${version}"`))) changed.push('packages/cli/package.json');
// `bun install --frozen-lockfile` fails when a workspace's version no longer matches its lockfile entry.
-if (edit('bun.lock', (s) => s.replace(/("packages\/cli": \{\s*"name": "@hyamero\/stackmap",\s*"version": )"[^"]+"/, `$1"${version}"`))) changed.push('bun.lock');
+if (edit('bun.lock', (s) => s.replace(/("packages\/cli": \{\s*"name": "@omsimos\/stackmap",\s*"version": )"[^"]+"/, `$1"${version}"`))) changed.push('bun.lock');
if (edit('skill/SKILL.md', (s) => s.replace(/^( version: )"[^"]+"/m, `$1"${version}"`))) changed.push('skill/SKILL.md');
-const pin = /@hyamero\/stackmap@\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/g;
-const tracked = execFileSync('git', ['grep', '-lE', '@hyamero/stackmap@[0-9]', '--', ':!bun.lock'], { cwd: root, encoding: 'utf8' });
+const pin = /@omsimos\/stackmap@\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/g;
+const tracked = execFileSync('git', ['grep', '-lE', '@omsimos/stackmap@[0-9]', '--', ':!bun.lock'], { cwd: root, encoding: 'utf8' });
for (const path of tracked.split('\n').filter(Boolean))
- if (edit(path, (s) => s.replace(pin, `@hyamero/stackmap@${version}`)) && !changed.includes(path)) changed.push(path);
+ if (edit(path, (s) => s.replace(pin, `@omsimos/stackmap@${version}`)) && !changed.includes(path)) changed.push(path);
console.log(`stackmap ${version}: ${changed.length ? changed.join(', ') : 'already set'}`);
diff --git a/site/app/docs/cli/page.tsx b/site/app/docs/cli/page.tsx
index 1ff62da..5dd2346 100644
--- a/site/app/docs/cli/page.tsx
+++ b/site/app/docs/cli/page.tsx
@@ -16,7 +16,7 @@ export const metadata: Metadata = {
};
const DEMO = '.stackmap/commerce-api/diagram.json';
-const npx = `npx @hyamero/stackmap@${SITE.version}`;
+const npx = `npx @omsimos/stackmap@${SITE.version}`;
function Synopsis({ name }: { name: (typeof CLI_COMMANDS)[number]['name'] }) {
const c = CLI_COMMANDS.find((x) => x.name === name)!;
diff --git a/site/app/docs/page.tsx b/site/app/docs/page.tsx
index 53fb902..55dce03 100644
--- a/site/app/docs/page.tsx
+++ b/site/app/docs/page.tsx
@@ -25,7 +25,7 @@ export const metadata: Metadata = {
const ASK = 'Make an architecture diagram of this repository, backed by evidence from the code.';
// The agent's file pins the schema to the installed CLI, so the example does too.
-const JSON_TEXT = SOURCES.quickStart.replace('{\n', `{\n "$schema": "https://unpkg.com/@hyamero/stackmap@${SITE.version}/dist/stackmap.schema.json",\n`);
+const JSON_TEXT = SOURCES.quickStart.replace('{\n', `{\n "$schema": "https://unpkg.com/@omsimos/stackmap@${SITE.version}/dist/stackmap.schema.json",\n`);
const FILE = '.stackmap/commerce-api/diagram.json';
function Step({ n, id, title, children }: { n: number; id: string; title: string; children: React.ReactNode }) {
diff --git a/site/app/docs/schema/page.tsx b/site/app/docs/schema/page.tsx
index 7dd26d8..258a58f 100644
--- a/site/app/docs/schema/page.tsx
+++ b/site/app/docs/schema/page.tsx
@@ -115,7 +115,7 @@ export default function SchemaPage() {
- Machine-readable: stackmap.schema.json. Set it as{' '}
+ Machine-readable: stackmap.schema.json. Set it as{' '}
$schema for completion in your editor.
diff --git a/site/components/site/links.ts b/site/components/site/links.ts
index ce45a66..f74b03c 100644
--- a/site/components/site/links.ts
+++ b/site/components/site/links.ts
@@ -1,4 +1,4 @@
-const repo = 'https://github.com/hyamero/stackmap';
+const repo = 'https://github.com/omsimos/stackmap';
export const LINKS = {
how: { label: 'How it works', href: '/#how' },
@@ -14,7 +14,7 @@ export const LINKS = {
// The film is the video in the README, hosted by GitHub.
film: { label: 'Launch film', href: `${repo}#readme` },
github: { label: 'GitHub', href: repo },
- npm: { label: 'npm', href: 'https://www.npmjs.com/package/@hyamero/stackmap' },
+ npm: { label: 'npm', href: 'https://www.npmjs.com/package/@omsimos/stackmap' },
contributing: { label: 'Contributing', href: `${repo}/blob/main/CONTRIBUTING.md` },
security: { label: 'Security', href: `${repo}/blob/main/SECURITY.md` },
archify: { label: 'archify', href: 'https://github.com/tt-a1i/archify' },
diff --git a/site/content/examples/repo-architecture.json b/site/content/examples/repo-architecture.json
index 769bad9..b37ffdc 100644
--- a/site/content/examples/repo-architecture.json
+++ b/site/content/examples/repo-architecture.json
@@ -4,7 +4,7 @@
"subtitle": "How an agent-written diagram.json becomes the delivered viewer",
"direction": "DOWN",
"source": {
- "url": "https://github.com/hyamero/stackmap/blob/a2111f0590892de04f16c2d2f11ad877a502d89b"
+ "url": "https://github.com/omsimos/stackmap/blob/a2111f0590892de04f16c2d2f11ad877a502d89b"
},
"groups": [
{
@@ -61,7 +61,7 @@
"type": "service",
"group": "pipeline",
"card": {
- "title": "@hyamero/stackmap",
+ "title": "@omsimos/stackmap",
"subtitle": "CLI: validate/deliver/serve",
"rows": [
{
diff --git a/site/e2e/smoke.spec.ts b/site/e2e/smoke.spec.ts
index a7d4f6a..df1a341 100644
--- a/site/e2e/smoke.spec.ts
+++ b/site/e2e/smoke.spec.ts
@@ -236,7 +236,7 @@ test('the docs copy button confirms', async ({ page, context }) => {
await page.goto('/docs');
await page.getByRole('button', { name: 'Copy the install command' }).click();
await expect(page.getByRole('button', { name: 'Copied' })).toBeVisible();
- expect(await page.evaluate(() => navigator.clipboard.readText())).toBe('npx skills add hyamero/stackmap');
+ expect(await page.evaluate(() => navigator.clipboard.readText())).toBe('npx skills add omsimos/stackmap');
});
test('on a phone the nav menu opens the site links and closes on Escape', async ({ browser }) => {
diff --git a/site/lib/data/data.test.ts b/site/lib/data/data.test.ts
index e4a35d4..66b278a 100644
--- a/site/lib/data/data.test.ts
+++ b/site/lib/data/data.test.ts
@@ -21,8 +21,8 @@ describe('version', () => {
// Built, not written out: a literal pin would be rewritten by every release (see tests/no-pins.test.ts).
const version = '1.2.3';
expect(installCommands(version)).toEqual({
- skill: 'npx skills add hyamero/stackmap',
- cli: `npx @hyamero/stackmap@${version} deliver diagram.json`,
+ skill: 'npx skills add omsimos/stackmap',
+ cli: `npx @omsimos/stackmap@${version} deliver diagram.json`,
});
});
});
diff --git a/site/lib/data/version.ts b/site/lib/data/version.ts
index 99fc821..4451e08 100644
--- a/site/lib/data/version.ts
+++ b/site/lib/data/version.ts
@@ -7,5 +7,5 @@ export function readCliVersion(pkg: URL = CLI_PACKAGE): string {
// The skill command has no version: `skills add` installs from the repo, not from npm.
export function installCommands(version: string) {
- return { skill: 'npx skills add hyamero/stackmap', cli: `npx @hyamero/stackmap@${version} deliver diagram.json` };
+ return { skill: 'npx skills add omsimos/stackmap', cli: `npx @omsimos/stackmap@${version} deliver diagram.json` };
}
diff --git a/site/lib/schema-docs.ts b/site/lib/schema-docs.ts
index 65a59fe..ad41856 100644
--- a/site/lib/schema-docs.ts
+++ b/site/lib/schema-docs.ts
@@ -68,7 +68,7 @@ export const SAMPLES: Record = {
{ file: 'services/api/src/db.ts', line: 8 },
],
},
- source: { file: 'source', place: 'source', value: { url: 'https://github.com/hyamero/stackmap/blob/a2111f0590892de04f16c2d2f11ad877a502d89b' } },
+ source: { file: 'source', place: 'source', value: { url: 'https://github.com/omsimos/stackmap/blob/a2111f0590892de04f16c2d2f11ad877a502d89b' } },
edges: {
file: 'edges',
place: 'array',
@@ -127,5 +127,5 @@ export function diagramOutline(version: string, draft: object): string {
const d = draft as Record;
const keys = ['kind', 'title', 'subtitle', 'direction'].filter((k) => d[k] !== undefined).map((k) => ` "${k}": ${JSON.stringify(d[k])}`);
const arrays = ['groups', 'lanes', 'phases', 'nodes', 'edges', 'views', 'notes'].flatMap((k) => (Array.isArray(d[k]) && d[k].length ? [` "${k}": [ … ${d[k].length} ]`] : []));
- return ['{', [` "$schema": "https://unpkg.com/@hyamero/stackmap@${version}/dist/stackmap.schema.json"`, ...keys, ...arrays].join(',\n'), '}'].join('\n');
+ return ['{', [` "$schema": "https://unpkg.com/@omsimos/stackmap@${version}/dist/stackmap.schema.json"`, ...keys, ...arrays].join(',\n'), '}'].join('\n');
}
diff --git a/site/lib/seo.ts b/site/lib/seo.ts
index 602f662..55c8de2 100644
--- a/site/lib/seo.ts
+++ b/site/lib/seo.ts
@@ -7,7 +7,7 @@ type Env = Record;
export const SITE_NAME = 'stackmap';
export const DESCRIPTION = 'Interactive system diagrams your coding agent writes, as one offline HTML file.';
-export const REPO = 'https://github.com/hyamero/stackmap';
+export const REPO = 'https://github.com/omsimos/stackmap';
// Next merges metadata shallowly: a page that sets openGraph replaces the layout's, and with it the root's
// opengraph-image file, so pages spread this and it names the image (and its alt.txt) again.
diff --git a/site/tests/links.test.ts b/site/tests/links.test.ts
index e59c9a0..e70c509 100644
--- a/site/tests/links.test.ts
+++ b/site/tests/links.test.ts
@@ -10,8 +10,8 @@ describe('site links', () => {
});
it('points the project links at the public repo and npm', () => {
- expect(LINKS.github.href).toBe('https://github.com/hyamero/stackmap');
- expect(LINKS.npm.href).toBe('https://www.npmjs.com/package/@hyamero/stackmap');
- expect(LINKS.contributing.href).toBe('https://github.com/hyamero/stackmap/blob/main/CONTRIBUTING.md');
+ expect(LINKS.github.href).toBe('https://github.com/omsimos/stackmap');
+ expect(LINKS.npm.href).toBe('https://www.npmjs.com/package/@omsimos/stackmap');
+ expect(LINKS.contributing.href).toBe('https://github.com/omsimos/stackmap/blob/main/CONTRIBUTING.md');
});
});
diff --git a/site/tests/no-pins.test.ts b/site/tests/no-pins.test.ts
index 1e38205..feed684 100644
--- a/site/tests/no-pins.test.ts
+++ b/site/tests/no-pins.test.ts
@@ -2,14 +2,14 @@ import { execFileSync } from 'node:child_process';
import { fileURLToPath } from 'node:url';
import { describe, expect, it } from 'vitest';
-// scripts/set-version.mjs rewrites every `@hyamero/stackmap@x.y.z` in tracked files, but the release commit
+// scripts/set-version.mjs rewrites every `@omsimos/stackmap@x.y.z` in tracked files, but the release commit
// never includes site/: a pin here would be edited in the release job's tree and left uncommitted.
describe('no version pins in site/', () => {
- it('has no @hyamero/stackmap@ literal in any tracked or new file', () => {
+ it('has no @omsimos/stackmap@ literal in any tracked or new file', () => {
const repo = fileURLToPath(new URL('../../', import.meta.url));
let hits = '';
try {
- hits = execFileSync('git', ['grep', '-nE', '--untracked', '@hyamero/stackmap@[0-9]', '--', 'site'], { cwd: repo, encoding: 'utf8' });
+ hits = execFileSync('git', ['grep', '-nE', '--untracked', '@omsimos/stackmap@[0-9]', '--', 'site'], { cwd: repo, encoding: 'utf8' });
} catch {
// git grep exits 1 when nothing matches
}
diff --git a/skill/SKILL.md b/skill/SKILL.md
index 74f08a9..655f9f8 100644
--- a/skill/SKILL.md
+++ b/skill/SKILL.md
@@ -17,9 +17,9 @@ You write a typed diagram JSON. `stackmap` validates it, lays it out (you never
Run it as one literal command (each shell call starts fresh, so don't rely on variables set earlier):
```bash
-npx -y @hyamero/stackmap@0.2.0 validate --json
-npx -y @hyamero/stackmap@0.2.0 deliver --open
-npx -y @hyamero/stackmap@0.2.0 serve # optional live preview; see below
+npx -y @omsimos/stackmap@0.2.0 validate --json
+npx -y @omsimos/stackmap@0.2.0 deliver --open
+npx -y @omsimos/stackmap@0.2.0 serve # optional live preview; see below
```
If the environment variable `STACKMAP_BIN` is set, it is the path of a stackmap executable: use `"$STACKMAP_BIN" validate …` (quoted, exactly like that) instead of `npx …`.
diff --git a/skill/examples/checkout.sequence.json b/skill/examples/checkout.sequence.json
index 4b2e00f..9f44065 100644
--- a/skill/examples/checkout.sequence.json
+++ b/skill/examples/checkout.sequence.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "sequence",
"title": "Checkout request",
"subtitle": "Card payment with a fraud check",
diff --git a/skill/examples/clickstream.dataflow.json b/skill/examples/clickstream.dataflow.json
index ee2e4a2..2ac8cc9 100644
--- a/skill/examples/clickstream.dataflow.json
+++ b/skill/examples/clickstream.dataflow.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "dataflow",
"title": "Clickstream analytics",
"subtitle": "From SDK events to dashboards",
diff --git a/skill/examples/job.lifecycle.json b/skill/examples/job.lifecycle.json
index 8bb16e3..c38ca14 100644
--- a/skill/examples/job.lifecycle.json
+++ b/skill/examples/job.lifecycle.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "lifecycle",
"title": "Export job lifecycle",
"subtitle": "States of one export job",
diff --git a/skill/examples/release.workflow.json b/skill/examples/release.workflow.json
index df937bf..2d67753 100644
--- a/skill/examples/release.workflow.json
+++ b/skill/examples/release.workflow.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "workflow",
"title": "Release delivery",
"subtitle": "From merge to announced release",
diff --git a/skill/examples/web-app.architecture.json b/skill/examples/web-app.architecture.json
index cdcbf92..7ed1264 100644
--- a/skill/examples/web-app.architecture.json
+++ b/skill/examples/web-app.architecture.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json",
+ "$schema": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json",
"kind": "architecture",
"title": "Bookshop",
"subtitle": "Web storefront and order pipeline",
diff --git a/skill/references/schema.md b/skill/references/schema.md
index 3faad8c..25843f8 100644
--- a/skill/references/schema.md
+++ b/skill/references/schema.md
@@ -7,7 +7,7 @@ Agent-authored diagram. Layout is computed by stackmap; never give coordinates.
| Field | Type | Required | Notes |
|---|---|---|---|
-| `$schema` | string | no | Optional; set it to `https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion |
+| `$schema` | string | no | Optional; set it to `https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion |
| `kind` | enum | yes | one of `architecture`, `dataflow`, `workflow`, `lifecycle`, `sequence` |
| `density` | enum | no | Architecture and dataflow: compact cards (title, subtitle, brand, tag) for long chains or summaries. one of `compact` |
| `title` | string | yes | non-blank |
diff --git a/skill/references/stackmap.schema.json b/skill/references/stackmap.schema.json
index 1c2b733..06f3c79 100644
--- a/skill/references/stackmap.schema.json
+++ b/skill/references/stackmap.schema.json
@@ -3,7 +3,7 @@
"type": "object",
"properties": {
"$schema": {
- "description": "Optional; set it to `https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion.",
+ "description": "Optional; set it to `https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json` for editor completion.",
"type": "string"
},
"kind": {
@@ -510,5 +510,5 @@
"additionalProperties": false,
"title": "stackmap diagram",
"description": "Agent-authored diagram. Layout is computed by stackmap; never give coordinates.",
- "$id": "https://unpkg.com/@hyamero/stackmap@0.2.0/dist/stackmap.schema.json"
+ "$id": "https://unpkg.com/@omsimos/stackmap@0.2.0/dist/stackmap.schema.json"
}
From 46362022c6d5d563fece82775863ef42a111d280 Mon Sep 17 00:00:00 2001
From: Joseph Dale Banares
Date: Fri, 2 Oct 2026 23:34:04 +0800
Subject: [PATCH 4/5] docs(brand): point the social cards and GitHub preview at
github.com/omsimos/stackmap
---
assets/brand/stackmap-github-preview.png | Bin 37228 -> 37166 bytes
assets/brand/stackmap-social-card-light.png | Bin 42350 -> 42547 bytes
assets/brand/stackmap-social-card.png | Bin 36219 -> 36270 bytes
site/app/opengraph-image.png | Bin 36219 -> 36270 bytes
site/app/twitter-image.png | Bin 36219 -> 36270 bytes
5 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/assets/brand/stackmap-github-preview.png b/assets/brand/stackmap-github-preview.png
index d0b914bb54f4d76f9d2ee783b0719dc16fff206f..f5783ef091c4a88e7859e2d27dc7932a6a8d273b 100644
GIT binary patch
literal 37166
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