Sanchika is an AI-native design system SDK for compliance-grade interfaces. AI-native means typed, documented, agent-consumable design contracts; it does not mean Sanchika provides a model runtime or automated compliance judgment.
This repository is independent from the ComplyEaze application repository. It is
currently nested locally under ComplyEaze for coordinated development, but it has
its own Git history and is intended to publish from
https://github.com/lamemustafa/sanchika.git until a ComplyEaze organization
exists.
Sanchika starts with three release packages and one private static application:
@sanchika/tokens- semantic OKLCH tokens, CSS variables, and token metadata.@sanchika/primitives- typed primitive contracts and class composition.@sanchika/patterns- reusable compliance-interface pattern contracts.@sanchika/gallery-app- the private Astro gallery and design-evidence site.
- ComplyEaze public/product surfaces.
- Axal workspace surfaces.
- Pack local-first browser-extension surfaces.
- Tools at
tools.complyeaze.com. - External operational SaaS adopters, after local-link or artifact evidence is reviewed.
Tools is in scope as a documented future consumer only. Do not implement tool templates, routes, or product-specific APIs until a specific Tools product spec exists.
External adoption is in scope as public source evaluation only. Source package
manifests remain private at 0.0.0; the stable GitHub artifact pipeline rewrites
clean temporary package copies to the release version. External teams must use
the reviewed GitHub artifacts or a documented local link and record rollback
evidence.
Use Node 24+ and the repository-pinned pnpm@10.28.2 for install, build,
verification, and package checks. Package manifests currently declare
engines.node: ">=24". The Node 22.14.0+ publish-runtime note in the release
policy is an npm Trusted Publishing minimum, not a supported Sanchika package
runtime floor.
Stable GitHub artifact generation is narrower: use the exact Node version in
.node-version with its bundled npm. The stable release command rejects a
different Node, npm, or zlib runtime before building or emitting assets.
Ordinary gallery builds keep release.json.previousVersion as the published
current release and show release.json.version as the candidate. The stable
release runner promotes the candidate only for release evidence; Pages still
refuses deployment until the matching GitHub release and final bytes exist.
pnpm install
pnpm build:tokens
pnpm check:tokens
pnpm validate
pnpm typecheck
pnpm build
pnpm typecheck:api
pnpm artifact:check
pnpm gallery:build
pnpm gallery:check
pnpm pages:smoke
pnpm hosting:domain:check
pnpm smoke
pnpm consumer:check
pnpm workflow:preflight
pnpm publish:tarball-check
pnpm verifyIn sandboxed Codex runs, use the installed pnpm binary directly. corepack pnpm may fail if it cannot write to the user-level Corepack cache.
pnpm pages:smoke validates the deployed site's internally consistent current
release against GitHub's latest published stable release. After publishing, set
SANCHIKA_EXPECTED_RELEASE_VERSION to the new version to make promotion of
that exact release a blocking assertion without waiting for latest-release API
propagation.
release.json declares v0.1.1 as the stable artifact version for
@sanchika/tokens, @sanchika/primitives, and @sanchika/patterns. It remains
a candidate until detached release execution publishes it from the reviewed
merge commit. Until that publication, v0.1.0 remains the current published
release. After publication, the matching assets, manifest, checksums, and
release notes appear in the GitHub release history.
The packages are not published to npm, and the private gallery app is not part
of the release package set.
Load token variables before primitive styles:
@import "@sanchika/tokens/theme.css";
@import "@sanchika/primitives/styles.css";
@import "@sanchika/patterns/styles.css";Primitive styles consume Sanchika CSS variables and do not define product colors.
Use primitiveClassName(...) or equivalent class composition to apply
sk-button, sk-card, sk-badge, and sk-field contracts.
Use patternClassName(...) for the finite S7 product pattern variants and
states. The package exports 20 canonical patterns across public/product, Axal,
Pack, and Tools groups while preserving the legacy four-entry patternSpecs
shape.
apps/gallery is a private Astro static application. It imports contract data
from the public tokens, primitives, and patterns package entrypoints and
loads token CSS before primitive CSS. It is a showcase and documentation
surface, not a package that consumers import.
Run pnpm build to build the release packages and write the openable static
site. After those package artifacts exist, pnpm gallery:build rebuilds only
the gallery application:
apps/gallery/dist/index.html
apps/gallery/dist/_astro/*.css
Run pnpm gallery:check to fail unresolved @sanchika/* CSS references,
confirm token CSS precedes primitive and pattern CSS, and reject unintended
client JavaScript. The S8 gallery remains a static showcase with package-driven
primitive and pattern detail routes, local documentation search, and distinct
product-mode proofs; it is not a server, Storybook replacement, framework
adapter, runtime shell, or consumer package.
Pre-1.0 GitHub artifact release. The package contracts and gallery proof are reviewed, but real consumer adoption remains incomplete. Do not claim universal production readiness, framework coverage, or assistive-technology completeness. Until detached publication succeeds, v0.1.1 remains the declared candidate and v0.1.0 remains the current published release. No release after v0.1.1 is currently announced.
- Product context
- Design system guide
- Primitive contracts
- Pattern contracts
- ComplyEaze adoption
- Adoption evidence template
- Axal adoption
- Pack adoption
- Tools adoption
- External adoption
- AI-native tooling posture
- Contributing
- Support
- Code of Conduct
- Security policy
- Release policy
- v0.1.1 release notes
- v0.1.0 to v0.1.1 migration
- v0.1.0 release notes
- v0.0.2 to v0.1.0 migration
- Hosting
- GitHub repository setup
- Repository settings
- Brand and trademark notice