check('改稿不再包含禁用词', all(word not in output['revised'] for word in data['rules']['forbidden']))
check('实际字符数不超过80且保留99元', len(output['revised']) <= data['rules']['max_chars'] and '99元' in output['revised'])
(folder / 'revised.txt').write_text(output['revised'])
spans = [{'text': word, 'start': data['draft'].index(word), 'end': data['draft'].index(word) + len(word)} for word in data['rules']['forbidden'] if word in data['draft']]
check('程序按原始文案重算可回查字符位置', all(data['draft'][row['start']:row['end']] == row['text'] for row in spans))
result = {'api_review': output, 'program_spans': spans, 'revised': output['revised'], 'model_offsets_trusted': False}
