mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-15 07:36:50 +03:00
Move the slop defects back into the craft floor
The detector-blind slop review existed because the AI-tell rules had been stripped out of SKILL.md and nothing carried them. The floor is a better home: it loads after concept ideation and immediately before editing UI, which is the placement that made stripping them necessary in the first place. Models tread lightly when a ban list is present during ideation; by the time the floor loads, the direction is already committed. - Rename build-floor.md to craft-floor.md and restore the absolute bans (side-stripes, gradient text, glassmorphism, hero-metric, identical card grids, eyebrow-on-every-section, numbered markers, text overflow), the codex and gemini defect lists, and the reflexes no scanner catches. Rule ids match the ones the ablation catalog already knows. - Delete lib/slop-review.mjs and both injections. The Stop hook is now purely a mechanical pass and stays silent with nothing to report. - context.mjs replaces AI_SLOP_REVIEW_REQUIRED with the narrower MANUAL_DETECTOR_REQUIRED, emitted only when a session has no hook at all. A per-edit hook already covers the mechanical gap, and the floor covers the judgment one either way. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
export const LLM_ONLY_SLOP_ITEMS = Object.freeze([
|
||||
'Monospace used merely to signal “technical” or “developer.”',
|
||||
'Light or dark mode chosen by category habit rather than the actual use scene.',
|
||||
'Everything wrapped in cards, or identical icon-heading-text cards repeated as the page structure.',
|
||||
'Hero-metric scaffolds: one oversized number, a small label, supporting stats, and an accent treatment.',
|
||||
'Decorative glassmorphism, meaningless sparklines, or generic rounded rectangles with drop shadows.',
|
||||
'A modal chosen by reflex when the task does not require interruption or protected focus.',
|
||||
]);
|
||||
|
||||
export function renderLlmOnlySlopReview({ manualDetector = false, automaticDetector = false, scriptsPath = null } = {}) {
|
||||
const lines = [
|
||||
automaticDetector
|
||||
? 'AI_SLOP_REVIEW_REQUIRED: The automatic detector covers mechanical rules, but this harness has no reliable late review. Before finishing changed UI, inspect the authored result for detector-blind model reflexes:'
|
||||
: 'AI_SLOP_REVIEW_REQUIRED: The automatic Impeccable design hook is not available for this session. Before finishing changed UI, inspect the authored result for detector-blind model reflexes:',
|
||||
...LLM_ONLY_SLOP_ITEMS.map((item) => `- ${item}`),
|
||||
'Fix reflexes, not intentional choices required by the brief or established visual authority.',
|
||||
];
|
||||
if (manualDetector && scriptsPath) {
|
||||
lines.push(`Then run the mechanical detector once over the changed web UI: \`node ${scriptsPath}/detect.mjs --json <changed targets>\`. Do not run it earlier during concept selection.`);
|
||||
}
|
||||
return lines.join('\n');
|
||||
}
|
||||
|
||||
export function renderStopSlopReview() {
|
||||
return [
|
||||
'[impeccable@1] Detector-blind AI-slop review. The mechanical pass is complete; now inspect the rendered result for model reflexes it cannot reliably detect:',
|
||||
...LLM_ONLY_SLOP_ITEMS.map((item) => `- ${item}`),
|
||||
'Fix reflexes, not intentional choices required by the brief or established visual authority. Do not rerun the detector; this is the authored judgment layer.',
|
||||
].join('\n');
|
||||
}
|
||||
Reference in New Issue
Block a user