feat(linkedin-studio): deterministic §B/§C1 contract binding-gate (fix #1 slice 1)
Adds scripts/contract-gate/ — a deterministic, AI-free gate that enforces the mechanical half of the Maskinrommet writing contract (§B red flags + §C1 regelsjekk) BEFORE operator handoff, so the same mechanical correction never reaches KTG twice. First slice of fix #1 (binding + accumulating); target re-scoped to close all 4 diagnosis gaps = sustainable newsletter workflow. - Structured ruleset as DATA (src/rules.ts) so accumulation (slice 2) appends. - 3 BLOCK (modell-strawman, series-thesis "er ikke modellen", _underscore_) + 7 WARN (judgment-needed). Block only on provable, ~zero-FP matches. - Code/frontmatter masking; line-accurate reporting; CLI receipt + exit code. - 21/21 tests (node:test), tsc clean. - Validated on 6 real editions: 0 BLOCK on published Del 2-5; caught a real Rule-10 violation in Del 6 (WIP) automatically. Versal-tic uses an emphasis-word denylist after real-data FPs (NAV/DFØ/NPM). Finding: the plugin already mirrors §A + §C2; §C1 was the unhomed gap this fills. Plugin structure lint unchanged (81/0/0); no new agents/commands/refs/skills.
This commit is contained in:
parent
9338454ea4
commit
58aebf05a9
10 changed files with 1329 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -57,6 +57,8 @@ docs/**/.session-state.local.json
|
|||
# Node.js
|
||||
scripts/analytics/node_modules/
|
||||
scripts/analytics/build/
|
||||
scripts/contract-gate/node_modules/
|
||||
scripts/contract-gate/build/
|
||||
|
||||
# --- session/local state ---
|
||||
# STATE.md is LOCAL-ONLY (gitignored): no private remote exists and STATE must
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue