{"_id":"@3fn/core","_rev":"3-6629412dbeb8c2101c92a820e68218a5","name":"@3fn/core","dist-tags":{"latest":"14.1.0"},"versions":{"13.0.0":{"name":"@3fn/core","version":"13.0.0","author":{"name":"Peter Michaels Allen"},"license":"Apache-2.0","_id":"@3fn/core@13.0.0","maintainers":[{"name":"3fn","email":"70.flap.regrets@icloud.com"}],"homepage":"https://github.com/3fn/DesignerPunk#readme","bugs":{"url":"https://github.com/3fn/DesignerPunk/issues"},"bin":{"designerpunk":"bin/designerpunk.js"},"dist":{"shasum":"d3c61b7246c3511527dc21752d1c713b8659d3a6","tarball":"https://registry.npmjs.org/@3fn/core/-/core-13.0.0.tgz","fileCount":2547,"integrity":"sha512-p4r3C+jEZtOluuI5y6wI4HK+h4TxCMF4yI/Y8Whh4lobGmOTLMB+FpAs1I0KavZudxMmxd5pa+9zH9PkT3ZR3w==","signatures":[{"sig":"MEYCIQCKO+n1H/DWvIuFSoxPNL/0JrKJqzCeQavfhRE3hIDqOwIhANewyoznc7xVBdjCVuScbsrfT50ABuH1BB7cjANSqEzt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31387088},"main":"./dist/browser/designerpunk.esm.js","types":"./dist/browser-entry.d.ts","module":"./dist/browser/designerpunk.esm.js","browser":"./dist/browser/designerpunk.esm.js","exports":{".":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./blend":{"types":"./dist/blend/index.d.ts","import":"./dist/blend/index.js","require":"./dist/blend/index.js"},"./build":{"types":"./dist/build/tokens/index.d.ts","import":"./dist/build/tokens/index.js","require":"./dist/build/tokens/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.js"},"./grid.css":"./src/styles/responsive-grid.css","./components":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./tokens.css":"./dist/DesignTokens.web.css","./jest-preset":{"require":"./dist/testing/jest-preset.js"},"./package.json":"./package.json","./fonts/inter.css":"./src/assets/fonts/inter/inter.css","./fonts/figtree.css":"./src/assets/fonts/figtree/figtree.css","./fonts/rajdhani.css":"./src/assets/fonts/rajdhani/rajdhani.css","./component-tokens.css":"./dist/ComponentTokens.web.css","./fonts/commit-mono.css":"./src/assets/fonts/commit-mono/commit-mono.css"},"gitHead":"0adc196820da64a3d6375eada537cbaa9d7d59de","scripts":{"lint":"eslint 'src/components/**/*.ts' 'src/components/**/*.tsx' --no-error-on-unmatched-pattern","test":"jest --testPathIgnorePatterns='performance/__tests__|__tests__/performance|PerformanceValidation'","build":"tsc --skipLibCheck && npm run build:validate && npm run build:browser && npm run build:mcp","serve":"python3 -m http.server 8001","server":"python3 -m http.server 8001","prepack":"npm run build","prebuild":"npm run generate:types && npm run generate:platform-tokens","test:all":"jest","build:mcp":"npm run build:mcp-shared && npx esbuild application-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/application-mcp.js && npx esbuild mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/docs-mcp.js && npx esbuild product-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/product-mcp.js","figma:push":"npx tsx src/cli/figma-push.ts","test:quick":"jest --testPathIgnorePatterns='(performance|integration)'","test:watch":"jest --watch --testPathIgnorePatterns='performance/__tests__|__tests__/performance'","build:watch":"tsc --watch --skipLibCheck","check:drift":"node scripts/check-package-name-drift.js","postpublish":"git diff --quiet token-index/ || (git add token-index/ && git commit -m 'Regenerate token-index (post-publish)' && git push origin main)","release:run":"npx tsx src/tools/release/cli/release-tool.ts release","audit:tokens":"node scripts/audit-component-tokens.js","build:verify":"node verify-build.js","extract:meta":"tsx scripts/extract-component-meta.ts","build:browser":"node scripts/build-browser-bundles.js","figma:extract":"npx tsx src/cli/figma-extract.ts","release:notes":"npx tsx src/tools/release/cli/release-tool.ts notes","test:consumer":"jest --roots='<rootDir>/tests' --testMatch='**/consumer-integration.test.ts' --runInBand --testTimeout=120000 --forceExit","test:coverage":"jest --coverage --testPathIgnorePatterns='performance/__tests__|__tests__/performance'","build:validate":"npx tsx src/validators/buildValidation.ts","generate:types":"tsx scripts/generate-token-types.ts","prepublishOnly":"npm run build && npm run check:drift","release:analyze":"npx tsx src/tools/release/cli/release-tool.ts analyze","build:mcp-shared":"npx esbuild src/cli/shared/resolvePackageRoot.ts src/cli/shared/mcpDataRoots.ts --outdir=dist/cli/shared --platform=node --format=cjs --sourcemap","test:performance":"jest --testPathPatterns='performance/__tests__|__tests__/performance'","audit:mode-parity":"npx tsx src/validators/ModeParity.ts","audit:theme-drift":"npx tsx src/tools/ThemeFileGenerator.ts > /tmp/theme-skeleton-check.ts && diff -u src/tokens/themes/dark/SemanticOverrides.ts /tmp/theme-skeleton-check.ts || echo '⚠️  Theme file drift detected — regenerate with: npm run generate:theme-skeleton'","typecheck:scripts":"tsc -p tsconfig.scripts.json","check:id-uniqueness":"tsx scripts/check-id-uniqueness.ts","audit:tokens:detailed":"node scripts/audit-component-tokens.js -- --detailed","test:resolution-matrix":"node src/config/__resolution-matrix__/run-matrix.js","validate:release-setup":"node scripts/validate-release-setup.js","diagnose:release-issues":"node scripts/diagnose-release-issues.js","generate:theme-skeleton":"npx tsx src/tools/ThemeFileGenerator.ts","figma:generate-component":"npx tsx scripts/figma-component-generator.ts","generate:platform-tokens":"tsx scripts/generate-platform-tokens.ts","test:performance:isolated":"jest --config jest.performance.config.js --runInBand"},"_npmUser":{"name":"3fn","email":"70.flap.regrets@icloud.com"},"repository":{"url":"git+https://github.com/3fn/DesignerPunk.git","type":"git"},"_npmVersion":"10.9.3","description":"True Native cross-platform design system with mathematical foundations","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tsx":"~4.21.0","diff":"^7.0.0","uuid":"^13.0.0","dotenv":"^17.3.1","js-yaml":"^4.1.1","minimatch":"^9.0.5","@types/uuid":"^10.0.0","@octokit/rest":"^20.0.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","madge":"^8.0.0","eslint":"^10.5.0","esbuild":"^0.27.2","ts-jest":"^29.2.0","fast-check":"^4.4.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/semver":"^7.7.1","@types/js-yaml":"^4.0.9","figma-console-mcp":"^1.10.1","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/core_13.0.0_1783262186217_0.9913012745839973","host":"s3://npm-registry-packages-npm-production"}},"14.0.0":{"name":"@3fn/core","version":"14.0.0","author":{"name":"Peter Michaels Allen"},"license":"Apache-2.0","_id":"@3fn/core@14.0.0","maintainers":[{"name":"3fn","email":"70.flap.regrets@icloud.com"}],"homepage":"https://github.com/3fn/DesignerPunk#readme","bugs":{"url":"https://github.com/3fn/DesignerPunk/issues"},"bin":{"designerpunk":"bin/designerpunk.js"},"dist":{"shasum":"3b47ddf0570aabac47c5587e6585df176690a30b","tarball":"https://registry.npmjs.org/@3fn/core/-/core-14.0.0.tgz","fileCount":2569,"integrity":"sha512-S5FqXgr0rr7MEsNLzk9BWo+dMtuZgjbCgOpekeI3MAP2q7Khvw8eYNog04sudRaDTxG/PBl+U3cXyeoFEtVF8A==","signatures":[{"sig":"MEYCIQCKFskt+kZLgBb9HxDbRXyM14ish2WlDSWDUQ7OpF3JywIhANIxBP86tKnF6uM7eUQeY3NuM1r7RDXQyzkxWEeH34VS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31636179},"main":"./dist/browser/designerpunk.esm.js","types":"./dist/browser-entry.d.ts","module":"./dist/browser/designerpunk.esm.js","browser":"./dist/browser/designerpunk.esm.js","exports":{".":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./blend":{"types":"./dist/blend/index.d.ts","import":"./dist/blend/index.js","require":"./dist/blend/index.js"},"./build":{"types":"./dist/build/tokens/index.d.ts","import":"./dist/build/tokens/index.js","require":"./dist/build/tokens/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.js"},"./grid.css":"./src/styles/responsive-grid.css","./components":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./tokens.css":"./dist/DesignTokens.web.css","./jest-preset":{"require":"./dist/testing/jest-preset.js"},"./package.json":"./package.json","./fonts/inter.css":"./src/assets/fonts/inter/inter.css","./fonts/figtree.css":"./src/assets/fonts/figtree/figtree.css","./fonts/rajdhani.css":"./src/assets/fonts/rajdhani/rajdhani.css","./component-tokens.css":"./dist/ComponentTokens.web.css","./fonts/commit-mono.css":"./src/assets/fonts/commit-mono/commit-mono.css"},"gitHead":"b3379d8360d9889aeae5f5c4a05b46ccf52ec928","scripts":{"lint":"eslint 'src/components/**/*.ts' 'src/components/**/*.tsx' --no-error-on-unmatched-pattern","test":"jest --config jest.functional.config.js","build":"tsc --skipLibCheck && npm run build:validate && npm run build:browser && npm run build:mcp","serve":"python3 -m http.server 8001","server":"python3 -m http.server 8001","prepack":"npm run build","prebuild":"npm run generate:types && npm run generate:platform-tokens","test:all":"jest","build:mcp":"npm run build:mcp-shared && npx esbuild application-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/application-mcp.js && npx esbuild mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/docs-mcp.js && npx esbuild product-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/product-mcp.js","figma:push":"npx tsx src/cli/figma-push.ts","test:watch":"jest --watch --config jest.functional.config.js","build:watch":"tsc --watch --skipLibCheck","check:drift":"node scripts/check-package-name-drift.js","postpublish":"git diff --quiet token-index/ || echo '⚠️  token-index/ changed during publish — commit it via a PR (main is branch-protected; never push it directly). See .kiro/hooks/RELEASE-FLOW.md.'","release:run":"npx tsx src/tools/release/cli/release-tool.ts release","audit:tokens":"node scripts/audit-component-tokens.js","build:verify":"node verify-build.js","extract:meta":"tsx scripts/extract-component-meta.ts","build:browser":"node scripts/build-browser-bundles.js","figma:extract":"npx tsx src/cli/figma-extract.ts","release:notes":"npx tsx src/tools/release/cli/release-tool.ts notes","test:consumer":"jest --roots='<rootDir>/tests' --testMatch='**/consumer-integration.test.ts' --runInBand --testTimeout=120000 --forceExit","test:coverage":"jest --coverage --config jest.functional.config.js","build:validate":"npx tsx src/validators/buildValidation.ts","generate:types":"tsx scripts/generate-token-types.ts","prepublishOnly":"npm run build && npm run check:drift && npm run verify:token-index-clean","release:analyze":"npx tsx src/tools/release/cli/release-tool.ts analyze","build:mcp-shared":"npx esbuild src/cli/shared/resolvePackageRoot.ts src/cli/shared/mcpDataRoots.ts --outdir=dist/cli/shared --platform=node --format=cjs --sourcemap","test:performance":"jest --testPathPatterns='performance/__tests__|__tests__/performance'","audit:mode-parity":"npx tsx src/validators/ModeParity.ts","audit:theme-drift":"npx tsx src/tools/ThemeFileGenerator.ts > /tmp/theme-skeleton-check.ts && diff -u src/tokens/themes/dark/SemanticOverrides.ts /tmp/theme-skeleton-check.ts || echo '⚠️  Theme file drift detected — regenerate with: npm run generate:theme-skeleton'","typecheck:scripts":"tsc -p tsconfig.scripts.json","audit:coverage-map":"npx tsx tools/agent-generator/coverage-map.ts","check:id-uniqueness":"tsx scripts/check-id-uniqueness.ts","test:agent-generator":"jest --config tools/agent-generator/jest.config.js","audit:tokens:detailed":"node scripts/audit-component-tokens.js -- --detailed","test:resolution-matrix":"node src/config/__resolution-matrix__/run-matrix.js","validate:release-setup":"node scripts/validate-release-setup.js","diagnose:release-issues":"node scripts/diagnose-release-issues.js","generate:theme-skeleton":"npx tsx src/tools/ThemeFileGenerator.ts","figma:generate-component":"npx tsx scripts/figma-component-generator.ts","generate:platform-tokens":"tsx scripts/generate-platform-tokens.ts","verify:token-index-clean":"git diff --quiet token-index/ || (echo '✖ token-index/ is stale relative to the committed state. Regenerate and commit it on the RELEASE BRANCH (it traverses the PR gate with the version bump) before publishing. See .kiro/hooks/RELEASE-FLOW.md.' && exit 1)","test:performance:isolated":"jest --config jest.performance.config.js --runInBand"},"_npmUser":{"name":"3fn","email":"70.flap.regrets@icloud.com"},"repository":{"url":"git+https://github.com/3fn/DesignerPunk.git","type":"git"},"_npmVersion":"10.9.3","description":"True Native cross-platform design system with mathematical foundations","directories":{},"_nodeVersion":"22.20.0","dependencies":{"tsx":"~4.21.0","diff":"^7.0.0","uuid":"^13.0.0","dotenv":"^17.3.1","js-yaml":"^4.1.1","minimatch":"^9.0.5","@types/uuid":"^10.0.0","@octokit/rest":"^20.0.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","madge":"^8.0.0","eslint":"^10.5.0","esbuild":"^0.27.2","ts-jest":"^29.2.0","fast-check":"^4.4.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/semver":"^7.7.1","@types/js-yaml":"^4.0.9","figma-console-mcp":"^1.10.1","jest-environment-jsdom":"^30.2.0","@typescript-eslint/parser":"^8.62.0"},"_npmOperationalInternal":{"tmp":"tmp/core_14.0.0_1786505038857_0.9373188285174783","host":"s3://npm-registry-packages-npm-production"}},"14.1.0":{"name":"@3fn/core","version":"14.1.0","description":"True Native cross-platform design system with mathematical foundations","license":"Apache-2.0","author":{"name":"Peter Michaels Allen"},"repository":{"type":"git","url":"git+https://github.com/3fn/DesignerPunk.git"},"main":"./dist/browser/designerpunk.esm.js","module":"./dist/browser/designerpunk.esm.js","browser":"./dist/browser/designerpunk.esm.js","types":"./dist/browser-entry.d.ts","exports":{".":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./components":{"types":"./dist/browser-entry.d.ts","import":"./dist/browser/designerpunk.esm.js"},"./tokens.css":"./dist/DesignTokens.web.css","./component-tokens.css":"./dist/ComponentTokens.web.css","./config":{"types":"./dist/config/index.d.ts","import":"./dist/config/index.js","require":"./dist/config/index.js"},"./types":{"types":"./dist/types/index.d.ts","import":"./dist/types/index.js","require":"./dist/types/index.js"},"./build":{"types":"./dist/build/tokens/index.d.ts","import":"./dist/build/tokens/index.js","require":"./dist/build/tokens/index.js"},"./blend":{"types":"./dist/blend/index.d.ts","import":"./dist/blend/index.js","require":"./dist/blend/index.js"},"./jest-preset":{"require":"./dist/testing/jest-preset.js"},"./testing":{"types":"./dist/testing/index.d.ts","import":"./dist/testing/index.js","require":"./dist/testing/index.js"},"./grid.css":"./src/styles/responsive-grid.css","./fonts/inter.css":"./src/assets/fonts/inter/inter.css","./fonts/rajdhani.css":"./src/assets/fonts/rajdhani/rajdhani.css","./fonts/figtree.css":"./src/assets/fonts/figtree/figtree.css","./fonts/commit-mono.css":"./src/assets/fonts/commit-mono/commit-mono.css","./package.json":"./package.json"},"bin":{"designerpunk":"bin/designerpunk.js"},"publishConfig":{"registry":"https://npm.pkg.github.com"},"scripts":{"generate:types":"tsx scripts/generate-token-types.ts","generate:platform-tokens":"tsx scripts/generate-platform-tokens.ts","extract:meta":"tsx scripts/extract-component-meta.ts","prebuild":"npm run generate:types && npm run generate:platform-tokens","build":"tsc --skipLibCheck && npm run build:validate && npm run build:browser && npm run build:mcp","typecheck:scripts":"tsc -p tsconfig.scripts.json","build:browser":"node scripts/build-browser-bundles.js","build:mcp":"npm run build:mcp-shared && npx esbuild application-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/application-mcp.js && npx esbuild mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/docs-mcp.js && npx esbuild product-mcp-server/src/index.ts --bundle --platform=node --format=cjs --outfile=dist/mcp/product-mcp.js","build:mcp-shared":"npx esbuild src/cli/shared/resolvePackageRoot.ts src/cli/shared/mcpDataRoots.ts --outdir=dist/cli/shared --platform=node --format=cjs --sourcemap","build:watch":"tsc --watch --skipLibCheck","build:verify":"node verify-build.js","build:validate":"npx tsx src/validators/buildValidation.ts","lint":"eslint 'src/components/**/*.ts' 'src/components/**/*.tsx' --no-error-on-unmatched-pattern","test":"jest --config jest.functional.config.js","test:all":"jest","test:agent-generator":"jest --config tools/agent-generator/jest.config.js","test:consumer":"jest --roots='<rootDir>/tests' --testMatch='**/consumer-integration.test.ts' --runInBand --testTimeout=120000 --forceExit","test:resolution-matrix":"node src/config/__resolution-matrix__/run-matrix.js","test:performance":"jest --testPathPatterns='performance/__tests__|__tests__/performance'","test:performance:isolated":"jest --config jest.performance.config.js --runInBand","test:watch":"jest --watch --config jest.functional.config.js","test:coverage":"jest --coverage --config jest.functional.config.js","audit:tokens":"node scripts/audit-component-tokens.js","audit:tokens:detailed":"node scripts/audit-component-tokens.js -- --detailed","audit:coverage-map":"npx tsx tools/agent-generator/coverage-map.ts","audit:mode-parity":"npx tsx src/validators/ModeParity.ts","audit:theme-drift":"npx tsx src/tools/ThemeFileGenerator.ts > /tmp/theme-skeleton-check.ts && diff -u src/tokens/themes/dark/SemanticOverrides.ts /tmp/theme-skeleton-check.ts || echo '⚠️  Theme file drift detected — regenerate with: npm run generate:theme-skeleton'","generate:theme-skeleton":"npx tsx src/tools/ThemeFileGenerator.ts","serve":"python3 -m http.server 8001","server":"python3 -m http.server 8001","figma:push":"npx tsx src/cli/figma-push.ts","figma:extract":"npx tsx src/cli/figma-extract.ts","figma:generate-component":"npx tsx scripts/figma-component-generator.ts","check:drift":"node scripts/check-package-name-drift.js","check:id-uniqueness":"tsx scripts/check-id-uniqueness.ts","check:section-citations":"tsx scripts/check-section-citations.ts","prepack":"npm run build","verify:token-index-clean":"git diff --quiet token-index/ || (echo '✖ token-index/ is stale relative to the committed state. Regenerate and commit it on the RELEASE BRANCH (it traverses the PR gate with the version bump) before publishing. See .kiro/hooks/RELEASE-FLOW.md.' && exit 1)","prepublishOnly":"npm run build && npm run check:drift && npm run verify:token-index-clean","postpublish":"git diff --quiet token-index/ || echo '⚠️  token-index/ changed during publish — commit it via a PR (main is branch-protected; never push it directly). See .kiro/hooks/RELEASE-FLOW.md.'"},"devDependencies":{"@types/glob":"^8.1.0","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^20.0.0","@types/semver":"^7.7.1","@typescript-eslint/parser":"^8.62.0","esbuild":"^0.27.2","eslint":"^10.5.0","fast-check":"^4.4.0","figma-console-mcp":"^1.10.1","jest":"^30.0.0","jest-environment-jsdom":"^30.2.0","madge":"^8.0.0","ts-jest":"^29.2.0","typescript":"^5.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@octokit/rest":"^20.0.0","@types/uuid":"^10.0.0","diff":"^7.0.0","dotenv":"^17.3.1","js-yaml":"^4.1.1","minimatch":"^9.0.5","tsx":"~4.21.0","uuid":"^13.0.0"},"_id":"@3fn/core@14.1.0","gitHead":"de7fa87d30e805d1715f3bedfcb81e43753d24c8","bugs":{"url":"https://github.com/3fn/DesignerPunk/issues"},"homepage":"https://github.com/3fn/DesignerPunk#readme","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-HHsWjT082NYG+U+GsuJ6IygD6YK/4N23fa/ZHBLqII/ldYh8YlMm594TW/9JPNiLGIXW6jzhPXTWIpplbXF2xQ==","shasum":"5bdeff14394a23a56afec224b1c3216ccd8ed778","tarball":"https://registry.npmjs.org/@3fn/core/-/core-14.1.0.tgz","fileCount":2544,"unpackedSize":31550138,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwKB6b+8UtpmsL818ZlrgTvWX4Hccfh/KU8Yii18oRigIgTWNNdAakNYIL/c0d1fFvwIFECuE0yKwbVFr1JWLwdzw="}]},"_npmUser":{"name":"3fn","email":"70.flap.regrets@icloud.com"},"directories":{},"maintainers":[{"name":"3fn","email":"70.flap.regrets@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_14.1.0_1787753752876_0.06285866361608572"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-05T14:36:26.025Z","modified":"2026-08-26T14:15:53.332Z","13.0.0":"2026-07-05T14:36:26.538Z","14.0.0":"2026-08-12T03:23:59.114Z","14.1.0":"2026-08-26T14:15:53.143Z"},"bugs":{"url":"https://github.com/3fn/DesignerPunk/issues"},"author":{"name":"Peter Michaels Allen"},"license":"Apache-2.0","homepage":"https://github.com/3fn/DesignerPunk#readme","repository":{"type":"git","url":"git+https://github.com/3fn/DesignerPunk.git"},"description":"True Native cross-platform design system with mathematical foundations","maintainers":[{"name":"3fn","email":"70.flap.regrets@icloud.com"}],"readme":"# DesignerPunk\n\n[![Version](https://img.shields.io/badge/Version-12.0.5-purple)](docs/releases/RELEASE-NOTES-12.0.0.md)\n[![Repository](https://img.shields.io/badge/GitHub-DesignerPunk-blue)](https://github.com/3fn/DesignerPunk)\n[![License](https://img.shields.io/badge/License-Apache--2.0-green.svg)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![Tests](https://img.shields.io/badge/Tests-8936%2B-brightgreen)](.)\n\n---\n\nDesign systems are no longer simply tools for brand consistency. They're a shared context and working agreement between humans and AI agents for building software together. This is not the future; this is today. This is essential infrastructure for teams of any size, where machines query and validate with precision while humans contribute intent and meaning. DesignerPunk is built from the ground up to deliver this collaborative reality.\n\n---\n\n## The Challenge\n\nFor AI agents to be genuine collaborators in design system work, three things need to be true:\n\n1. Every design decision must be queryable, not buried in docs humans forgot to update\n2. Every component contract must be machine-validatable, not implicit tribal knowledge\n3. Institutional context must persist across sessions, not reset every conversation\n\nNo publicly available design system solves for these. They're built for human consumption and retrofitted for machines as an afterthought — if retrofitted at all.\n\n---\n\n## The Ecosystem\n\nDesignerPunk is an ecosystem, not just a design system. Not \"ecosystem\" in the tech-industry sense of selling you more shit for your living room. Ecosystem in the biological sense: a shared environment where interdependent systems sustain each other and evolve together. This is punk.\n\nIts three foundational systems (Rosetta, Stemma, Civitas) are interdependent: tokens feed components, components depend on governance, governance maintains the health of both. Humans and AI agents co-exist within this ecosystem as partners with distinct, complementary roles. The system is designed to evolve, not just to ship.\n\n---\n\n### Rosetta: The Mathematical Foundation\n\n**What it is:** A token system and build pipeline that translates design intent into platform-native code.\n\n**What it solves:** Every value is mathematical, not arbitrary. Machines validate relationships; humans define intent.\n\n**Deliverables:** 437 tokens across spacing, sizing, color, typography, radius, shadow, glow, motion, opacity, blend, and blur. Cross-platform generation to CSS, Swift, Kotlin, and DTCG JSON. Three-tier architecture: Primitive → Semantic → Component.\n\n**How AI agents access it:**\n```\nget_token_details({ name: \"space150\" })\n→ { value: 12, formula: \"base × 1.5\", tier: \"primitive\", platforms: { web: \"0.75rem\", ios: \"12pt\", android: \"12dp\" } }\n```\n\n---\n\n### Stemma: The Component Architecture\n\n**What it is:** A framework for building components that behave identically across platforms while staying native.\n\n**What it solves:** Every component makes explicit behavioral promises. Machines validate contracts; humans define interaction intent.\n\n**Deliverables:** 34 production components with behavioral contracts. 10 contract categories, 136 concepts. True native implementations (Web Components, SwiftUI, Jetpack Compose). Formal inheritance with intentional exclusions.\n\n**How AI agents access it:**\n```\nfind_components({ context: \"login-forms\" })\n→ [Input-Text-Email, Input-Text-Password, Button-CTA] with selection guidance, accessibility notes, and composition rules\n```\n\n---\n\n### Civitas: The Governance Layer\n\n**What it is:** The steering documentation, agent configurations, automation, and processes that bind the ecosystem together.\n\n**What it solves:** Institutional knowledge persists across sessions. Machines query what they need progressively; humans maintain the source of truth.\n\n**Deliverables:** 88 steering documents with progressive disclosure. 3 MCP servers (docs, application, product). 8 specialized AI agents with domain boundaries. 13 validation hooks. Automated release detection and completion documentation system. 109+ specs encoding institutional decisions.\n\n**The agent system:**\n\n| Agent | Domain | Named After | Why |\n|-------|--------|-------------|-----|\n| Ada | Token system (Rosetta) | [Ada Lovelace](https://en.wikipedia.org/wiki/Ada_Lovelace) | Saw computing as more than calculation |\n| Lina | Component system (Stemma) | [Lina Bo Bardi](https://en.wikipedia.org/wiki/Lina_Bo_Bardi) | Architecture that serves people, not ego |\n| Thurgood | Governance & testing (Civitas) | [Thurgood Marshall](https://en.wikipedia.org/wiki/Thurgood_Marshall) | Held systems accountable to their own promises |\n| Leonardo | Product architecture | [Leonardo da Vinci](https://en.wikipedia.org/wiki/Leonardo_da_Vinci) | Unified art and engineering |\n| Sparky | Web platform | [Sarah Parks](https://www.linkedin.com/in/sarahparks/) | Collaborative power between design and engineering |\n| Kenya | iOS platform | [Kenya Hara](https://en.wikipedia.org/wiki/Kenya_Hara) | Simplicity as sophistication |\n| Data | Android platform | [Commander Data](https://en.wikipedia.org/wiki/Data_(Star_Trek)) | Precision with aspiration toward human understanding |\n| Stacy | Product QA | [Stacey Abrams](https://en.wikipedia.org/wiki/Stacey_Abrams) | Ensured systems deliver on their promises |\n\nEach agent knows what it owns, what it doesn't, and who to defer to. No agent operates without constraints.\n\n**How AI agents access it:**\n```\nget_section({ path: \"Token-Governance.md\", heading: \"Token Selection Matrix\" })\n→ Exactly the governance context needed for this decision, not the entire 2,000-line document\n```\n\n---\n\n## Result\n\nThe architecture is the argument. The numbers are the evidence.\n\n**By the numbers:**\n- 8,936 tests passing across 369 test suites\n- 34 production components with full cross-platform implementations\n- 437 design tokens with mathematical relationships\n- 3 MCP servers enabling progressive, context-efficient AI access\n- 8 AI agents with domain-scoped expertise operating within defined boundaries\n- 109+ specs documenting every architectural decision and its rationale\n- Published as `@3fn/core` on GitHub Packages with a working CLI (`npx designerpunk`)\n\n**What this enables:**\n- An AI agent can select the right component for a login form, validate the assembly, and generate platform-native code without a human explaining the system from scratch every session\n- Products define their own tokens (`product/tokens/*.yaml`) with structured governance — the system generates platform-native output and makes them queryable via MCP alongside system tokens\n- The system self-documents its own evolution: every completed task produces completion documentation and triggers release analysis automatically\n- A new agent (or a new human) can onboard by querying the MCP servers rather than reading thousands of lines of documentation linearly\n- Token changes propagate to all three platforms through a single generation pipeline with mathematical validation at every step\n- Design tokens export to DTCG JSON and Figma Variables, enabling canvas tools to sync with live code\n\n**Where it stands today:**\n\nThe ecosystem creates, maintains, and evolves itself as intended. AI agents and humans collaborate on token creation, component development, governance, and cross-platform generation daily.\n\nGuiding agents to apply tokens and components to product design specs is the current top priority. The foundational infrastructure to support this is operating, but requires further maturation and refinement.\n\n---\n\n## Getting Started\n\n**Use it in your project:**\n```bash\nnpm install @3fn/core\nnpx designerpunk init\nnpx designerpunk generate\nnpx designerpunk sync        # after upgrades — detects and applies stale files\n```\nNot comfortable with terminal commands? Ask your AI agent to follow these steps. That's the point.\n\n[Full integration guide →](docs/integration-guide.md)\n\n**Study the architecture:**\n- [DesignerPunk Systems Overview](.kiro/steering/DesignerPunk-Systems-Overview.md)\n- [Steering documentation](.kiro/steering/) (88 docs, the governance layer in practice)\n- [AI Collaboration Framework](.kiro/steering/AI-Collaboration-Framework.md)\n\n---\n\n## Why Punk\n\nPunk isn't an aesthetic. It's a stance: the tools to create should not be gatekept by those who can afford enterprise licenses, dedicated teams, or years of specialized training.\n\nDesignerPunk exists so that a solo founder, a small team, or a community organizer can have the same systematic infrastructure that Fortune 500 companies build behind closed doors and never share. AI eliminates the barrier to entry. This system levels the competitive field.\n\n---\n\n## Engineering Approach\n\nThe new coding language isn't React, Swift, or Kotlin. It's English.\n\nI provide architectural direction, design decisions, and quality standards. AI agents execute implementation within those constraints. This is the producer/musician model: I shape the sound; I don't play every instrument. We make music together.\n\nThe system is tool-agnostic by design. The architecture is the constant; which AI, IDE, CLI, or design tool you use is interchangeable. This isn't a workaround. It's the methodology the system was built to prove.\n\nNote: primarily developed on Kiro IDE and CLI. Broader tool support is in progress.\n\n8,936 tests. 34 components across three platforms. A published package with a working CLI. All architected through this model.\n\n---\n\n## About\n\n**Peter Michaels Allen** — Design Systems Architect & Design Engineer\n\n18 years of design experience. 10+ years creating and managing design systems at scale at Reddit, Venmo, and PayPal, and across enterprise, healthcare, fintech, government, and gaming. DesignerPunk is the synthesis: a working system that demonstrates how design systems, cross-platform architecture, and AI collaboration converge.\n\n[![Punk Your Design w/ Peter Michaels Allen | Wireframe Live](https://img.youtube.com/vi/sFjNMasG_mU/maxresdefault.jpg)](https://www.youtube.com/live/sFjNMasG_mU)\n*Punk Your Design — a conversation about the philosophy and architecture behind DesignerPunk on Design Systems House*\n\n[LinkedIn](https://www.linkedin.com/in/petermichaelsallen/) · [GitHub](https://github.com/3fn)\n\n---\n\n## License\n\nApache-2.0 — See [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}