{"schemaVersion":"1.0.0-draft","run":{"toolVersion":"0.3.1","timestamp":"2026-08-28T08:54:01.510Z","commit":"a764589f3204fa7d8eea1c3027ca85c29c039dc1","configDigest":"cc496b3057aa1ae1b69a3cfefb5098801e80c9ca24cdd815c853f781b7e59a73"},"project":{"name":"mantyl-monorepo","stack":["typescript","node"],"services":[]},"setup":{"steps":[{"id":"setup:check-install","status":"locally-verified","refs":[{"kind":"check","checkId":"check-install"}],"command":"corepack enable && pnpm install --frozen-lockfile"},{"id":"setup:check-build","status":"locally-verified","refs":[{"kind":"check","checkId":"check-build"}],"command":"corepack enable && pnpm run build"}],"env":[{"id":"env:ANTHROPIC_API_KEY","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/cli/src/index.ts","lines":[459,459]},{"kind":"file","path":"packages/core/src/analysis.ts","lines":[190,190]},{"kind":"file","path":".env.example"}],"name":"ANTHROPIC_API_KEY","documented":true},{"id":"env:APPDATA","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/adapter-cursor/src/index.ts","lines":[37,37]}],"name":"APPDATA","documented":false},{"id":"env:BLOB_READ_WRITE_TOKEN","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/passport-store.ts","lines":[123,123]},{"kind":"file","path":"apps/web/src/lib/user-links.ts","lines":[38,38]},{"kind":"file","path":"apps/web/src/lib/user-links.ts","lines":[62,62]},{"kind":"file","path":"apps/web/src/lib/verify-jobs.ts","lines":[304,304]}],"name":"BLOB_READ_WRITE_TOKEN","documented":false},{"id":"env:GITHUB_DISPATCH_TOKEN","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/dispatch-worker.ts","lines":[14,14]}],"name":"GITHUB_DISPATCH_TOKEN","documented":false},{"id":"env:MANTYL_API","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/worker/src/index.ts","lines":[26,26]}],"name":"MANTYL_API","documented":false},{"id":"env:MANTYL_SIGNING_PRIVATE_KEY","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/worker/src/index.ts","lines":[67,67]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[177,177]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[180,180]}],"name":"MANTYL_SIGNING_PRIVATE_KEY","documented":false},{"id":"env:MANTYL_SIGNING_PUBLIC_KEY","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/app/api/signing-key/route.ts","lines":[9,9]},{"kind":"file","path":"apps/web/src/app/p/[id]/page.tsx","lines":[61,61]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[68,68]}],"name":"MANTYL_SIGNING_PUBLIC_KEY","documented":false},{"id":"env:MANTYL_TOKEN","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/cli/src/index.ts","lines":[303,303]}],"name":"MANTYL_TOKEN","documented":false},{"id":"env:MANTYL_WORKER_TOKEN","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/worker/src/index.ts","lines":[27,27]}],"name":"MANTYL_WORKER_TOKEN","documented":false},{"id":"env:VERCEL","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/passport-store.ts","lines":[124,124]},{"kind":"file","path":"apps/web/src/lib/verify-jobs.ts","lines":[90,90]},{"kind":"file","path":"apps/web/src/lib/verify-jobs.ts","lines":[305,305]},{"kind":"file","path":".env.example"}],"name":"VERCEL","documented":true},{"id":"env:VERCEL_PROJECT_PRODUCTION_URL","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/app/checkout/[id]/page.tsx","lines":[132,132]},{"kind":"file","path":".env.example"}],"name":"VERCEL_PROJECT_PRODUCTION_URL","documented":true},{"id":"env:WHOP_ACCOUNT_ID","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[48,48]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[89,89]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[92,92]}],"name":"WHOP_ACCOUNT_ID","documented":false},{"id":"env:WHOP_API_BASE","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[40,40]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[40,40]}],"name":"WHOP_API_BASE","documented":false},{"id":"env:WHOP_API_KEY","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[48,48]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[82,82]}],"name":"WHOP_API_KEY","documented":false},{"id":"env:WHOP_ENV","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/app/checkout/[id]/page.tsx","lines":[133,133]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[41,41]}],"name":"WHOP_ENV","documented":false},{"id":"env:WHOP_WEBHOOK_SECRET","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/src/app/api/webhooks/whop/route.ts","lines":[16,16]}],"name":"WHOP_WEBHOOK_SECRET","documented":false}]},"architecture":{"narrative":{"status":"inferred","text":"Mantyl is a pnpm/TypeScript monorepo implementing a 'software handover' tool: it inspects a repository, gathers evidence from coding-agent sessions and executed verification, and renders a 'project passport' for whoever inherits the codebase. The architecture is cleanly modular: apps/cli is the primary product; apps/web is a Next.js marketing site plus hosted passport pages; apps/worker is a smaller background-job service with its own CI verification workflow. The packages/ tree separates concerns tightly — schema (canonical passport contract), core (workflow/exit-code logic), evidence (evidence graph), config, collectors-git and collectors-repository (raw observation gathering), three adapter packages for AI coding agents (Claude Code, Codex, Cursor), a Node/TS verifier, a Docker-based sandbox runner, HTML/Markdown renderers, and a signing package for cryptographic authenticity of passports. Documentation is unusually thorough for a project this size, with an architecture spec, implementation plan, GTM plan, and a design-system spec, and the working tree is clean at a pinned commit. The env-var surface is large and touches payment/membership (Whop), cloud storage (Vercel Blob), GitHub dispatch automation, and passport signing keys — most of which are undocumented, meaning the new owner will need to reconstruct configuration and secret-provisioning knowledge largely from source rather than docs. Some local-only artifacts (a packed CLI tarball, a passport-store directory with opaque hashed filenames, Next.js build caches) are untracked and represent machine state rather than delivered project content.","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"},{"kind":"file","path":"apps/web/next-env.d.ts"},{"kind":"file","path":"apps/web/next.config.ts"},{"kind":"file","path":"apps/web/src/app/account/page.tsx"},{"kind":"file","path":"apps/web/src/app/api/auth/[...nextauth]/route.ts"},{"kind":"file","path":"apps/web/src/app/api/checkout/route.ts"},{"kind":"file","path":"apps/web/src/app/api/passports/[id]/route.ts"},{"kind":"file","path":"apps/web/src/app/api/passports/route.ts"}]},"modules":[{"id":"module:apps/cli","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/cli/package.json"}],"name":"cli","path":"apps/cli"},{"id":"module:apps/web","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/web/package.json"}],"name":"web","path":"apps/web"},{"id":"module:apps/worker","status":"repository-confirmed","refs":[{"kind":"file","path":"apps/worker/package.json"}],"name":"worker","path":"apps/worker"},{"id":"module:packages/adapter-claude-code","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/adapter-claude-code/package.json"}],"name":"adapter-claude-code","path":"packages/adapter-claude-code"},{"id":"module:packages/adapter-codex","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/adapter-codex/package.json"}],"name":"adapter-codex","path":"packages/adapter-codex"},{"id":"module:packages/adapter-cursor","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/adapter-cursor/package.json"}],"name":"adapter-cursor","path":"packages/adapter-cursor"},{"id":"module:packages/collectors-git","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/collectors-git/package.json"}],"name":"collectors-git","path":"packages/collectors-git"},{"id":"module:packages/collectors-repository","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/collectors-repository/package.json"}],"name":"collectors-repository","path":"packages/collectors-repository"},{"id":"module:packages/config","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/config/package.json"}],"name":"config","path":"packages/config"},{"id":"module:packages/core","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/core/package.json"}],"name":"core","path":"packages/core"},{"id":"module:packages/evidence","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/evidence/package.json"}],"name":"evidence","path":"packages/evidence"},{"id":"module:packages/renderer-html","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/renderer-html/package.json"}],"name":"renderer-html","path":"packages/renderer-html"},{"id":"module:packages/renderer-markdown","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/renderer-markdown/package.json"}],"name":"renderer-markdown","path":"packages/renderer-markdown"},{"id":"module:packages/runner-docker","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/runner-docker/package.json"}],"name":"runner-docker","path":"packages/runner-docker"},{"id":"module:packages/schema","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/schema/package.json"}],"name":"schema","path":"packages/schema"},{"id":"module:packages/signing","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/signing/package.json"}],"name":"signing","path":"packages/signing"},{"id":"module:packages/verifier-node","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/verifier-node/package.json"}],"name":"verifier-node","path":"packages/verifier-node"}]},"decisions":[{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:3ff2faf8-87fc-43c4-960b-62fd1ce4f1c7:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"3ff2faf8-87fc-43c4-960b-62fd1ce4f1c7"}],"title":"I want to create a really strong landing page that has a top tier design system and clearly communicates the idea","rationale":"I want to create a really strong landing page that has a top tier design system and clearly communicates the idea","date":"2026-07-15"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:3ff2faf8-87fc-43c4-960b-62fd1ce4f1c7:1","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"3ff2faf8-87fc-43c4-960b-62fd1ce4f1c7"}],"title":"I want to create an outstanding landing page","rationale":"I want to create an outstanding landing page","date":"2026-07-15"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:739b46d9-d337-470c-9741-5d60f1b8e481:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"739b46d9-d337-470c-9741-5d60f1b8e481"}],"title":"I want this to be built with next so if I build it our properly the SEO is great from the start","rationale":"I want this to be built with next so if I build it our properly the SEO is great from the start","date":"2026-07-15"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:f44fca32-db65-4c78-8cbb-828a0b2ac3e2:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"f44fca32-db65-4c78-8cbb-828a0b2ac3e2"}],"title":"lets pick something else please","rationale":"lets pick something else please","date":"2026-07-15"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:271916dd-c518-46f1-baa1-4d85c9b6e258:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"271916dd-c518-46f1-baa1-4d85c9b6e258"}],"title":"I want to commit this to my github account, private repo and not on any of the organisations im a part of please make sure it just ends up o","rationale":"I want to commit this to my github account, private repo and not on any of the organisations im a part of please make sure it just ends up on my account only","date":"2026-07-16"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:63eef21a-4176-4b4c-a1ce-884a916dd098:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"63eef21a-4176-4b4c-a1ce-884a916dd098"}],"title":"we are rebranding to cueset, please change any text related","rationale":"we are rebranding to cueset, please change any text related","date":"2026-07-16"},{"id":"decision:creator:748ec801-ad41-4abe-bca4-c2fbfc87bfa6:164a329f-ba6e-4071-9e36-43fbf4f1503b:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"748ec801-ad41-4abe-bca4-c2fbfc87bfa6","messageId":"164a329f-ba6e-4071-9e36-43fbf4f1503b"}],"title":"I want this to be top tier and not something that's been done before, the overall idea is to allow picking up and verification of AI project","rationale":"I want this to be top tier and not something that's been done before, the overall idea is to allow picking up and verification of AI projects between developers and clients and potentially shari","date":"2026-07-21"},{"id":"decision:creator:0889cddc-64aa-42ec-9373-8b55ff905431:063d779d-0dfd-4cdc-8c97-6981fe08442f:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"0889cddc-64aa-42ec-9373-8b55ff905431","messageId":"063d779d-0dfd-4cdc-8c97-6981fe08442f"}],"title":"lets use opus or a cost efficient model to do the analysis with","rationale":"lets use opus or a cost efficient model to do the analysis with","date":"2026-07-22"},{"id":"decision:creator:0889cddc-64aa-42ec-9373-8b55ff905431:4e54e7b0-a7bf-4ee0-8688-46987f427e49:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"0889cddc-64aa-42ec-9373-8b55ff905431","messageId":"4e54e7b0-a7bf-4ee0-8688-46987f427e49"}],"title":"I want to bench the productisation for the time being and get the core idea & product fully built and not beind a literal payawall yet","rationale":"I want to bench the productisation for the time being and get the core idea & product fully built and not beind a literal payawall yet","date":"2026-07-23"},{"id":"decision:creator:0889cddc-64aa-42ec-9373-8b55ff905431:06c4e3cf-6fea-45a1-94d4-3aad7fb7e967:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"0889cddc-64aa-42ec-9373-8b55ff905431","messageId":"06c4e3cf-6fea-45a1-94d4-3aad7fb7e967"}],"title":"I want to share this with a small user group initally","rationale":"I want to share this with a small user group initally","date":"2026-07-24"},{"id":"decision:creator:0889cddc-64aa-42ec-9373-8b55ff905431:1780fd6d-bad1-4bec-80e9-04923baa532e:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"0889cddc-64aa-42ec-9373-8b55ff905431","messageId":"1780fd6d-bad1-4bec-80e9-04923baa532e"}],"title":"I want to build out the base product","rationale":"I want to build out the base product","date":"2026-08-18"},{"id":"decision:creator:0889cddc-64aa-42ec-9373-8b55ff905431:1780fd6d-bad1-4bec-80e9-04923baa532e:1","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"0889cddc-64aa-42ec-9373-8b55ff905431","messageId":"1780fd6d-bad1-4bec-80e9-04923baa532e"}],"title":"I want to launch through sites like product hunt and then sync some money into marketing and see what happens, organic socials isn't an opti","rationale":"I want to launch through sites like product hunt and then sync some money into marketing and see what happens, organic socials isn't an option for this product","date":"2026-08-18"},{"id":"decision:creator:489f19cb-68c5-4484-b482-37d42bf0cb07:03c3208f-c6da-43c5-8a51-47070ba63c16:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"489f19cb-68c5-4484-b482-37d42bf0cb07","messageId":"03c3208f-c6da-43c5-8a51-47070ba63c16"}],"title":"I want to make use of which allows you to create ad creative via AI and get started proving product on their application really quickly","rationale":"I want to make use of which allows you to create ad creative via AI and get started proving product on their application really quickly","date":"2026-08-26"},{"id":"decision:creator:489f19cb-68c5-4484-b482-37d42bf0cb07:9c394176-736b-465a-a131-035ce929c8e0:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"489f19cb-68c5-4484-b482-37d42bf0cb07","messageId":"9c394176-736b-465a-a131-035ce929c8e0"}],"title":"I want to work on a landing page uplift, where we create a PRD based on these website refernces and anaalyse the sales tactics, pshycology a","rationale":"I want to work on a landing page uplift, where we create a PRD based on these website refernces and anaalyse the sales tactics, pshycology and layout","date":"2026-08-26"},{"id":"decision:creator:489f19cb-68c5-4484-b482-37d42bf0cb07:934eb1eb-9043-4739-b32e-be0691ba841f:0","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"489f19cb-68c5-4484-b482-37d42bf0cb07","messageId":"934eb1eb-9043-4739-b32e-be0691ba841f"}],"title":"I want to ensure that we have full SEO compatibility including indexing and content guides, we also need to set-up a proper tracking layer f","rationale":"I want to ensure that we have full SEO compatibility including indexing and content guides, we also need to set-up a proper tracking layer for the ads","date":"2026-08-28"},{"id":"decision:creator:489f19cb-68c5-4484-b482-37d42bf0cb07:934eb1eb-9043-4739-b32e-be0691ba841f:1","status":"creator-confirmed","refs":[{"kind":"session","sessionId":"489f19cb-68c5-4484-b482-37d42bf0cb07","messageId":"934eb1eb-9043-4739-b32e-be0691ba841f"}],"title":"I want to ensure that once we start ads UX is good across the board and we are immediatley providing value","rationale":"I want to ensure that once we start ads UX is good across the board and we are immediatley providing value","date":"2026-08-28"}],"claims":[],"risks":[{"id":"risk:env:undocumented","status":"repository-confirmed","refs":[{"kind":"file","path":"packages/adapter-cursor/src/index.ts","lines":[37,37]},{"kind":"file","path":"apps/web/src/lib/passport-store.ts","lines":[123,123]},{"kind":"file","path":"apps/web/src/lib/dispatch-worker.ts","lines":[14,14]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[26,26]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[67,67]},{"kind":"file","path":"apps/web/src/app/api/signing-key/route.ts","lines":[9,9]},{"kind":"file","path":"apps/cli/src/index.ts","lines":[303,303]},{"kind":"file","path":"apps/worker/src/index.ts","lines":[27,27]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[48,48]},{"kind":"file","path":"apps/web/src/lib/whop.ts","lines":[40,40]}],"severity":"medium","text":"13 environment variables are required but undocumented (APPDATA, BLOB_READ_WRITE_TOKEN, GITHUB_DISPATCH_TOKEN, MANTYL_API, MANTYL_SIGNING_PRIVATE_KEY, MANTYL_SIGNING_PUBLIC_KEY and 7 more) — the next owner will discover them at runtime","remediation":"Document every required variable in .env.example"},{"id":"risk:inferred:0","status":"inferred","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"}],"severity":"high","text":"Several environment variables tied to security-sensitive functionality (MANTYL_SIGNING_PRIVATE_KEY, MANTYL_SIGNING_PUBLIC_KEY, MANTYL_TOKEN, MANTYL_WORKER_TOKEN, GITHUB_DISPATCH_TOKEN) are referenced in code but not documented anywhere, so the new owner has no guidance on how these secrets are generated, stored, or rotated. (basis: factStatements list MANTYL_SIGNING_PRIVATE_KEY, MANTYL_SIGNING_PUBLIC_KEY, MANTYL_TOKEN, MANTYL_WORKER_TOKEN, and GITHUB_DISPATCH_TOKEN as 'referenced but NOT documented'.)"},{"id":"risk:inferred:1","status":"inferred","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"}],"severity":"high","text":"A cluster of Whop-related environment variables (WHOP_ACCOUNT_ID, WHOP_API_BASE, WHOP_API_KEY, WHOP_ENV, WHOP_WEBHOOK_SECRET) indicates an undocumented payment/membership integration; the new owner may not understand billing or webhook behavior without reading the relevant source directly. (basis: factStatements list all five WHOP_* variables as 'referenced but NOT documented', and none of docs/, README, or .env.example excerpts mention Whop.)"},{"id":"risk:inferred:2","status":"inferred","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"}],"severity":"medium","text":"BLOB_READ_WRITE_TOKEN and MANTYL_API are undocumented, suggesting the web app or worker depends on external storage and an API endpoint whose setup is not explained in onboarding docs. (basis: factStatements list BLOB_READ_WRITE_TOKEN and MANTYL_API as 'referenced but NOT documented'.)"},{"id":"risk:inferred:3","status":"inferred","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"}],"severity":"medium","text":"The signing package, which appears to manage cryptographic keys for passport authenticity, is represented by only 4 files in the directory map, giving limited visibility into how key material is generated, validated, or protected. (basis: directories lists packages/signing (4 files); only package.json and src/index.test.ts appear in filePaths, with no src/index.ts sampled, and MANTYL_SIGNING_PRIVATE_KEY/PUBLIC_KEY are undocumented env vars.)"},{"id":"risk:inferred:4","status":"inferred","refs":[{"kind":"file","path":"apps/cli/src/index.ts"},{"kind":"file","path":"apps/cli/tsup.config.ts"},{"kind":"file","path":"apps/web/eslint.config.mjs"}],"severity":"low","text":"Untracked local artifacts include a packed CLI tarball (mantyl-0.1.0.tgz) and a .passport-store directory of opaquely-named JSON files under apps/web; if these are relied upon locally by any developer without being part of the committed repo, onboarding or reproducibility could silently break. (basis: untrackedPaths includes apps/cli/mantyl-0.1.0.tgz and three apps/web/.passport-store/*.json files, which per the rules are local machine state not delivered with the repository.)"}],"incomplete":[],"verification":{"plan":[{"id":"check-install","kind":"install","command":"corepack enable && pnpm install --frozen-lockfile","reason":"dependencies locked with pnpm","selected":true},{"id":"check-build","kind":"build","command":"corepack enable && pnpm run build","reason":"package.json defines a \"build\" script","selected":true},{"id":"check-typecheck","kind":"typecheck","command":"corepack enable && pnpm run typecheck","reason":"package.json defines a \"typecheck\" script","selected":true},{"id":"check-test","kind":"test","command":"corepack enable && pnpm run test","reason":"package.json defines a \"test\" script","selected":true},{"id":"check-lint","kind":"lint","command":"corepack enable && pnpm run lint","reason":"package.json defines a \"lint\" script","selected":true}],"results":[{"checkId":"check-install","outcome":"passed","command":"corepack enable && pnpm install --frozen-lockfile","exitCode":0,"startedAt":"2026-08-28T08:52:20.443Z","durationMs":12805,"logsDigest":"8ceeb22c0e6c8b5adb723a9b5d45e720bdd1a3b44cc65c405c0e6a7a064a3bce","envFingerprint":"docker:node:22-bookworm"},{"checkId":"check-build","outcome":"passed","command":"corepack enable && pnpm run build","exitCode":0,"startedAt":"2026-08-28T08:52:34.121Z","durationMs":28941,"logsDigest":"95f2fd878d29d0aa1a7e2cb9249741120d328a13482d58cf22baf32898c67d20","envFingerprint":"docker:node:22-bookworm"},{"checkId":"check-typecheck","outcome":"passed","command":"corepack enable && pnpm run typecheck","exitCode":0,"startedAt":"2026-08-28T08:53:03.063Z","durationMs":19465,"logsDigest":"389fc8ddb9baf0fdd80f0e9d7753270b7f6cb82eaea77f1152268a50288d4c42","envFingerprint":"docker:node:22-bookworm"},{"checkId":"check-test","outcome":"passed","command":"corepack enable && pnpm run test","exitCode":0,"startedAt":"2026-08-28T08:53:22.530Z","durationMs":29549,"logsDigest":"217f01937b7f1c9227bc18b13b7eb1d009df9e5cd695029677d52707b6c30567","envFingerprint":"docker:node:22-bookworm"},{"checkId":"check-lint","outcome":"passed","command":"corepack enable && pnpm run lint","exitCode":0,"startedAt":"2026-08-28T08:53:52.080Z","durationMs":5395,"logsDigest":"eacd73ccb7d9553e99f6fe9d53de8086167c35d616cb80188bf65d645b04c167","envFingerprint":"docker:node:22-bookworm"}]},"integrity":{"passportDigest":"495fc5a9be5bf678a039da32eb74feca4759a1ce06da17cf94af9fc5b36fa875","evidenceDigest":"122ee735881e91c58baeb273d406bbced4edd4b05d8afdf78097dcd58bda8867","fileManifestDigest":"1b1f98b371933a279c49206b028fabae36393f7dd3f96d4af9b7938a98e55e46"}}