II.
LibraryProcess JSON
Structured · livelib-process:shared--forbidden-markers-scanner
Composable pre-deploy gate that scans built JS chunks for substring json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "lib-process:shared--forbidden-markers-scanner",
"_kind": "LibraryProcess",
"_file": "generated-library/processes.yaml",
"_cluster": "generated-library",
"attributes": {
"displayName": "Composable pre-deploy gate that scans built JS chunks for substring",
"description": "Composable pre-deploy gate that scans built JS chunks for substring\nmarkers listed in a project-local `forbidden-markers.txt`. Designed for injection\ninto deploy and quality-gate processes to enforce structural guarantees against\nthe revival of saga-era / obsolete code paths after a refactor.\nThe module provides three surfaces:\n- `parseForbiddenMarkers` — synchronous parser (blank lines + `#` comments stripped)\n- `scanForbiddenMarkers` — async scanner returning structured `{ ok, hits, reason }`\n- `checkForbiddenMarkersTask` — babysitter `defineTask` wrapper for harness-driven use\nOrigin: ported from the cookbook prototype `scripts/check-no-forbidden.mjs`,\nwhich proved the pattern across the VI-restart / iOS-Safari saga (2026-05).\nUpstreamed for the babysitter process library per issue #477.",
"libraryPath": "library/processes/shared/forbidden-markers-scanner.js",
"usesAgents": [
"general-purpose"
]
},
"outgoingEdges": [
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "skill-area:code-review-practice",
"kind": "lib_requires_skill_area",
"attributes": {
"weight": 1
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "skill-area:e2e-testing",
"kind": "lib_requires_skill_area",
"attributes": {
"weight": 0.7
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "topic:test-driven-development",
"kind": "lib_covers_topic",
"attributes": {
"weight": 1
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "topic:code-review-best-practices",
"kind": "lib_covers_topic",
"attributes": {
"weight": 0.7
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "domain:software-engineering",
"kind": "lib_applies_to_domain",
"attributes": {
"weight": 1
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "role:backend-engineer",
"kind": "lib_involves_role",
"attributes": {
"weight": 1
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "role:tech-lead",
"kind": "lib_involves_role",
"attributes": {
"weight": 0.7
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "role:qa-engineer",
"kind": "lib_involves_role",
"attributes": {
"weight": 0.5
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "workflow:code-review",
"kind": "lib_implements_workflow",
"attributes": {
"weight": 1
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "workflow:feature-development",
"kind": "lib_implements_workflow",
"attributes": {
"weight": 0.7
}
},
{
"from": "lib-process:shared--forbidden-markers-scanner",
"to": "workflow:release-management",
"kind": "lib_implements_workflow",
"attributes": {
"weight": 0.5
}
}
],
"incomingEdges": []
}