- 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
55 lines
3.9 KiB
JSON
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" }
|
|
]
|
|
}
|