Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ body:
id: version
attributes:
label: Version or commit
placeholder: 2.6.3 or a full commit SHA
placeholder: latest release or a full commit SHA
validations:
required: true
- type: input
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
5 changes: 2 additions & 3 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ requests, release channels, and public events where someone represents Memi.

For conduct on GitHub, use GitHub's private
[report-abuse path](https://support.github.com/contact/report-abuse). To request
maintainer follow-up, mention the release owner
[`@sarveshsea`](https://github.com/sarveshsea) without posting sensitive details;
a private channel will be established before evidence is shared. Include links,
maintainer follow-up, use the private contact route documented in
[SECURITY.md](SECURITY.md) without posting sensitive details. Include links,
dates, context, and any immediate safety concern only through that private
channel. Do not open a public issue containing sensitive personal details.

Expand Down
8 changes: 6 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ Advance permission is not required for an unassigned `good first issue`.
## Choose the right repository

- Core audits, CLI, MCP, GitHub Action, and focused skills: `memi`.
- Canonical design skill catalog: `design-skills`.
- Canonical design workflow catalog: `design-skills`.
- Native macOS companion: `memi-studio`.
- Reproducible web examples: `design-sandbox`.
- In-development local-first canvas: `memi-canvas`.
- Reproducible examples and integrations: the repository that owns that
bounded proof.
- Bugs in a proof fork: report them in that fork and link the upstream source when relevant.

Start with an issue for broad behavior or architecture changes. Small documentation, fixture, and focused bug fixes may go directly to a pull request.
Expand All @@ -43,6 +45,8 @@ a pull request:
- Cite the repository file, route, or rendered evidence behind a design finding.
- Retain licenses and attribution for adapted work.
- Keep generated mirrors synchronized with their declared source of truth.
- Keep product identity synchronized with
[`brand/brand-manifest.v1.json`](brand/brand-manifest.v1.json).
- Use conventional commits such as `feat:`, `fix:`, `docs:`, `test:`, and `chore:`.

Each repository may define additional checks in its own contributing guide.
Expand Down
10 changes: 8 additions & 2 deletions OPEN_SOURCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ Memi is developed in public around a small number of supported product surfaces.

1. Use the first-audit command and report unclear output or missing evidence.
2. Improve a focused skill, fixture, example, or documentation path.
3. Reproduce a design-engineering problem in `design-sandbox`.
3. Reproduce a design-engineering problem in the smallest relevant product or
proof repository.
4. Propose a cross-repository change in `memi` Discussions before implementing it.
5. Help review accessibility, platform compatibility, provenance, and licensing.

Expand All @@ -22,4 +23,9 @@ Issues labeled `good first issue` are scoped for a first contribution. Issues la

## Repository lifecycle

Only supported products, distribution surfaces, and reproducible proofs belong in the organization. Incubating work is labeled clearly; abandoned or superseded work is archived with a replacement or end-of-life note. The current classification is documented in [ORG_ARCHITECTURE.md](ORG_ARCHITECTURE.md).
Only supported products, distribution surfaces, and reproducible proofs belong
in the organization. Development work is labeled clearly; abandoned or
superseded work is archived with a replacement or end-of-life notice. The
current classification is generated from
[`brand/brand-manifest.v1.json`](brand/brand-manifest.v1.json) into
[ORG_ARCHITECTURE.md](ORG_ARCHITECTURE.md).
66 changes: 31 additions & 35 deletions ORG_ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,41 @@
# Memi Organization Architecture

This document defines which repositories belong in `memi-design`, how they are classified, and what proof is required before they are presented as official.
This document defines the supported product surfaces in `memi-design`, their release boundaries, and the proof required before a repository is presented as official.

## Repository tiers
The canonical machine-readable source is [`brand/brand-manifest.v1.json`](brand/brand-manifest.v1.json). This page is generated from brand revision **3**; run `npm run brand:sync` after changing the manifest.

### Products
## Product surfaces

| Repository | Responsibility | Primary release |
| --- | --- | --- |
| `memi` | Audit engine, CLI, MCP, Action, focused skills | npm and GitHub Releases |
| `memi-studio` | Native macOS companion | GitHub Releases and Homebrew |
| `design-skills` | Canonical governed skill catalog | GitHub release and Agent Skills install |
| `design-sandbox` | Runnable web proof and design-engineering lab | Hosted preview and source |
| Product ID | Product | Status | Responsibility | License |
| --- | --- | --- | --- | --- |
| `cli` | [memi CLI](https://github.com/memi-design/memi) | Available | Read-only design engineering audit and skill layer for coding agents. | [MIT](https://github.com/memi-design/memi/blob/main/LICENSE) |
| `studio` | [memi Studio](https://github.com/memi-design/memi-studio) | Available | Native macOS companion for supervised agent workflows and artifact review. | [FSL-1.1-ALv2](https://github.com/memi-design/memi-studio/blob/main/LICENSE); Apache-2.0 on 2028-05-09 |
| `design-skills` | [memi Design Skills](https://github.com/memi-design/design-skills) | Available | Governed catalog of portable and capability-gated design workflows for coding agents. | [MIT](https://github.com/memi-design/design-skills/blob/main/LICENSE) |
| `canvas` | [memi Canvas](https://github.com/memi-design/memi-canvas) | In development | Local-first canvas workbench for understanding, creating, and verifying software interfaces. | [Apache-2.0](https://github.com/memi-design/memi-canvas/blob/main/LICENSE) |

### Canvas release boundary

### Distribution
Open-source M0 development snapshot; not yet a production importer or source editor. Canvas must remain labeled **In development** until its repository's capture, provider, source-write, security, recovery, and release gates are satisfied.

| Repository | Responsibility |
| --- | --- |
| `homebrew-memi` | Formula and cask tap |
| `audit-frontend-design` | Focused directory and install surface |
| `remember-design-system` | Focused directory and install surface |
| `enforce-design-ci` | Focused directory and install surface |
| `memoire-web` | Website and public documentation deployment |
## Distribution surfaces

The focused skill repositories are generated mirrors. Their source of truth remains `memi`.
- `homebrew-memi` owns the canonical Homebrew formula and cask tap.
- Focused skill repositories are install and discovery mirrors; they must identify their canonical source and remain synchronized.
- The organization profile and [public website](https://memoire.cv) are projections of the brand and release manifests, not independent version authorities.

### Labs and proofs
No personal namespace is an operational source, install, support, container, or release route.

Labs exist to demonstrate one integration or design-engineering capability. They are not separate product lines.
## Labs and integration proofs

| Repository | Proof contract |
| --- | --- |
| `mermaid-jam` | Local-only FigJam diagram tooling with a verified public Pages build |
| `ripple-image-transitions` | SwiftUI and Metal audit integration with retained upstream attribution |
| `chatbot` | Real shadcn application with a pinned design-CI workflow |
Labs demonstrate one bounded integration or design-engineering capability. They are not separate product lines and must preserve upstream attribution. A proof becomes official only when its README states the proof contract, the public path is runnable, and current verification evidence exists.

## Repository contract

Every official public repository must have:

1. A one-sentence job and one first-run path.
2. An explicit license and retained third-party attribution.
3. A maintained README with current organization links.
3. A maintained README whose product identity matches the brand manifest.
4. CI appropriate to its runtime and a pinned dependency policy.
5. Security reporting through the organization policy.
6. Topics, description, homepage, and repository visibility set deliberately.
Expand All @@ -52,12 +46,14 @@ Every official public repository must have:

| Surface | Source of truth | Identity constraint |
| --- | --- | --- |
| npm `@memi-design/cli` | `memi/release-manifest.json` | Trusted Publisher must target `memi-design/memi` |
| npm package | `memi/release-manifest.json` | Trusted Publisher targets `memi-design/memi` |
| GitHub Action | `memi/action.yml` | Consumers pin a full commit SHA |
| MCP Registry | `memi/server.json` | Existing server identity remains compatible during migration |
| GHCR | Core release workflow | New releases publish to `ghcr.io/memi-design/memi`; the personal namespace remains historical |
| Homebrew | `homebrew-memi` | Canonical tap is `memi-design/memi` |
| Website | `memoire-web` | Version and release copy are generated from the core manifest |
| MCP Registry | `memi/server.json` | Current server identity remains compatible during migration |
| Container images | Core release workflow | New releases publish only to the organization namespace |
| Homebrew | `homebrew-memi` | The canonical tap is owned by `memi-design` |
| Product identity | `brand/brand-manifest.v1.json` | Names, statuses, URLs, licenses, icons, and aliases use one brand revision |

Release versions and public parity evidence stay in the core release manifest. A published artifact is not described as parity-verified until its independent verification gate passes.

## Transfer gate

Expand All @@ -69,13 +65,13 @@ Before moving a repository:
- update the canonical local remote;
- rerun clean installs and public-link checks after the move.

Any repository with a live Pages environment moves only after its external identity is ready.
Any repository with a live release or Pages environment moves only after its external identity is ready. Historical personal namespaces may remain only inside the non-operational provenance allowlist.

## Lifecycle

- **Official:** actively maintained and part of the supported product path.
- **Available:** supported now through at least one documented public route.
- **Development:** implementation is public, but required product or release proof remains incomplete.
- **Proof:** maintained integration with reproducible evidence.
- **Incubating:** incomplete experiment; not pinned or advertised as supported.
- **Archived:** read-only historical reference with a replacement or end-of-life notice.

Repository count is not a growth metric. A repository belongs in the organization only when it makes the product easier to understand, install, verify, or extend.
Repository count is not a growth metric. A repository belongs in the organization only when it makes a supported product easier to understand, install, verify, or extend.
7 changes: 5 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

Please use GitHub private vulnerability reporting on the affected repository when available. Do not open a public issue for credentials, arbitrary file access, archive traversal, command execution, SSRF, publisher compromise, or supply-chain vulnerabilities.

If private reporting is unavailable, contact the maintainer through the security contact listed at [memoire.cv](https://memoire.cv) and include the repository, affected version, reproduction, impact, and suggested mitigation.
If private reporting is unavailable, contact the maintainer through the
security contact listed on the canonical [Memi website](https://memoire.cv).
Do not include exploit details until a private channel is established. Then
include the repository, affected release, reproduction, impact, and suggested
mitigation.

## Supported releases

Expand All @@ -22,4 +26,3 @@ High-priority reports include:
- secret exposure through logs, reports, or generated artifacts.

Please allow a reasonable remediation window before public disclosure.

3 changes: 1 addition & 2 deletions SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
- Usage questions and implementation discussion: [Memi Discussions](https://github.com/memi-design/memi/discussions).
- Reproducible bugs: open an issue in the repository that owns the behavior.
- Security vulnerabilities: follow [SECURITY.md](SECURITY.md).
- General documentation: [memoire.cv](https://memoire.cv).
- General documentation: [Memi website](https://memoire.cv).

Include the operating system, runtime version, Memi version, exact command, and minimal reproduction. Remove credentials and private source content before posting.

52 changes: 44 additions & 8 deletions brand/README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,60 @@
# Memi Brand Assets
# Memi Brand Assets and Manifest

These are the canonical organization-level assets for Memi.
This directory contains the canonical organization assets and the versioned product identity contract for Memi.

## Sources of truth

- [`brand-manifest.v1.json`](brand-manifest.v1.json) records brand revision **3** and the canonical product IDs, names, roles, statuses, URLs, licenses, icons, aliases, and legacy exceptions.
- [`brand-manifest.v1.schema.json`](brand-manifest.v1.schema.json) is the JSON Schema for manifest version 1.
- [Memi's public website](https://memoire.cv) is a current organization surface; its domain is not a legacy alias.
- `npm run brand:check` validates the schema, policy invariants, and synchronized documentation.
- `npm run brand:sync` regenerates the organization profile and architecture documents after an intentional manifest edit.

Consumers should reject unsupported `schemaVersion` values. Increment `brandRevision` for every identity change that downstream repositories must adopt.

## Product registry

| Product ID | Canonical name | Status | License | Accepted aliases | Primary icon |
| --- | --- | --- | --- | --- | --- |
| `cli` | [memi CLI](https://github.com/memi-design/memi) | Available | [MIT](https://github.com/memi-design/memi/blob/main/LICENSE) | `Memi`, `Memi Engine`, `Mémoire`, `Mémoire CLI`, `Mémoire Engine` | [memi-mark](https://raw.githubusercontent.com/memi-design/.github/main/brand/memi-avatar.png) |
| `studio` | [memi Studio](https://github.com/memi-design/memi-studio) | Available | [FSL-1.1-ALv2](https://github.com/memi-design/memi-studio/blob/main/LICENSE) | `Mémoire Studio` | [studio-app-icon](https://raw.githubusercontent.com/memi-design/memi-studio/main/docs/assets/memi-icon-dark.png) |
| `design-skills` | [memi Design Skills](https://github.com/memi-design/design-skills) | Available | [MIT](https://github.com/memi-design/design-skills/blob/main/LICENSE) | `Design Skills`, `Memi Skills`, `Mémoire Design Skills` | [memi-mark](https://raw.githubusercontent.com/memi-design/.github/main/brand/memi-avatar.png) |
| `canvas` | [memi Canvas](https://github.com/memi-design/memi-canvas) | In development | [Apache-2.0](https://github.com/memi-design/memi-canvas/blob/main/LICENSE) | `Mémoire Canvas` | [canvas-single-heart](https://raw.githubusercontent.com/memi-design/memi-canvas/main/apps/macos/src-tauri/icons/icon.png) |

Aliases exist for search, migration, and compatibility. They do not replace the canonical name on current release, install, support, or documentation surfaces.

## Legacy and provenance allowlist

Legacy values are permitted only as **non-operational provenance**. They must never be used as a current source, install, download, support, package-publish, container-publish, or release destination. Exact machine-match values live only in the manifest so generated public documentation does not revive personal operational links.

| Allowlist ID | Historical identity | Kind | Permitted contexts | Reason |
| --- | --- | --- | --- | --- |
| `legacy-memoire-name` | Legacy Mémoire name | `name` | `historical-release`, `license-provenance` | Preserves accurate attribution for releases and source records created before this brand revision. |
| `legacy-personal-github` | Legacy personal GitHub namespace | `url-prefix` | `historical-release`, `license-provenance`, `immutable-archive` | May identify immutable historical artifacts or upstream provenance, but never a current install, support, source, or release route. |
| `legacy-personal-ghcr` | Legacy personal container namespace | `url-prefix` | `historical-release`, `immutable-archive` | May identify immutable historical container provenance, but never the target for a current release. |
| `legacy-memoire-package-scope` | Legacy Mémoire package scope | `package-prefix` | `historical-release`, `license-provenance` | Records historical package identities without presenting them as current installation targets. |
| `legacy-studio-asset-prefix` | Legacy Studio release asset prefix | `asset-prefix` | `historical-release`, `immutable-archive` | Existing signed release assets retain their published filenames for checksum and provenance continuity. |

Adding an entry requires a bounded context, a provenance reason, and `operational: false`. Prefer removing a legacy reference when immutable provenance does not require it.

## Assets

| Asset | Use | Size |
| --- | --- | --- |
| `memi-avatar.png` | GitHub organization avatar and square profile surfaces | 512 × 512 |
| `memi-social-preview.jpg` | GitHub social previews and organization banners | 1280 × 640 |
| `memi-social-preview.jpg` | GitHub social previews | 1280 × 640 |
| `memi-brand-banner.png` | Repository README, npm, and organization-profile banner | 1983 × 793 |

## Usage

- Keep the pixel-heart mark centered and uncropped.
- Use the avatar on black or near-black surfaces.
- Preserve the banner's 2:1 composition; do not place text over the central mark.
- Preserve the supplied banner's 2.5:1 composition and its centered wordmark; do not crop or overlay text.
- Product-specific diagrams and screenshots may use their own visual language, but should link back to these organization assets.
- Preserve the social preview's 2:1 composition.
- Preserve the supplied banner's 2.5:1 composition and centered wordmark; do not crop, overlay text, or substitute a product alias.
- Product-specific diagrams and screenshots may use their own visual language, but their product identity must match the manifest.

## Provenance

The source artwork was supplied by the project owner. The organization variants were produced for Memi by replacing or extending the original backgrounds with a near-black field while preserving the supplied pixel-mosaic forms. No third-party marks or assets are included.

Copyright in the supplied artwork is retained by the project owner. Refer to
[TRADEMARKS.md](TRADEMARKS.md) before reusing the Memi name or brand assets.
Copyright in the supplied artwork is retained by the project owner. Refer to [`TRADEMARKS.md`](TRADEMARKS.md) before reusing the Memi name or brand assets.
Loading