Files
stack/tools/unslop-hook/lists.json
T
jason.woltje 7db4c5c2ed feat(agent): interactive TUI launcher + identity + TOOLS.md (#35)
- scripts/agent.sh <name>: launches interactive pi TUI in the container
  with contracts + optional mission + agent identity + named session +
  optional workspace/tools; the Mosaic alternative to vanilla pi
- pi adapter: MOSAIC_INTERACTIVE branch (clean TUI, no -p, no initial
  prompt); headless exec rebuilt via positional args (no word-splitting
  on the request); MOSAIC_AGENT_NAME optional in headless
- loader: AGENT IDENTITY section when the launcher names the agent
- compose: fixed command removed (request defaults live in run-agent.sh);
  MOSAIC_INTERACTIVE/MOSAIC_AGENT_NAME passthrough
- docs/TOOLS.md: full on-demand tool reference; AGENTS.md routes to it
- RELEASE -> 0.0.8 (container change); build verified

Closes #35
2026-09-03 11:24:56 -05:00

55 lines
3.9 KiB
JSON

{
"version": 1,
"convention": "Use vs mention. A document that MENTIONS a banned word or phrase quotes it as inline code (backticks). The checker strips code spans before matching, so a backticked mention is invisible to the gate while a bare one flags. A document that deliberately CONTAINS banned items to test detection (a fixture) is a use, not a mention, and is expected to flag. This file itself contains the banned items as data; that is a use.",
"punctPolicy": "Deliberate divergence from SYSTEM.md (2026-08-19): the contract forbids em dashes outright and closes the escapes. These punct rules are deliberately looser: they fire only at >= punctMinCount occurrences AND density >= punctDensityPer1k per 1000 chars. Rationale is reply-level noise, not contract strength: an advisory gate that flags every reply carrying one dash trains operators to ignore it. Measured on natural fleet prose 2026-08-19: documents run 1.7-3.2 em dashes per 1000 chars, so documents that overuse still flag. Tighten to contract strength if enforcement goes blocking or the log shows fleet prose not converging toward zero.",
"thresholds": {
"punctMinCount": 3,
"punctDensityPer1k": 1.0
},
"words": [
{ "value": "additionally", "source": "ms-unslop:7" },
{ "value": "crucial", "source": "ms-unslop:7" },
{ "value": "delve", "source": "ms-unslop:7" },
{ "value": "garner", "source": "ms-unslop:7" },
{ "value": "interplay", "source": "ms-unslop:7" },
{ "value": "intricate", "source": "ms-unslop:7" },
{ "value": "pivotal", "source": "ms-unslop:7" },
{ "value": "showcase", "source": "ms-unslop:7" },
{ "value": "tapestry", "source": "ms-unslop:7" },
{ "value": "testament", "source": "ms-unslop:7" },
{ "value": "underscore", "source": "ms-unslop:7" },
{ "value": "vibrant", "source": "ms-unslop:7" },
{ "value": "utilize", "source": "ms-unslop:31" },
{ "value": "leverage", "source": "ms-unslop:31" },
{ "value": "facilitate", "source": "ms-unslop:31" },
{ "value": "load-bearing", "source": "system-md" }
],
"phrases": [
{ "value": "worth stating plainly", "source": "system-md" },
{ "value": "here's the honest truth", "source": "system-md" },
{ "value": "heres the honest truth", "source": "system-md", "note": "apostrophe-OMITTED renderings only; ASCII and curly-apostrophe forms match the main entry because the checker normalizes U+2019/U+2018 to ASCII before phrase matching" },
{ "value": "the real tension", "source": "system-md" },
{ "value": "carry the argument", "source": "system-md" },
{ "value": "in order to", "source": "ms-unslop:23" },
{ "value": "due to the fact that", "source": "ms-unslop:23" },
{ "value": "it is important to note", "source": "ms-unslop:23" },
{ "value": "i hope this helps", "source": "ms-unslop:20" },
{ "value": "let me know if", "source": "ms-unslop:20" },
{ "value": "of course!", "source": "ms-unslop:20" },
{ "value": "certainly!", "source": "ms-unslop:20" },
{ "value": "found the smoking gun", "source": "ms-unslop:20" },
{ "value": "happy to help", "source": "ms-unslop:20", "note": "extension of the named pattern set" },
{ "value": "great question", "source": "ms-unslop:22" },
{ "value": "absolutely right", "source": "ms-unslop:22" },
{ "value": "excellent question", "source": "ms-unslop:22", "note": "extension of the named pattern set" }
],
"punct": [
{ "value": "em", "label": "em dash", "chars": ["\u2014"], "source": "ms-unslop:13+system-md" },
{ "value": "en", "label": "en dash", "chars": ["\u2013"], "source": "ms-unslop:13" },
{ "value": "curly", "label": "curly quote/apostrophe", "chars": ["\u201c", "\u201d", "\u2018", "\u2019"], "source": "ms-unslop:19" }
],
"patterns": [
{ "value": "not-just-but", "regex": "not just\\s+[^.!?]{0,80}?\\s+but", "flags": "gi", "detail": "not just X but Y", "source": "ms-unslop:9" }
]
}