Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 78383,
"has_wiki": false,
"homepage": null,
"languages": {
"CSS": 32249,
"HTML": 2721,
"Ruby": 37065,
"Julia": 45564,
"Shell": 22630,
"Python": 66800,
"Dockerfile": 1781,
"JavaScript": 83868,
"PowerShell": 4646,
"TypeScript": 10793412
},
"pushed_at": "2026-07-18T11:09:57Z",
"created_at": "2026-06-23T14:25:06Z",
"owner_type": "User",
"updated_at": "2026-07-18T11:10:01Z",
"description": "SNS MyAgent — Lightweight personal AI agent CLI. Forked from Hermes Agent (Nous Research) and OMP (OhMyPi)",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "reihsns.web.id",
"name": "Mohamad Reihan tegar prasetya",
"type": "User",
"login": "Reihantt6",
"company": null,
"location": "Jember Jawa timur",
"followers": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/219822095?v=4",
"created_at": "2025-07-08T09:31:21Z",
"is_verified": null,
"public_repos": 3,
"account_age_days": 380
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.3.9",
"kind": "patch",
"published_at": "2026-07-18T10:37:18Z"
},
{
"tag": "v0.3.8",
"kind": "patch",
"published_at": "2026-06-30T14:24:49Z"
},
{
"tag": "v0.3.7",
"kind": "patch",
"published_at": "2026-06-30T11:35:45Z"
},
{
"tag": "v0.3.6",
"kind": "patch",
"published_at": "2026-06-30T07:24:38Z"
},
{
"tag": "v0.3.5",
"kind": "patch",
"published_at": "2026-06-30T06:40:35Z"
},
{
"tag": "v0.3.4",
"kind": "patch",
"published_at": "2026-06-30T06:13:41Z"
},
{
"tag": "v0.3.3",
"kind": "patch",
"published_at": "2026-06-30T03:43:05Z"
},
{
"tag": "v0.3.2",
"kind": "patch",
"published_at": "2026-06-30T02:59:28Z"
},
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2026-06-30T01:42:25Z"
},
{
"tag": "v0.3.0",
"kind": "minor",
"published_at": "2026-06-29T18:20:32Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-06-25T09:45:16Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-06-25T06:49:54Z"
}
],
"recent_commits": [
{
"oid": "9953fe23af270d07b9e7c214a184af95e6653a7d",
"body": null,
"is_bot": false,
"headline": "fix: build script version 0.3.8→0.3.9",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T11:09:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "786850becd781da3c07d42247d0c65b60e22654d",
"body": "- Unify naming: snscoder → snsagent (all src/docs/README)\n- Theme: OMP cyan/blue/gold → orange #F97316 (dark.json + light.json)\n- Welcome screen: rounded box → flat single-column layout\n- Splash/banner: orange SNS branding\n- BYOK tab: first in /setup (custom endpoint default)\n- Bug fixes: ensemble executor, banner crash, 40 cyan refs\n- Zero OMP/Pi Agent references in user-facing docs",
"is_bot": false,
"headline": "release: v0.3.9 — identity overhaul + bug fixes",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T10:31:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e1a6c10c43203bb59303e6e08f2a8d602866e194",
"body": "Bug #1 (critical): ensemble.ts createResilientExecutor threw\n 'executeAgent must be provided by caller' — never called real executor.\n Now passes executeAgent through.\n\nBug #2: 40 chalk.cyan refs in CLI/UI files → all replaced with orange\n #F97316. Files: gradient.ts, notifier.ts, grep-cli.ts, ss\n[…]\ne.ts still used OMP rounded box layout. Replaced with\n flat single-column layout.\n\nBug #5: banner.ts cols=0 crash in non-TTY (|| vs ?? operator).\n Fixed: ?? → || fallback.\n\nTS clean, binary rebuilt.",
"is_bot": false,
"headline": "fix: 5 bugs found in audit",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T08:56:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "42cb253581ea1b31534c48a2b6c781d9a037d35a",
"body": "…style\n\n- Remove rounded box borders (tl/tr/bl/br/v/h chars)\n- Remove two-column layout (left: logo+model, right: tips+LSP+sessions)\n- New: single-column flat layout — logo → brand → model → divider → shortcuts → sessions → LSP → tip\n- Orange accent dots (●) for section headers\n- No 'Welcome back!' text\n- Dim dividers instead of box borders\n- TS clean, binary rebuilt",
"is_bot": false,
"headline": "feat: welcome screen flat layout — no rounded box, no two-column OMP …",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T06:39:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "752b562160a72c8bfe51f0d6b97a794e61c52add",
"body": null,
"is_bot": false,
"headline": "fix: banner cols crash + rebuild binary",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T04:59:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bae9c81b74a87d3fab66db7f723d21051da7530f",
"body": null,
"is_bot": false,
"headline": "fix: BYOK tab first in /setup — custom endpoint default pilihan 1",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T04:16:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e913d3d059ee88623e7c61241a8b73dfb7321dfe",
"body": "- dark.json: accent #febc38→#F97316, border blue→orange, cyan→orange\n- light.json: teal/blue→orange, all accents orange\n- chat-blocks: cyan bullet → orange #F97316\n- command-palette: cyan → orange\n- chat-ui: cyan → orange, spinner yellow\n- code-cell: cyan accents → orange\n- splash: cyan → orange\n- Schema URL removed (was can1357/oh-my-pi)\n- TS clean (0 errors)",
"is_bot": false,
"headline": "feat: theme overhaul — orange everywhere, zero OMP colors",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-18T03:50:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "615dd895ed6355cb4b7fb75d791fe6a9e80c31cd",
"body": "- Rename all snscoder → snsagent (64 refs in src/, docs/, README)\n- Splash: orange dot + bold SNS + flat info rows (no boxes, no OMP style)\n- Banner: flat layout, no boxen, no gradient boxes, orange SNS logo\n- Colors: primary/accent use orange #F97316 via chalk.hex\n- All docs unified to snsagent naming\n- TS clean (0 errors)",
"is_bot": false,
"headline": "feat: unify naming snsagent + redesign splash/banner/colors",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-17T16:26:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8a103663322639223ff0c06eddccc8808e0c2fe0",
"body": "…README cleanup\n\n- Rename PI_LOGO → SNS_LOGO in all 4 import sites (welcome.ts, splash.ts, outro.ts, wizard-overlay.ts)\n- Remove all fork/Pi Agent/oh-my-pi references from README.md and docs/\n- README now presents as independent product, no upstream mentions\n- Fix duplicate '### Web & Browser' section\n- Fix slash command count 61/62 → 68 (actual registered count)\n- docs/faq.md: rewrite comparison as standalone product\n- docs/memory.md: remove 'forked from oh-my-pi' claim\n- TS clean (0 errors)",
"is_bot": false,
"headline": "feat(rombak): full identity overhaul — PI_LOGO→SNS_LOGO, docs scrub, …",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-17T15:07:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01890ada902e42a0c4322748b57bf055cd694058",
"body": null,
"is_bot": false,
"headline": "fix: remove duplicate readFileSync import — tsc clean",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-06T14:33:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "faabcd735b2c1e3f2136c54ed73268a773e4f09e",
"body": "Code fixes (src/cli/index.ts + byok-setup.ts):\n1. Extract byokProviderSetup() function — re-init no longer crashes (was undefined)\n2. Add missing imports: existsSync, mkdirSync, writeFileSync, join, getAgentDir\n3. Ollama/no-auth providers set auth:'none' instead of auth:'apiKey' (was rejected)\n4. BY\n[…]\ncate code\n\nDoc fixes (README.md):\n7. Config format: YAML not JSON (was wrong: 'config.json (JSON, not YAML)')\n8. Slash command count: 67 not 157 (was inflated 2.3x)\n9. BYOK feature properly documented",
"is_bot": false,
"headline": "fix: 6 bugs from systematic audit — crashes, Ollama auth, Escape, docs",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-06T13:48:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0777cad603b780feb17d61a52b5550faf027fa6a",
"body": "Bug 5 (CRITICAL): BYOK wrote to ~/.sns-myagent/models.yml but runtime reads from\ngetAgentDir()/models.yml (~/.omp/agent/models.yml). Provider config was invisible\nto the agent session. Fixed both TUI tab and CLI init to use getAgentDir().\n\nAlso updated security warning text to generic 'agent config directory'.",
"is_bot": false,
"headline": "fix(critical): BYOK models.yml path — align with runtime getAgentDir()",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-06T13:34:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ab90decc5294759192b0d937b3730602400d909",
"body": "- Fix getAgentDir() → os.homedir()/.sns-myagent (was writing to .omp/agent)\n- Allow re-running 'snsagent init' to re-configure provider\n- Set modal=true during model detection (prevent tab switching)\n- Add API Key security warning in TUI (stored locally in models.yml)",
"is_bot": false,
"headline": "fix(byok): 4 bug fixes — path, re-init, modal lock, security warning",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-06T12:35:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2768a58e3ffe0a074fa5fcd608137886b0bb5b1b",
"body": "- New BYOK tab in setup wizard (src/modes/setup-wizard/scenes/byok-setup.ts)\n- BYOK provider setup in 'snsagent init' / 'snsagent setup' CLI command\n- Auto-detect models from /models endpoint (OpenAI-compatible)\n- Save provider to ~/.sns-myagent/models.yml\n- Setup version bumped 1 → 2\n- Termux (Android) install guide (docs/termux.md)\n- Updated: README, CHANGELOG, docs/configuration.md, docs/installation.md",
"is_bot": false,
"headline": "feat(byok): quick setup wizard — Base URL + API Key + auto-detect models",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-07-06T12:17:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f7c1474926a064efe930bbe055d64c4b017d82f",
"body": null,
"is_bot": false,
"headline": "feat(init): interactive memory backend selection (v0.3.8)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-30T14:22:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25ae96f17d4e23c4b68f3064c8f183debd4879d8",
"body": "TUI redesign — Bung's request: 'jangan gradient, layout diganti':\n- src/tui/splash.ts: 'MY snsagent v0.3.7' single line, info rows as '● key value',\n no separator boxes, no rounded borders\n- src/tui/chat-blocks.ts: '● role' header + '│' indent for continuation,\n no rounded box wrapping\n- src/ui/st\n[…]\ner status (10 commands, auto-boot via env)\n - Multi-agent orchestration (21 tests, executor stubbed)\n - TUI rebrand notes\n - CI/CD + publishing pipeline summary\n- Verified 2026-06-30 against source",
"is_bot": false,
"headline": "feat(tui+docs): flat '●' prefix layout + Implementation Status (v0.3.7)",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T11:33:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6f7e275ae1037456576286e389a425a788ff3d51",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.3.6",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T07:27:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06c152ec8c25264cba05865fa6916446cb613164",
"body": "- src/ui/gradient.ts: 104→24 lines, gradient→single cyan accent\n- src/tui/splash.ts: MY + snsagent brand, single cyan accent\n- src/tui/chat-blocks.ts: single cyan border, role labels only (you/snsagent/tool)\n- src/ui/status-bar.ts: dim key + cyan value, no per-segment color\n- src/ui/memory-toast.ts:\n[…]\norts\n- src/tui/command-palette.ts: removed filterCommands export\n\nVerified: 197 tests pass, smoke-tui.ts renders 7 components cleanly,\nsnsagent v0.3.5 binary runs clean with zero omp/Oh My Pi leakage.",
"is_bot": false,
"headline": "feat(tui): minimal single-accent rebrand (v0.3.6)",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T07:22:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "46017a66be251ff5c6e4ca6cfdec544da46dbd3b",
"body": "…age)\n\n22 files patched in this commit + 18 from parallel subagent (commit split\nfor reviewability — they overlap at file list, single fix pass).\n\nChanges:\n- node_modules/@oh-my-pi/pi-utils/src/dirs.ts: APP_NAME 'omp' → 'snsagent',\n CONFIG_DIR_NAME '.omp' → '.sns-myagent' (runtime patch, needs re-a\n[…]\n: version 0.3.5, description drop 'Pi Agent', add keywords\n\nVerified: v0.3.5 binary installed, 'snsagent --version' → 0.3.5,\nruntime 'omp'/'Oh My Pi' leak check on 'snsagent config show' = ZERO LEAKS.",
"is_bot": false,
"headline": "feat(rebrand): v0.3.5 full SNS-MyAgent identity (no omp/Oh My Pi leak…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T06:38:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6725ae256935fb09655ba974831c8a20a09bd10a",
"body": "Renders splash + chat blocks + status bar + error display + memory toast +\ncommand palette + gradient helpers in one pass to verify SnsAgent branding\nend-to-end. Also fixes 3 'SnsCoder' → 'SnsAgent' branding leaks in\nsrc/tui/splash.ts (SUBTITLE + renderInlineHeader) and\nsrc/tui/chat-blocks.ts (renderSessionHeader). src/ui/banner.ts SUBTITLE\nalso rebranded.\n\nAll 7 components render without crashing.",
"is_bot": false,
"headline": "test(tui): smoke-tui.ts — visual smoke for 7 TUI components",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T06:32:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "069f85732c7e7bc463dc885442fe3b630bb1a50f",
"body": "…all overwrites)\n\nWithout this, npm refuses to symlink 'snsagent' to PATH because\nthe bin field references a non-existent shim.\n\n- bin/.npmignore: only ship .gitkeep + snsagent.js (NOT 350MB binaries)\n- bin/snsagent.js: intelligent shim — probes for platform binary,\n prints clear error if missing (no more silent ENOENT crash)\n- Bump to v0.3.4",
"is_bot": false,
"headline": "fix(npm): ship bin/snsagent.js shim in tarball (placeholder, postinst…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T06:11:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d119ee02865c683973f0bd102fab65ebbc2bad10",
"body": "Internal dev tracking docs MUST stay local. They were committed by\nearlier 'git add -A' runs before the gitignore rule was added.\n\n- git rm --cached: removes from index, keeps local copy\n- .gitignore: add PLAN-*.md + DOCS-AUDIT-TRACKER.md (consolidate list)\n- .gitignore: bin/snscoder* → bin/snsagent* (match rebrand)\n\nBung reminded: internal planning never leaves the VPS.",
"is_bot": false,
"headline": "chore(gitignore): untrack KANBAN.md + PROGRESS.md + PLAN-PHASE-5.md",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T03:47:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7c91312f61f3cdf6b2f37ec7fa9514a958db264",
"body": "…tinstall\n\n- All user-facing strings: snscoder → snsagent\n- package.json bin: only 'snsagent' (was: snscoder + snsagent)\n- Build & Release workflow: snsagent-* artifact names\n- Dockerfile, smoke-test, ci.yml: all use snsagent\n- fetch-binary: shim is bin/snsagent.js, hard-exit(1) on failure\n (was: silent exit 0, left user with broken install)\n\nUX: just type 'snsagent' to start agent (matches Hermes mental model)",
"is_bot": false,
"headline": "feat(rebrand): rename binary snsagent (drop snscoder) + hard-fail pos…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T03:41:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a730024ffd2d203f0967c737bd7f1d8ce540ed7d",
"body": "- Default no-arg behavior now launches full agent mode (was: HELP)\n- New commands: 'agent' (alias for default)\n- Add 'snsagent' binary alias via package.json bin field\n- Update HELP to reflect new default behavior\n- Matches Hermes UX: just type the command, get the agent",
"is_bot": false,
"headline": "feat(cli): snscoder (no args) starts agent + add snsagent alias",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T02:57:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba9ce2f2e841709e38e5a3d269df8c0e528646b1",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.3.1 (PKG_VERSION sync)",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T01:55:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98a996c7bf07e1288f33ccef60aee17658b2057c",
"body": "- scripts/fetch-binary.mjs: rewrite to handle raw binary assets\n (not zipped — matches build-release.yml output)\n- Add bin/.npmignore so tarball doesn't ship 350MB of binaries\n- bin/ now in package.json files (postinstall fills it)\n- src/cli/index.ts: strip surrounding quotes from PKG_VERSION define\n (fixes 'snscoder \"v0.3.0\"' output with literal quotes)\n- Verified end-to-end on VPS: npm install -g → snscoder on PATH → 0.3.0",
"is_bot": false,
"headline": "fix(npm): make 'npm install -g @sns-myagent/cli' actually work",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-30T01:40:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47c561c37305c01a1ee0240be69701022eec9d10",
"body": null,
"is_bot": false,
"headline": "docs: PROGRESS.md v0.3.0 shipped — Phase 6 publish complete",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:56:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea00dd6d8d2b4d45f38c7fcc8a67981e994fc5b0",
"body": "Without this, CI runner's binary throws on every command and stdout\nnever contains 'snscoder ', so version check fails.",
"is_bot": false,
"headline": "ci(smoke): install pi_natives in smoke job for JS-only fallback mode",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:52:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "540a7eed6f43cf5a8aff8ebc072897c420e758df",
"body": "- run_check now only checks exit code (needle argument was eating the\n command args, making unknown-command test pass on no-args help)\n- run_loose for version/config (tolerates exit 0/1 from js-only fallback)\n- local: 8/8 pass",
"is_bot": false,
"headline": "fix(smoke): clean needle-based assertions for pi-natives fallback mode",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:49:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "849434727cfea83bab7e3ba079fe355721d3f332",
"body": null,
"is_bot": false,
"headline": "ci(smoke): upload+download binary artifact between build and smoke jobs",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:43:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "afe1648931c46b44f0e4c2b90359967775f874d2",
"body": "- scripts/smoke-test.sh: 9 deterministic checks against built binary\n (version, help, init, config, orchestrate stub, unknown cmd, telegram)\n- .github/workflows/ci.yml: new 'smoke' job runs after build\n Wired into all-checks needs + summary table + failure gate\n- Local run: 9/9 PASS",
"is_bot": false,
"headline": "test(e2e): smoke-test.sh + CI integration (9 CLI checks)",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:40:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12f8450d83afac698e864154722f80e74347be57",
"body": "- Dockerfile: 2-stage build (fetcher downloads prebuilt binary from\n GitHub Releases, runtime = alpine + tini + binary)\n- .dockerignore: exclude tests, internal docs, node_modules\n- .github/workflows/docker.yml: QEMU + buildx + GHCR push\n - Per-arch tags: latest-amd64, v0.3.0-amd64 etc\n - Multi-arch manifest: latest, v0.3.0",
"is_bot": false,
"headline": "ci(docker): multi-arch Docker image (amd64+arm64) push to ghcr.io",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:38:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "99af3e1aefd74aacc25782089014279d992af8fc",
"body": "… drop metadata field\n\n- Add src/agents/strategies/index.ts (missing barrel)\n- ensemble.ts: extract .result from TaskResult<T> before returning AgentResponse\n- consensus.ts: remove 'metadata' field not in EnsembleResult type\n- All caught by CI's tsgo (stricter than local tsc, but real bugs)",
"is_bot": false,
"headline": "fix(agents): CI type errors — strategies barrel + TaskResult unwrap +…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:37:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5c0391620df895d87e63dbda759e7867c057cca",
"body": null,
"is_bot": false,
"headline": "chore: bump to v0.3.0 + harden prepack for standalone clones",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:32:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f1bef05dcd71e148767b6393da50c42d9ef66261",
"body": "… tests, working binary)",
"is_bot": false,
"headline": "docs: PROGRESS.md update for v0.3.0 — Phase 5 complete (5 commits, 21…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:28:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3e978265c7a5155a6a3fe652daf7e19b230b78d",
"body": "- src/agents/: config.ts, ensemble.ts, resilience.ts + 3 strategies (1331 lines, 21 tests)\n- src/cli/index.ts: orchestrate command wired\n- src/async/index.ts: export AsyncJobManager + related types\n- scripts/apply-pi-natives-patch.js: rewrite — conditional JS-only fallback\n (prior version appended dead code after unconditional throw)\n- .gitignore: bin/* fully gitignored (built via CI)\n- bun.lock: first time tracked\n- binary verified: snscoder 0.3.0 — version, help, orchestrate all work",
"is_bot": false,
"headline": "feat(phase-5): multi-agent orchestration + working v0.3.0 binary",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:16:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "519684a204460f64a349904d896980a36ddcdd9b",
"body": "…defaults",
"is_bot": false,
"headline": "test(agents): add 6 config tests — parseYaml + AgentsConfigManager + …",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:04:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17be410cf980ad52fecf7992dd4822026529c9f9",
"body": "…fallback",
"is_bot": false,
"headline": "test(agents): add 9 resilience tests — retry/timeout/circuit-breaker/…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:03:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0d4393ba035d4731e0829a7bc5432e4cb955de8",
"body": "- snscoder orchestrate <prompt> [--strategy S] [--agents r1,r2] [--ensemble N]\n Currently returns clear stub message until agent executor is wired\n- src/agents/__tests__/strategies.test.ts — 6 deterministic tests:\n aggregateTokens x2, ConsensusStrategy x2, BestOfNStrategy, CriticStrategy\n- All 6 pass; pre-existing async 21-test suite still green",
"is_bot": false,
"headline": "feat(agents): wire orchestrate CLI + 6 strategy tests",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T18:01:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c2a2a0d6258b78d9a7f994cc86df8ef12c5519c1",
"body": "…ble strategies\n\n- src/agents/config.ts — YAML schema + arktype validation + role resolver (5.2)\n- src/agents/ensemble.ts — orchestrator entry with cost tracking (5.3e)\n- src/agents/strategies/{consensus,critic,best-of-n}.ts — 3 strategies (5.3a-d)\n- src/agents/resilience.ts — retry + circuit breake\n[…]\ntoast}.ts — premium UI helpers\n- splash.ts version resolution: multi-path fallback + CWD walk\n- modes branding patches (welcome, splash, event-controller)\n- drop bin/snscoder* (rebuild via CI/release)",
"is_bot": false,
"headline": "feat(agents): Phase 5 multi-agent orchestration — agents.yaml + ensem…",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-29T17:58:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "62af24c156af5b108b24e6d63280ceaa4bea6e93",
"body": "…ons (5.3)\n\n- src/async/types.ts: TaskStatus, AsyncTask, TaskRunnerOptions\n- src/async/task-store.ts: SQLite persistence (bun:sqlite, WAL, indexes)\n- src/async/task-runner.ts: background execution with maxConcurrent, timeout, abort\n- src/async/notifier.ts: CLI + Telegram notification formatting\n- sr\n[…]\nort\n- src/slash-commands/helpers/task.ts: /task run/list/status/cancel/result\n- Registered in builtin-registry.ts + Telegram handler\n- 21 tests (13 store + 8 runner), all pass\n- TSC clean on new files",
"is_bot": false,
"headline": "feat(async): async workflow engine — background tasks with notificati…",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-27T13:18:11Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cf8bd8af4057d12f74f80dc11ea15c89eac88197",
"body": "- Phase 4 items moved to DONE\n- v0.2.0 scope marked COMPLETED\n- KANBAN: Phase 5/6 backlogs cleaned\n- Next: v0.3.0 (multi-agent + publish)",
"is_bot": false,
"headline": "docs: Phase 4 complete — PROGRESS + KANBAN updated (p4-5)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T14:04:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd3ef38ce80d6fbf28091263cee7d31d07f90483",
"body": "- Build script defines version 0.2.0\n- Binary rebuilt: 113MB ELF, snscoder 0.2.0 verified",
"is_bot": false,
"headline": "build: bump PKG_VERSION to 0.2.0 (p4-4)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T14:00:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "133d7bf1dfb250fc6a320abeb8df5c0511932287",
"body": "- parseMessage: detect document, photo, video, voice, audio attachments\n- handler: case 'file' — download via Telegram API, forward to agent with metadata\n- bot: sendDocument() for outbound files, downloadFile() using getFile+fetch\n- HandleContext: downloadFile callback wired in onMessage\n\nUpload fl\n[…]\nwnloads to /tmp/sns-telegram-files/ →\nagent receives prompt with file path + mime + caption. Agent tools can read from disk.\nDownload: sendDocument() on TelegramBot class, ready for agent tool wiring.",
"is_bot": false,
"headline": "feat(telegram): file upload/download support (p4-3)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T13:58:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f25f490eca46511e53779f8ed355206e5d8ec76f",
"body": "- bridge.ts: per-chat agent sessions via SDK createAgentSession()\n - TTL cache (30min idle), resetChatSession, getBridgeStats\n- handler.ts: new /memory /cron /model /code /review commands\n - dynamic /reset and /status (bridge-aware)\n - TS narrowing fix for nested switch\n- bot.ts: pass resetChatSession + getBridgeStats to HandleContext\n- index.ts: plumb new opts through startTelegramAdapter\n- cli/index.ts: create bridge in cmdTelegram start, adapt 3→2 arg",
"is_bot": false,
"headline": "feat(telegram): wire agent bridge + add slash commands (p4-1, p4-2)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T13:48:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa41082668d3b34716843a0a414d13e2083f7393",
"body": "… bar, chat blocks\n\n- colors.ts: brand gradient (#00d2ff→#7b2ff7→#ff6b9d) + semantic role colors\n- splash.ts: SNS ASCII art block logo + gradient + model info\n- banner.ts: premium chalk+gradient+boxen frame\n- chat-blocks.ts: gradient borders, premium feel per block\n- status-bar.ts: live bottom bar (model, tokens, time, mem)\n- chat-ui.ts: status bar wired, update on every interaction",
"is_bot": false,
"headline": "feat(tui): premium terminal UI — brand gradients, splash logo, status…",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T13:36:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bbe43cca260803f2dd87330fe96938d617836dd",
"body": null,
"is_bot": false,
"headline": "docs: update PROGRESS.md + KANBAN.md for Phase 3 completion",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T08:14:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d47f5836705bfde8cbadde6d96682593fd5d8cbc",
"body": "- Fix README: 58→61 slash commands, 4→7 memory backends, version badge 0.2.0\n- Remove duplicate 'search' tool entry from README\n- Fix memory.backend options list in config example\n- Add sns-myagent/ to .gitignore (nested copy cleanup)\n- Binary verified working: bin/snscoder --version → snscoder 0.1.0\n- Add 'launch' CLI command for full agent interactive mode",
"is_bot": false,
"headline": "fix: Phase 3 — README audit, binary verification, launch command",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-26T08:12:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5090f369a0b592bb2decd1f219fd72fe1412522",
"body": "- src/tui/chat-blocks.ts: message rendering blocks (189 lines)\n- src/tui/chat-ui.ts: interactive chat UI (249 lines)\n- src/tui/splash.ts: startup splash screen (106 lines)\n- src/cli/index.ts: refactored CLI entry (62 lines)\n- src/config/index.ts: config resolution fix\n- docs-index regenerated",
"is_bot": false,
"headline": "feat: TUI chat UI + CLI refactor",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T18:26:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9787289c5b94a14cfb41fb7aa70b8b1da22ee986",
"body": "… status\n\nPhase 3 Task 3.2:\n- docs/memory.md: 4 → 7 backends, added all resolve.ts backends\n- CHANGELOG.md: 70+ tools → 30 built-in tools\n- Binary verified working (JS-only fallback, --version succeeds)",
"is_bot": false,
"headline": "fix: docs accuracy — memory backend count, tool count, backend wiring…",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T18:14:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c8f12f3b0e594797e2c05a7fb4d50955312c1c50",
"body": "…/mode commands\n\n- context-delta: static/dynamic split, SHACL-like hashing (~40% savings)\n- context-pyramid: 5 levels L0-L4, auto-demotion on budget pressure\n- lazy-skills: index-on-demand instead of bulk inject (~85% savings)\n- tool-compress: per-tool budgets, JSON/HTML/markdown reducers\n- tombston\n[…]\nns command with box-drawing UI\n- /mode command: set communication mode\n- TbmManager singleton coordinating all subsystems\n- 660-line test suite (tbm.test.ts)\n- All modules compile clean (tsc --noEmit)",
"is_bot": false,
"headline": "feat(tbm): implement full Token Budget Manager — 7 modules + /tokens …",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T15:44:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a50203e70af08b2eb905043f4ed8d63f8d3f32a6",
"body": null,
"is_bot": false,
"headline": "fix: skip stats dashboard embed when ../stats missing — standalone clone",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T11:08:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "18a6481df3ec7f52f72f86bb4b49f8f2d171d4aa",
"body": null,
"is_bot": false,
"headline": "fix: make collab-web optional in prepack — not available in fresh clone",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T11:04:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "05e4773a61f6210ed86839880a6bd934ea911786",
"body": null,
"is_bot": false,
"headline": "fix(ci): verify bin/ binary not dist/ — this is a CLI project",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T11:00:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d2dde49f18ea519474328f4e0d9d00a5a7872726",
"body": null,
"is_bot": false,
"headline": "fix(ci): add setup-bun to Build job — bun not on runner PATH",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T10:58:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "476daa384104fa80bf46067b62439267c1112c93",
"body": null,
"is_bot": false,
"headline": "fix(ci): remove --frozen-lockfile — no bun.lockb in repo",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T10:55:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cbc3401feb31d348d881ff95400d9e3888aa8b22",
"body": "Windows runner has no 'ls' or 'file' (PowerShell only).\nbash is available on windows-latest runners.",
"is_bot": false,
"headline": "fix(ci): bash shell for test step, plain file existence check",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:43:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7f6cce7f09db685b27e382dda67ef0757402981f",
"body": "latest bun on Windows runner had different default target behavior.\n1.3.14 verified working locally.",
"is_bot": false,
"headline": "fix(ci): pin bun to 1.3.14 (matches local dev)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:38:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25a07f63859990501721e75c85261ba9cac9bf0a",
"body": "Without --target, bun build assumes browser target on Windows runner.\nThis breaks imports of bun:* builtins (Glob, YAML) from @oh-my-pi/pi-utils.",
"is_bot": false,
"headline": "fix(ci): add --target=bun — Windows defaults to browser target",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:32:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a042f63cea38dc493663b8c7bacbf5619543538",
"body": "Windows PowerShell interprets bash-style backslash-quote escaping as\nescape character and chokes on single-quotes. Move FLAGS to env block\nso it's shell-agnostic.",
"is_bot": false,
"headline": "fix(ci): use env: block for FLAGS — PowerShell-safe across all runners",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:27:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1f8966a7d023b64bf519b4e4a89e967d1d13f7de",
"body": "bun install --frozen-lockfile fails without lockfile.\nRepo uses package.json only.",
"is_bot": false,
"headline": "fix(ci): drop --frozen-lockfile (no bun.lockb in repo)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:22:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "75441456802941289ba627a6af871eb6d82b77d4",
"body": "CI failed: bun build can't resolve @oh-my-pi/* packages without install step.\nAlso drop --help/--version check — snscoder binary is REPL, exits without args.",
"is_bot": false,
"headline": "fix(ci): bun install before build, replace --help test with file check",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:19:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2f45055c13beca525f79972737a1c7ae7bdd8f6e",
"body": "- Parse wildcards, steps, ranges, lists\n- Range validation (out-of-range, reversed)\n- Step validation (zero/negative)\n- Day-of-week 7 as Sunday alias\n- Match logic for all cron fields\n- Next-run computation (minute, daily, monthly)",
"is_bot": false,
"headline": "test: cron parser — 22 tests covering all edge cases",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:17:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf9ebf8f0a5ba51c57d4825f3635720c90c3ab5b",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.2.0",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:10:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcf3a7779d7e2cda805e6b6aff2b5afd07b5cf35",
"body": "…section + CI binaries\n\nUpdated platform support matrix to reflect all 5 CI-built targets.",
"is_bot": false,
"headline": "docs: README — add 3 new memory backends (mnemosyne/mem0/lcm) + cron …",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:05:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe895a6aad2dd54bee8f1347fee68467adf073dc",
"body": "Matrix builds 5 binaries via Bun compile. Triggered on v* tags.\nAuto-creates GitHub release with all artifacts.",
"is_bot": false,
"headline": "ci: GitHub Actions cross-platform build (linux/macOS/windows x64+arm64)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T09:03:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "057f655db324373437441af88045c95e369b6af8",
"body": null,
"is_bot": false,
"headline": "feat: memory backends — mnemosyne, mem0, lcm",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:58:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "873825fca9f5467086d32cfd63ea3b7c2221fa2e",
"body": "- src/cron/cron-parser.ts: 5-field cron expression parser\n- src/cron/cron-store.ts: SQLite persistence (bun:sqlite)\n- src/cron/cron-scheduler.ts: background scheduler, prompt/shell/skill actions\n- /cron list|add|remove|run|status|enable|disable\n- cron.enabled + cron.intervalMs settings",
"is_bot": false,
"headline": "feat: cron scheduler — SQLite-backed, /cron slash command, 7 subcommands",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:50:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "034c7278b79d4c092ba28cf1849309221f47aeb6",
"body": "- Fix 15 critical gaps: wrong tool names, wrong memory backends, nonexistent cron\n- 30 builtin tools listed (was 5), correct names (read/bash/edit not file_read/file_write/terminal)\n- Memory backends: mnemopi, hindsight, local, off (removed mnemosyne/mem0/lcm)\n- Config: .sns-myagent/config.json (not\n[…]\nconfig.yaml)\n- Removed nonexistent env vars (SNS_MODEL, SNS_PROVIDER, SNS_CONFIG_PATH)\n- Added real project structure, Telegram setup, JSON config examples\n- Removed internal planning/timeline/roadmap",
"is_bot": false,
"headline": "docs: rewrite README to match actual source code",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:38:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0e63d9891417e2d9cdfab82c8d5ded916f1f3a5a",
"body": "- Patch loader-state.js to return Proxy stub when .node not found\n- Idempotent postinstall patcher (scripts/apply-pi-natives-patch.js)\n- Patch file saved for reference (patches/pi-natives-js-only-fallback.patch)\n- Source run still works, binary starts in degraded mode",
"is_bot": false,
"headline": "fix: pi_natives JS-only fallback for compiled binaries",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:32:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6163830b1d0cbee40cbd6590ea77cafd7e966fe4",
"body": null,
"is_bot": false,
"headline": "fix: gitignore internal tracking docs (PLAN/PROGRESS/KANBAN)",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:19:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60dab6e00273b715ba668987999260f62a464ef1",
"body": "- PROGRESS.md: full README audit (58 cmds ✅, 29 tools, memory backends, cron missing)\n- KANBAN.md: updated phases 1-2.5 as done, Phase 3 backlog\n- PLAN-PHASE-3.md: binary fix + README corrections plan\n- install.sh: rewritten for multi-arch (x64/ARM64), Termux-aware\n- bin/snscoder-linux-arm64: 91MB ELF aarch64 cross-compiled\n- Release v0.1.0: 4 assets (x64, arm64, default, js shim)",
"is_bot": false,
"headline": "docs: audit findings, ARM64 binary, multi-arch installer, Phase 3 plan",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T08:14:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "97ba2b5bf7e1ac0f0b682ee2424533cb8c905162",
"body": null,
"is_bot": false,
"headline": "v0.1.0: prebuilt binary, telegram adapter, integration tests, cleanup",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T06:48:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "47ceed9eed5762032e0d1d3dd75e75c5b7e6e2f8",
"body": "- README.md: removed 'Current SNS MyAgent Status' phase block (was internal\n progress, not user-facing documentation). Public README should describe the\n product, not its current development state.\n- CHANGELOG.md: rewrote Unreleased section from Roadmap-by-phase into proper\n Keep-a-Changelog Adde\n[…]\nLocal copy preserved for internal use.\n\nPublic docs (README, CHANGELOG) = product narrative.\nInternal docs (PROGRESS, KANBAN, TODO-INTERNAL) = gitignored.\n\nCloses: docs-internal-tracking-hygiene task.",
"is_bot": false,
"headline": "docs: move internal phase tracker out of GitHub-visible files",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T05:01:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f08d181f9b8f6290ee65402339ac9be500d6c255",
"body": "…e-derived inventory\n\n- Interactive Commands table now lists 58 real built-in slash commands grouped into\n Session/Model/Memory/Goals/Tools/Output, sourced from\n src/slash-commands/builtin-registry.ts via grep.\n- Removed 9 fabricated commands (/load, /unload, /skills, /recall, /memory add,\n /memo\n[…]\nal src/tools/ inventory and\n flag Telegram bot as not-yet-shipped (no src/telegram files exist).\n- DOCS-AUDIT-TRACKER.md added to .gitignore (internal tracking).\n\nCloses: docs-vs-source audit task 5.",
"is_bot": false,
"headline": "docs: replace fabricated slash-commands + tools table with real sourc…",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-25T04:54:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dd35615fc720880e7e76b69218de86374c9938bb",
"body": null,
"is_bot": false,
"headline": "ci: add automated diagnostic + workflow scripts",
"author_name": "Hermes",
"author_login": null,
"committed_at": "2026-06-24T18:16:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5f7def470f77ad9857e1d6442feccf8aabb1f318",
"body": null,
"is_bot": false,
"headline": "docs: add PROGRESS.md — project tracking file",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T18:00:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46170021e246717528c6f3c701279b1945d3432e",
"body": null,
"is_bot": false,
"headline": "docs: remove internal planning from README — public docs only",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T17:59:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ed67b1e3850b3825b5ad553b027488c256368c27",
"body": "- Mark Caveman Mode, TBM features as Planned (Phase 3)\n- Remove caveman/RTK association; RTK is theme/UI plugin only\n- Remove fabricated TBM config sections from README and configuration.md\n- Remove /mode, /tokens, /cache CLI commands (not in source)\n- Rewrite docs/tbm.md as honest design doc with status markers\n- Document what actually exists: goal token_budget, subagent request budgets\n- Add verification notes pointing to actual source files",
"is_bot": false,
"headline": "docs: fix fabricated feature claims — align with actual source code",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T17:28:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dabdc1a8a146d37a75211a5ccb8035029941e7a6",
"body": null,
"is_bot": false,
"headline": "feat: add --version flag to CLI",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T17:21:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2c7e823301584a09452171b94b1c7d63ff612914",
"body": null,
"is_bot": false,
"headline": "feat: add GitHub Actions CI/CD workflow",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T17:21:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de9389ddf7162f77dbd798395506069567a8420e",
"body": "…ller/scripts\n\n- Cleaned all 11 public docs: remove Indo text, fix tables, sync phase status\n- Added bin/snscoder.js (npm CLI shim)\n- Added install.ps1 (Windows PowerShell installer)\n- Added scripts/fetch-binary.mjs (postinstall binary downloader)\n- Updated package.json, install.sh",
"is_bot": false,
"headline": "docs: Phase 1 audit — English-only sweep, factual sync, add bin/insta…",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T17:18:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de19c1a9fa4e0071532930a1b3b171574513dd47",
"body": "- Remove Indonesian prose (3 lines in competitor analysis)\n- Fix corrupt MCP table syntax (|| → |, remove *** artifacts)\n- Update Phase 1 status: Pending → Done (matches d1480eb)\n- Replace bun start CLI references with snscoder binary\n- Neutralize persona (remove I/we/Let's, use OSS third-person)\n- \n[…]\nl src/ tree (commands/, ui/, mnemopi/, mcp/)\n- Add mnemopi as default memory backend (matches upstream)\n- Calibrate TBM savings claim (70-90% → 60-80%)\n- Fix competitor table: Hermes Agent description",
"is_bot": false,
"headline": "docs: clean README — full English professional, sync with Phase 1 state",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T15:21:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "037a31dadcdf87748b37f8951fc726f682d16001",
"body": "…runtime (Bun not Node), fix version, fix YAML format\n\n- README.md: replace all Hermes/NousResearch refs with oh-my-pi/can1357\n- README.md: Node.js/npm → Bun runtime (23 fixes)\n- docs/faq.md: 3 Hermes refs replaced with oh-my-pi\n- docs/terminal-ui.md: v0.2.0 → v0.1.0\n- docs/configuration.md: YAML format fix (comma-separated → proper list)\n- docs/installation.md: add Bun runtime to prerequisites\n- package.json: description fix (remove Hermes mention)",
"is_bot": false,
"headline": "fix: docs coherence — correct fork origin (oh-my-pi not Hermes), fix …",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-24T14:54:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d1480eb17ebde0b4efe97cdf4c2ae5e114c6a5dd",
"body": "Fork from Pi Agent (oh-my-pi) v16.1.15:\n- Copied 978 TS source files from Pi Agent npm package\n- Installed runtime deps (picocolors, ora, boxen, js-yaml, etc.)\n- Rebranded user-facing refs (repo URL, user-agent, project name)\n- Kept @oh-my-pi/* package imports (runtime dependencies)\n\nNew files:\n- sr\n[…]\nmd — terminal UI design doc\n\nCLI commands:\n- snscoder chat — interactive chat\n- snscoder setup — first-time setup\n\nConfig: ~/.sns-myagent/config.yaml, env var overrides\nAuth: BYOK (no forced API keys)",
"is_bot": false,
"headline": "feat: Phase 1 — fork scaffold, config system, terminal UI, CLI",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T17:45:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5a8dc604c80852160ff0a747310e784b17044a38",
"body": "Internal dev files (KANBAN, TODO, HANDOFF) gitignored.\nKeep repo clean — only public-facing docs on GitHub.",
"is_bot": false,
"headline": "chore: add .gitignore, remove KANBAN.md from tracking",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T16:56:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e98b74a74fa84cc99a19cdac8ec41e2c933283c3",
"body": "- Phase 0 done items (16 tasks completed)\n- Phase 1-5 backlog with target dates\n- Post-MVP roadmap\n- 6 decision points awaiting Bung",
"is_bot": false,
"headline": "chore: add KANBAN.md project tracking board",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T16:51:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c581c7b187380426772faed92c5ec17fb1a12ab2",
"body": "- README: Project Timeline section with 6 phases, target dates, status\n- README: June/July 2026 monthly plan with weekly breakdown\n- README: Post-MVP roadmap items\n- CHANGELOG: v0.1.0 entry + full roadmap (5 phases detailed)\n- ToC: Project Timeline link added\n\nCurrent: Phase 0 complete (planning + docs)\nNext: Phase 1 (fork + scaffold) pending decision points",
"is_bot": false,
"headline": "docs: add project timeline + phase tracking + monthly plan",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T16:50:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cda8b6f05f396f9d9faa0d15ca174da18f54a620",
"body": "Install methods:\n- curl one-liner (install.sh)\n- npm install -g snscoder\n- npx snscoder\n- git clone (dev)\n- Windows PowerShell\n\nNew files:\n- package.json (with bin field for CLI)\n- install.sh (one-liner installer)\n- SECURITY.md (vulnerability reporting, security model)\n- CONTRIBUTING.md (dev setup, \n[…]\nME updates:\n- 5 install options (curl/npm/npx/clone/Windows)\n- Recommended specs table (RAM, disk, CPU)\n- ToC links to detailed docs\n- Security + Changelog sections\n- Docs cross-references per section",
"is_bot": false,
"headline": "docs: full docs structure + multiple install methods + package.json",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T16:30:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "828165707ecc0b23229ec80cd8aa7d6bb4bf0c35",
"body": "- Hermes Agent can configure itself through chat (same as SNS MyAgent)\n- Mark Hermes ✅ for conversational config + self-configuring\n- SNS MyAgent differentiator: purpose-built single-user terminal + TBM\n- Fix FAQ claim 'no other agent does this'",
"is_bot": false,
"headline": "docs: fix competitive table — Hermes ✅ self-configuring",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T15:56:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "682b9b1fa31041e8e8c20e33179e637eee0d9724",
"body": "- Verified competitor features from GitHub repos (Pi, omp, Hermes, OpenClaw)\n- Accurate ✅/⚠️/❌ per feature (built-in vs extension vs none)\n- Mem0 section: 4 deployment modes (Cloud/Self-host/Library/Local) + pricing\n- Added TBM as unique row in competitive table\n- Legend and per-competitor notes",
"is_bot": false,
"headline": "docs: accurate competitive landscape + Mem0 deployment modes",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T15:53:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe952ee9d3d8a817acfa253ce4ea9894d2ccc6e0",
"body": null,
"is_bot": false,
"headline": "docs: README v2 — competitive positioning, conversational config focus",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T14:55:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d62a1603b73b74dc973bc2d0b0bfa97e399b071f",
"body": null,
"is_bot": false,
"headline": "docs: comprehensive README revision",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T14:44:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bf4635da6ce8559efea1725198579ce790f856c",
"body": null,
"is_bot": false,
"headline": "docs: add README",
"author_name": "Reihantt6",
"author_login": "Reihantt6",
"committed_at": "2026-06-23T14:30:10Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 12,
"commits_last_year": 94,
"latest_release_at": "2026-07-18T10:37:18Z",
"latest_release_tag": "v0.3.9",
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 4,
"days_since_latest_release": 5,
"mean_days_between_releases": 2.1
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": true,
"health_percentage": 57,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "@sns-myagent/cli",
"exists": true,
"license": "MIT",
"keywords": [
"coding-agent",
"ai",
"llm",
"cli",
"byok",
"telegram",
"multi-agent",
"tui",
"agent",
"snsagent",
"sns-myagent"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@sns-myagent/cli",
"is_deprecated": false,
"latest_version": "0.3.9",
"repository_url": "https://github.com/Reihantt6/sns-myagent",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2040,
"first_published_at": "2026-06-25T11:36:27.562000Z",
"latest_published_at": "2026-07-18T11:49:30.514000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 0,
"stars": 2,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 492776,
"source_files_sampled": 1060,
"oversized_source_files": 21,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [
{
"name": "adm-zip",
"direct": false,
"version": "0.5.18",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-xcpc-8h2w-3j85"
],
"fixed_version": "0.6.0",
"advisory_count": 1,
"oldest_advisory_days": 13
},
{
"name": "sharp",
"direct": false,
"version": "0.34.5",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.3,
"advisory_ids": [
"GHSA-f88m-g3jw-g9cj"
],
"fixed_version": "0.35.0",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "@opentelemetry/core",
"direct": false,
"version": "2.7.1",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-8988-4f7v-96qf"
],
"fixed_version": "2.8.0",
"advisory_count": 1,
"oldest_advisory_days": 37
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 2,
"moderate": 1
},
"advisory_count": 3,
"affected_count": 3,
"assessed_count": 325,
"malicious_count": 0,
"assessed_package": "npm:@sns-myagent/cli@0.3.9",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@agentclientprotocol/sdk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "0.25.0"
},
{
"name": "@babel/parser",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^7.29.7"
},
{
"name": "@mozilla/readability",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.6.0"
},
{
"name": "@oh-my-pi/hashline",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/omp-stats",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-agent-core",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-ai",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-catalog",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-mnemopi",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-natives",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-tui",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-utils",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/pi-wire",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@oh-my-pi/snapcompact",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^16.1.18"
},
{
"name": "@opentelemetry/api",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.9.1"
},
{
"name": "@opentelemetry/context-async-hooks",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.7.1"
},
{
"name": "@opentelemetry/exporter-trace-otlp-proto",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.218.0"
},
{
"name": "@opentelemetry/resources",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.7.1"
},
{
"name": "@opentelemetry/sdk-trace-base",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.7.1"
},
{
"name": "@opentelemetry/sdk-trace-node",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.7.1"
},
{
"name": "@puppeteer/browsers",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.4"
},
{
"name": "@types/turndown",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "5.0.6"
},
{
"name": "@xterm/headless",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^6.0.0"
},
{
"name": "arktype",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.2.0"
},
{
"name": "boxen",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.0.1"
},
{
"name": "chalk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.6.2"
},
{
"name": "cli-table3",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.6.5"
},
{
"name": "diff",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^9.0.0"
},
{
"name": "fast-xml-parser",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.9.0"
},
{
"name": "gradient-string",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.0"
},
{
"name": "grammy",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.44.0"
},
{
"name": "handlebars",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.7.9"
},
{
"name": "js-yaml",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.1.0"
},
{
"name": "linkedom",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.18.12"
},
{
"name": "lru-cache",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "11.5.1"
},
{
"name": "mammoth",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.12.0"
},
{
"name": "mupdf",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.27.0"
},
{
"name": "ora",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^9.4.1"
},
{
"name": "picocolors",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.1"
},
{
"name": "puppeteer-core",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^25.1.0"
},
{
"name": "string-width",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.2.1"
},
{
"name": "turndown",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "7.2.4"
},
{
"name": "turndown-plugin-gfm",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "1.0.2"
},
{
"name": "zod",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "Reihantt6",
"commits": 68,
"avatar_url": "https://avatars.githubusercontent.com/u/219822095?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"build-release.yml",
"ci.yml",
"docker.yml",
"issues.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "11 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "9953fe23af270d07b9e7c214a184af95e6653a7d",
"ran_at": "2026-07-23T19:16:56Z",
"aggregate_score": 2.7,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-18T11:17:07Z",
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": "CANCELLED",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/Reihantt6/sns-myagent",
"host": "github.com",
"name": "sns-myagent",
"owner": "Reihantt6"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 46,
"inputs": {
"security": 38,
"vitality": 70,
"community": 30,
"governance": 29,
"engineering": 62
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 70,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"commits_last_year": 94,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 4
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "4/52 weeks with commits",
"points": 2.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 4
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "94 commits in the last year",
"points": 17.8,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 94
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 12,
"latest_release_tag": "v0.3.9",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 2.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "12 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 12
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.1 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.1
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 30,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 2,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 2
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 45,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 55,
"inputs": {
"packages": [
"@sns-myagent/cli"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 2040
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "2,040 downloads/month across npm",
"points": 44.1,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 2040,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "critical",
"name": "Sustainability & Governance",
"value": 29,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "critical",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 23,
"inputs": {
"followers": 1,
"owner_type": "User",
"is_verified": null,
"owner_login": "Reihantt6",
"public_repos": 3,
"account_age_days": 380
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "1 followers of Reihantt6",
"points": 2.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1,
"login": "Reihantt6"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "3 public repos, account ~1 yr old",
"points": 6.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 3
}
},
{
"code": "account_age_years",
"params": {
"years": 1
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@sns-myagent/cli"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "11 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 11
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 62,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 60,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "4 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 4
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 38,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 27,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 2.7
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "11 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "good",
"name": "Dependency advisories",
"note": "Matched the npm:@sns-myagent/cli@0.3.9 runtime dependency closure — what installing the published package pulls in — 325 packages. Reachability is not analyzed.",
"notes": [
{
"code": "advisories_scope_published",
"params": {
"package": "npm:@sns-myagent/cli@0.3.9",
"assessed": 325
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 83,
"inputs": {
"source": "osv",
"advisories": 3,
"affected_packages": 3,
"assessed_packages": 325,
"unassessed_packages": 0,
"affected_by_severity": "high 2, moderate 1",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "3 affected: adm-zip 0.5.18 (high 7.5), sharp 0.34.5 (high 7.3), @opentelemetry/core 2.7.1 (moderate 5.3)",
"points": 7.6,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 3,
"packages": "adm-zip 0.5.18 (high 7.5), sharp 0.34.5 (high 7.3), @opentelemetry/core 2.7.1 (moderate 5.3)"
}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory has been public longer than 90 days",
"points": 40,
"status": "met",
"details": [
{
"code": "advisories_none_stale",
"params": {
"days": 90
}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 325,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 52,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.989,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "93 of 94 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 93,
"sampled": 94
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 43,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 94",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 94
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 492776,
"source_files_sampled": 1060,
"oversized_source_files": 21
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "21/1060 source files over 60KB",
"points": 53.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1060,
"oversized": 21
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-23T19:17:03.138563Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/Reihantt6/sns-myagent.svg",
"full_name": "Reihantt6/sns-myagent",
"license_state": "absent",
"license_spdx": null
}