{"id":50805966,"url":"https://github.com/jeffgreendesign/ops-signal-console","last_synced_at":"2026-06-13T01:05:07.557Z","repository":{"id":363244192,"uuid":"1254376931","full_name":"jeffgreendesign/ops-signal-console","owner":"jeffgreendesign","description":"Synthetic ops console for turning noisy launch signals into facts, risks, proof gaps, and gated next steps.","archived":false,"fork":false,"pushed_at":"2026-06-08T03:19:55.000Z","size":135,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T05:11:19.827Z","etag":null,"topics":["ai-agents","decision-support","incident-response","ops","react","signal-triage","synthetic-data","typescript"],"latest_commit_sha":null,"homepage":"https://ops-signal-console.netlify.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffgreendesign.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-30T13:41:58.000Z","updated_at":"2026-06-08T03:18:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jeffgreendesign/ops-signal-console","commit_stats":null,"previous_names":["jeffgreendesign/ops-signal-console"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jeffgreendesign/ops-signal-console","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fops-signal-console","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fops-signal-console/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fops-signal-console/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fops-signal-console/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffgreendesign","download_url":"https://codeload.github.com/jeffgreendesign/ops-signal-console/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffgreendesign%2Fops-signal-console/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34268213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","decision-support","incident-response","ops","react","signal-triage","synthetic-data","typescript"],"created_at":"2026-06-13T01:05:07.106Z","updated_at":"2026-06-13T01:05:07.550Z","avatar_url":"https://github.com/jeffgreendesign.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ops Signal Console\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/jeffgreendesign/ops-signal-console/blob/main/package.json\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-6.0-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white\" alt=\"TypeScript 6.0\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vite-8.0-646CFF?style=flat-square\u0026logo=vite\u0026logoColor=white\" alt=\"Vite 8.0\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/data-synthetic-7C3AED?style=flat-square\" alt=\"Synthetic data only\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/status-active-16A34A?style=flat-square\" alt=\"Active project\"\u003e\n\u003c/p\u003e\n\nSynthetic signal triage console for invented multi-brand launches.\n\nOps Signal Console is a local portfolio prototype for reviewing noisy launch, quality, allocation, and claims signals without turning every signal into an unsupported action. It keeps known facts, inferred risk, evidence gaps, confidence, severity, and approval gates visibly separate.\n\nThe project is public-safe by design: invented scenarios only, no live feeds, no private source material, no telemetry, no persistence, and no external writes.\n\n## What it demonstrates\n\nThis repo is meant to be reviewed as a small product proof object, not as production software. In a few minutes, it shows how a console can:\n\n- turn synthetic cross-brand signal packets into deterministic review state\n- separate observed facts from inferred risks and recommended checks\n- treat severity as potential impact and confidence as evidence quality\n- block channel, public-facing, or irreversible actions when proof or approval is missing\n- allow safe internal-only actions and create typed in-memory mock receipts\n- prove its synthetic/public-safe boundary through tests, docs, and a built-asset scan\n\n## Product frame\n\nThe console is framed for a house-of-brands operator reviewing multiple new verticals. It helps answer:\n\n- What happened?\n- Which parts are observed facts versus inferred risk?\n- What proof is missing?\n- Which actions are safe, blocked, or approval-gated?\n- What would a reviewer need before releasing channel or public-facing copy?\n\nThe artifact is fresh and generalized. It does not copy private work systems, private workflows, real companies, real people, real operational records, or live data.\n\n## Architecture\n\n```text\nSynthetic fixtures\n  src/data/scenarios.ts\n    ↓\nDeterministic model functions\n  src/model/scoring.ts\n  src/model/gates.ts\n  src/model/receipts.ts\n    ↓\nDisplay adapter\n  src/scenarios.ts\n    ↓\nStatic console UI\n  src/main.ts\n  src/styles.css\n    ↓\nLocal-only review trail\n  typed in-memory mock receipts; no storage, feeds, or external writes\n```\n\n## Scenario walkthrough\n\nOne representative scenario reviews a draft claims note:\n\n1. The fixture starts with an invented review packet: a draft note exists, substantiation proof is missing, and human review has not cleared channel or public-facing copy.\n2. The model records those items as known facts.\n3. It separately names inferred risks such as substantiation gap and overclaim risk.\n4. Evidence gaps lower confidence and map to blocked actions: `release-channel-claim` and `publish-public-claim` both require proof and reviewer approval.\n5. The UI can still offer the safe internal action `Draft internal note` because it has no external side effect.\n6. Clicking that action creates a typed mock receipt with scenario/action IDs, decision reason, reversibility, timestamp, and `externalSideEffects: none`.\n\n## Run locally\n\n```bash\nnpm install\nnpm run dev -- --port 5173\n```\n\nOpen the local Vite URL, usually:\n\n```text\n127.0.0.1:5173\n```\n\nUseful inspection path:\n\n1. Start on the console overview.\n2. Switch between scenarios and compare score, confidence, proof gaps, and action readiness.\n3. Inspect known facts and inferred risks side by side.\n4. Click a safe internal action and confirm the mock receipt appears.\n5. Confirm blocked actions remain blocked when evidence or approval is missing.\n\n## Verify\n\n```bash\nnpm test\nnpm run typecheck\nnpm run build\nnpm run scan:public-safety\ngit diff --check\n```\n\n## Safety boundaries\n\nDo not add:\n\n- identifying people, organizations, operational records, support traces, links, secrets, screenshots, or private context\n- live integrations, live alerts, production-system access, scraping, browser automation, telemetry, persistence, analytics, or external writes\n- sign-in, purchasing, user profiles, or irreversible production behavior\n- domain-specific material copied from another project\n\nThe prototype is intentionally local and synthetic. It has no durable state, no public deployment, no live action path, and no production decision authority.\n\n## Reviewer proof claims\n\nIt is fair to claim this artifact demonstrates:\n\n- deterministic display-model logic rather than prompt-only classification\n- explicit fact/inference separation\n- confidence and severity as separate dimensions\n- evidence gaps that block action readiness\n- human gates before channel or public-facing action\n- inspectable mock receipts without side effects\n- public-safety release checks over source, tests, docs, scenarios, and built assets\n\nDo not present it as production-ready software, a hosted service, a live monitoring system, or advice for regulated, legal, medical, financial, claims, or operational decisions.\n\n## Project structure\n\n```text\nops-signal-console/\n├── src/data/        # synthetic scenario fixtures\n├── src/model/       # deterministic scoring, gates, receipts, and types\n├── src/main.ts      # static browser UI entrypoint\n├── src/scenarios.ts # display adapter\n├── src/styles.css   # console styling\n├── tests/           # Vitest coverage for model and UI adapter behavior\n└── scripts/         # public-safety scan\n```\n\n## Future extensions\n\nFuture work may add a temporary review preview, improve visual hierarchy, expand receipt proof, or add more synthetic scenario families. Those are separate tasks, not current runtime capabilities.\n\n## License\n\nMIT, as declared in `package.json`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffgreendesign%2Fops-signal-console","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffgreendesign%2Fops-signal-console","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffgreendesign%2Fops-signal-console/lists"}