{"_id":"@arthurmarquezdg/signal","name":"@arthurmarquezdg/signal","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@arthurmarquezdg/signal","version":"0.1.0","description":"Local trust dashboard for AI-assisted product projects.","type":"module","bin":{"signal":"dist/bin.js"},"scripts":{"dev":"tsx src/bin.ts --no-open","test":"tsx --test tests/**/*.test.ts","check":"tsc --noEmit","check:signal":"node dist/bin.js check --once --fail-on critical","trust:check":"node dist/bin.js check --once --fail-on critical","build":"npm run build:ui && tsdown","build:ui":"vite build --config ui/vite.config.ts","build:ladle":"ladle build --stories \"ui/src/**/*.stories.tsx\" --outDir dist/ladle","build:tokens":"style-dictionary build --config style-dictionary.config.mjs","test:visual":"playwright test","test:visual:ci":"playwright test","test:visual:update":"playwright test --update-snapshots","harness:init":"node scripts/harness-init.mjs","start":"node dist/bin.js --no-open","prepare":"husky || true"},"lint-staged":{"*.{ts,tsx,js,jsx,css,md}":"prettier --write","*.{ts,tsx,js,jsx}":"eslint --fix"},"engines":{"node":">=20"},"dependencies":{"@hono/node-server":"^1.14.1","@vitejs/plugin-react":"^4.4.1","chokidar":"^4.0.3","hono":"^4.7.9","lucide-react":"^0.511.0","mri":"^1.2.0","open":"^10.1.2","picocolors":"^1.1.1","react":"^19.1.0","react-dom":"^19.1.0","tinyglobby":"^0.2.13","yaml":"^2.7.1","zod":"^3.24.4"},"devDependencies":{"@eslint/js":"^9.39.4","@ladle/react":"^5.1.1","@playwright/test":"^1.60.0","@types/mri":"^1.2.0","@types/node":"^22.15.18","@types/react":"^19.1.4","@types/react-dom":"^19.1.5","eslint":"^9.39.4","husky":"^9.1.7","lint-staged":"^17.0.5","prettier":"^3.8.3","style-dictionary":"^5.4.0","tsdown":"^0.11.13","tsx":"^4.19.4","typescript":"^5.8.3","typescript-eslint":"^8.59.3","vite":"^6.3.5"},"_id":"@arthurmarquezdg/signal@0.1.0","gitHead":"ac1e47205130c998fececbfbfaea755103529bec","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-2knnHQbUoQUI9Yqi5Wu33pH5U8bszDTlpjQlazWaUgtd/psr3RylS+uJOB9mp64gntrpNwebLEXH9hHnie7hXA==","shasum":"c2af285ecb2afd8251c18b21144f97c95ce5505e","tarball":"https://registry.npmjs.org/@arthurmarquezdg/signal/-/signal-0.1.0.tgz","fileCount":9,"unpackedSize":442633,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCQ5CZfiqGeKHMDtUEjTwiMO+9Kst0Xhg2t5ewF5OH7iQIgaK25hDW3hb/OgwCTGqcaZUryA6gy99/IMcIcLpTiUtI="}]},"_npmUser":{"name":"arthurmarquezdg","email":"oarthurmarquez@gmail.com"},"directories":{},"maintainers":[{"name":"arthurmarquezdg","email":"oarthurmarquez@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signal_0.1.0_1779113847722_0.8941322045998292"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T14:17:27.622Z","0.1.0":"2026-05-18T14:17:27.886Z","modified":"2026-05-18T14:17:28.437Z"},"maintainers":[{"name":"arthurmarquezdg","email":"oarthurmarquez@gmail.com"}],"description":"Local trust dashboard for AI-assisted product projects.","readme":"# Signal\n\n`@arthurmarquezdg/signal` is the local observability layer for the Refine harness.\n\nSignal is read-only. It scans a target project, collects planning/code/design evidence, writes local cache data, serves a browser UI on localhost, and can emit JSON for scripts, hooks, reviewers, and CI.\n\n```bash\nnpx @arthurmarquezdg/signal\nnpx @arthurmarquezdg/signal check --once\nnpx @arthurmarquezdg/signal init\nnpx @arthurmarquezdg/signal doctor\n```\n\nThe target architecture follows `docs/harness-2026-relatorio-final.md`:\n\n- current commands: `signal`, `signal check`, `signal init`, `signal doctor`;\n- future commands tracked by the roadmap: `signal scan`, `signal gates`;\n- adapter-first usage for Claude Code, Cursor, Codex, and CI;\n- Playwright snapshots by default for visual regression, Argos opt-in;\n- Terrazzo for token validation;\n- machine-readable findings with `ruleId`, `category`, `blocking`, and optional waivers.\n\nThe current scanner detects Refine-style projects through `planning-artifacts/DESIGN.md` plus `planning-artifacts/issues/`; otherwise it falls back to a generic adapter and keeps convention-specific categories disabled with configuration warnings.\n\n## Use In Another Project\n\nAfter the package is published to npm:\n\n```bash\ncd /path/to/your-project\nnpm install -D @arthurmarquezdg/signal\nnpx signal init\nnpx signal doctor\nnpm run trust:check\n```\n\nBefore npm publish, test from a local tarball:\n\n```bash\ncd /Users/arthurmarquez/Projects/signal\nnpm run build\nnpm pack --pack-destination /tmp\n\ncd /path/to/your-project\nnpm install -D /tmp/arthurmarquezdg-signal-0.1.0.tgz\nnpx signal init\nnpx signal doctor\nnpm run trust:check\n```\n\nGate commands configured in `trust-panel.config.json` run local shell commands from that project. Only click/run gates in projects and configs you trust.\n\n## Local Development\n\n```bash\nnpm install\nnpm test\nnpm run check\nnpm run build\nnode dist/bin.js --once\nnode dist/bin.js --no-open\n```\n\n## Config\n\nOptional config file, currently loaded as `trust-panel.config.json`:\n\n```json\n{\n  \"port\": 4488,\n  \"convention\": \"auto\",\n  \"gates\": {\n    \"typecheck\": \"npm run check\",\n    \"build\": \"npm run build\"\n  }\n}\n```\n\nThe harness roadmap tracks the migration toward `signal.config.json` and the richer `signal check --fail-on critical` gate.\n","readmeFilename":"README.md","_rev":"1-e6ca95372aca6dc2e3b2328dbd25f42f"}