npm job-forge @2.14.53
score
0.6926
med
flagged
2026-07-20 17:53
Signals fired
| signal | weight | rationale |
|---|---|---|
| cadence | ||
| rapid_release | 0.8 | 3 versions in last 24h: ['2.14.51', '2.14.52', '2.14.53'] |
| topology | ||
| mass_publish_burst | 0.8 | publisher 'razroo' pushed 19 packages in the last 15min on npm |
| dependency_added_unknown | 0.6 | 3 new non-watchlisted dep(s): ['@modelcontextprotocol/sdk', '@razroo/gmail-mcp', 'zod'] |
| enrichment | ||
| repo_too_new_for_version_history | 0.7 | claimed repo created 99d ago but package has 71 versions (expect >= 111d for that history) |
Prior profile (what it deviated from)
{
"had_install_script": true,
"maintainers": [
"razroo"
],
"versions": 70
}
Evidence (package doc at flag time)
{
"dependencies_count": 25,
"dist": {
"integrity": "sha512-CJYcfew5e3zfxopE3DRHk3vKL2gY5DI91POf7zfcRIhXjGa/z+4HpmN1B65vsfWDzDxxd985BHI1KRb6rHg/Mw==",
"tarball": "https://registry.npmjs.org/job-forge/-/job-forge-2.14.53.tgz",
"unpackedSize": 10290950
},
"dist-tags": {
"latest": "2.14.53"
},
"latest_version": "2.14.53",
"maintainers": [
{
"email": "charlie@razroo.com",
"name": "razroo"
}
],
"num_versions": 71,
"repository": {
"type": "git",
"url": "git+https://github.com/Agent-Pattern-Labs/JobForge.git"
},
"scripts": {
"apply:queue": "node scripts/apply-queue.mjs",
"balance:scan": "node scripts/balance-scan-results.mjs",
"build:config": "iso build . && node scripts/build-client-skills.mjs",
"build:dashboard": "cd dashboard && go build .",
"build:skills": "node scripts/build-client-skills.mjs",
"cache:get": "node bin/job-forge.mjs cache:get",
"cache:has": "node bin/job-forge.mjs cache:has",
"cache:key": "node bin/job-forge.mjs cache:key",
"cache:list": "node bin/job-forge.mjs cache:list",
"cache:prune": "node bin/job-forge.mjs cache:prune",
"cache:put": "node bin/job-forge.mjs cache:put",
"cache:status": "node bin/job-forge.mjs cache:status",
"cache:verify": "node bin/job-forge.mjs cache:verify",
"canon:compare": "node bin/job-forge.mjs canon:compare",
"canon:explain": "node bin/job-forge.mjs canon:explain",
"canon:key": "node bin/job-forge.mjs canon:key",
"canon:normalize": "node bin/job-forge.mjs canon:normalize",
"capabilities:check": "node bin/job-forge.mjs capabilities:check",
"capabilities:explain": "node bin/job-forge.mjs capabilities:explain",
"capabilities:list": "node bin/job-forge.mjs capabilities:list",
"capabilities:render": "node bin/job-forge.mjs capabilities:render",
"context:check": "node bin/job-forge.mjs context:check",
"context:explain": "node bin/job-forge.mjs context:explain",
"context:list": "node bin/job-forge.mjs context:list",
"context:plan": "node bin/job-forge.mjs context:plan",
"context:render": "node bin/job-forge.mjs context:render",
"dedup": "node dedup-tracker.mjs",
"facts:build": "node bin/job-forge.mjs facts:build",
"facts:check": "node bin/job-forge.mjs facts:check",
"facts:explain": "node bin/job-forge.mjs facts:explain",
"facts:has": "node bin/job-forge.mjs facts:has",
"facts:query": "node bin/job-forge.mjs facts:query",
"facts:status": "node bin/job-forge.mjs facts:status",
"facts:verify": "node bin/job-forge.mjs facts:verify",
"guard:audit": "node bin/job-forge.mjs guard:audit",
"guard:explain": "node bin/job-forge.mjs guard:explain",
"index:build": "node bin/job-forge.mjs index:build",
"index:explain": "node bin/job-forge.mjs index:explain",
"index:has": "node bin/job-forge.mjs index:has",
"index:query": "node bin/job-forge.mjs index:query",
"index:status": "node bin/job-forge.mjs index:status",
"index:verify": "node bin/job-forge.mjs index:verify",
"ledger:has": "node bin/job-forge.mjs ledger:has",
"ledger:query": "node bin/job-forge.mjs ledger:query",
"ledger:rebuild": "node bin/job-forge.mjs ledger:rebuild",
"ledger:status": "node bin/job-forge.mjs ledger:status",
"ledger:verify": "node bin/job-forge.mjs ledger:verify",
"lineage:check": "node bin/job-forge.mjs lineage:check",
"lineage:explain": "node bin/job-forge.mjs lineage:explain",
"lineage:record": "node bin/job-forge.mjs lineage:record",
"lineage:stale": "node bin/job-forge.mjs lineage:stale",
"lineage:status": "node bin/job-forge.mjs lineage:status",
"lineage:verify": "node bin/job-forge.mjs lineage:verify",
"lint:agentmd": "agentmd lint iso/instructions.md",
"lint:agentmd:modes": "agentmd lint modes/apply.md",
"lint:helpers": "node scripts/check-helper-integration.mjs .",
"lint:modes": "isolint lint modes/",
"merge": "node merge-tracker.mjs",
"migrate:apply": "node bin/job-forge.mjs migrate:apply",
"migrate:check": "node bin/job-forge.mjs migrate:check",
"migrate:explain": "node bin/job-forge.mjs migrate:explain",
"migrate:plan": "node bin/job-forge.mjs migrate:plan",
"normalize": "node normalize-statuses.mjs",
"pdf": "node generate-pdf.mjs",
"plan": "iso plan .",
"portal:explain": "node bin/job-forge.mjs portal:explain",
"portal:form-schema": "node bin/job-forge.mjs portal:form-schema",
"portal:snapshot": "node bin/job-forge.mjs portal:snapshot",
"postflight:check": "node bin/job-forge.mjs postflight:check",
"postflight:explain": "node bin/job-forge.mjs postflight:explain",
"postflight:status": "node bin/job-forge.mjs postflight:status",
"postinstall": "node bin/sync.mjs",
"preflight:check": "node bin/job-forge.mjs preflight:check",
"preflight:explain": "node bin/job-forge.mjs preflight:explain",
"preflight:plan": "node bin/job-forge.mjs preflight:plan",
"prepack": "npm run build:config",
"prioritize:build": "node bin/job-forge.mjs prioritize:build",
"prioritize:check": "node bin/job-forge.mjs prioritize:check",
"prioritize:explain": "node bin/job-forge.mjs prioritize:explain",
"prioritize:items": "node bin/job-forge.mjs prioritize:items",
"prioritize:rank": "node bin/job-forge.mjs prioritize:rank",
"prioritize:select": "node bin/job-forge.mjs prioritize:select",
"prioritize:status": "node bin/job-forge.mjs prioritize:status",
"prioritize:verify": "node bin/job-forge.mjs prioritize:verify",
"receipts:capture": "node bin/job-forge.mjs receipts:capture",
"receipts:create": "node bin/job-forge.mjs receipts:create",
"receipts:inspect": "node bin/job-forge.mjs receipts:inspect",
"receipts:path": "node bin/job-forge.mjs receipts:path",
"receipts:redact": "node bin/job-forge.mjs receipts:redact",
"receipts:verify": "node bin/job-forge.mjs receipts:verify",
"redact:apply": "node bin/job-forge.mjs redact:apply",
"redact:explain": "node bin/job-forge.mjs redact:explain",
"redact:scan": "node bin/job-forge.mjs redact:scan",
"redact:verify": "node bin/job-forge.mjs redact:verify",
"release:check-source": "node ./scripts/release/check-source.mjs",
"score:check": "node bin/job-forge.mjs score:check",
"score:compare": "node bin/job-forge.mjs score:compare",
"score:compute": "node bin/job-forge.mjs score:compute",
"score:explain": "node bin/job-forge.mjs score:explain",
"score:gate": "node bin/job-forge.mjs score:gate",
"score:verify": "node bin/job-forge.mjs score:verify",
"smoke:iso": "iso plan . && iso build . --dry-run && node scripts/build-client-skills.mjs --dry-run && iso-route verify models.yaml && node scripts/check-iso-smoke.mjs . && node scripts/check-helper-integration.mjs . && JOBFORGE_ROOT=$PWD iso-eval run fixtures/iso-smoke/eval.yml",
"sync-check": "node cv-sync-check.mjs",
"telemetry:list": "node bin/job-forge.mjs telemetry:list",
"telemetry:show": "node bin/job-forge.mjs telemetry:show",
"telemetry:status": "node bin/job-forge.mjs telemetry:status",
"telemetry:watch": "node bin/job-forge.mjs telemetry:watch",
"test": "node --test",
"test:agentmd": "agentmd test iso/instructions.md --fixtures fixtures/instructions.yml --via claude-code --model claude-haiku-4-5 --concurrency 2",
"test:agentmd:apply": "agentmd test modes/apply.md --fixtures fixtures/modes/apply.yml --via claude-code --model claude-haiku-4-5 --concurrency 2 --trials 3",
"test:agentmd:baseline": "agentmd test iso/instructions.md --fixtures fixtures/instructions.yml --via claude-code --model claude-haiku-4-5 --concurrency 2 --trials 3 --format json --out fixtures/baseline.json",
"timeline:build": "node bin/job-forge.mjs timeline:build",
"timeline:check": "node bin/job-forge.mjs timeline:check",
"timeline:due": "node bin/job-forge.mjs timeline:due",
"timeline:explain": "node bin/job-forge.mjs timeline:explain",
"timeline:plan": "node bin/job-forge.mjs timeline:plan",
"timeline:status": "node bin/job-forge.mjs timeline:status",
"timeline:verify": "node bin/job-forge.mjs timeline:verify",
"tokens": "node scripts/token-usage-report.mjs",
"tokens:log": "node scripts/token-usage-report.mjs --days 1 --append",
"tokens:today": "node scripts/token-usage-report.mjs --days 1",
"trace:list": "node bin/job-forge.mjs trace:list",
"trace:show": "node bin/job-forge.mjs trace:show",
"trace:stats": "node bin/job-forge.mjs trace:stats",
"verify": "node verify-pipeline.mjs && node scripts/verify-portal-diversity.mjs",
"verify:diversity": "node scripts/verify-portal-diversity.mjs",
"verify:pipeline": "node verify-pipeline.mjs"
},
"signal_details": {
"dependency_added_unknown": "3 new non-watchlisted dep(s): ['@modelcontextprotocol/sdk', '@razroo/gmail-mcp', 'zod']",
"mass_publish_burst": "publisher 'razroo' pushed 19 packages in the last 15min on npm",
"rapid_release": "3 versions in last 24h: ['2.14.51', '2.14.52', '2.14.53']",
"repo_too_new_for_version_history": "claimed repo created 99d ago but package has 71 versions (expect >= 111d for that history)"
},
"time": {
"created": "2026-04-17T16:13:11.123Z",
"modified": "2026-07-20T22:53:32.661Z"
}
}