Scaffold CMOS 18 reformatter: harness, linter, parser, formatter, CLI
Initial phase-1 baseline of the karpathy/autoresearch-style loop. The formatter module is the inner-loop artifact; parser and linter are infra. The linter carries a LINTER_VERSION hash (v0.2.0) that will force a re-baseline on any rule change. Components: - harness/diff.py: case-sensitive field-level substring diff - harness/score.py: three-axis scoring (field, linter, canary exact) - src/cmos/linter.py: 9 CMOS 18 structural rules, each Purdue/CMOS cited - src/cmos/parser.py: locate ## Bibliography section, split entries - src/cmos/formatter.py: prompt + OpenAI call with caller injection - src/cmos/cli.py: cmos format path/to/draft.md - scripts/run_loop.py: loop runner with --fake mode for no-API runs - exemplars/: 3 canary seed exemplars (book, journal w/DOI, web), sourced from chicagomanualofstyle.org quick guide Tests: 48 passing. Fake-mode baseline scalar = 0.000 on the 3 seed exemplars (identity caller fails the linter on every rule). This is the floor the real GPT-5 formatter needs to improve from.
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# Source: CMOS official citation guide (chicagomanualofstyle.org), 18th ed.
|
||||
# Demonstrates: web page with "Effective" date (rather than access date).
|
||||
# Site owner / corporate author sits in the author slot when no personal author exists.
|
||||
source = "CMOS official citation guide (chicagomanualofstyle.org/tools_citationguide/citation-guide-1.html)"
|
||||
type = "web"
|
||||
tags = ["web", "corporate-author"]
|
||||
canary = true
|
||||
messy_input = "google, \"privacy policy,\" privacy & terms, effective nov 15 2023, policies.google.com/privacy"
|
||||
expected_bibliography = "Google. \"Privacy Policy.\" Privacy & Terms. Effective November 15, 2023. https://policies.google.com/privacy."
|
||||
|
||||
[canonical]
|
||||
author = "Google"
|
||||
title = "Privacy Policy"
|
||||
site = "Privacy & Terms"
|
||||
date = "November 15, 2023"
|
||||
url = "https://policies.google.com/privacy"
|
||||
Reference in New Issue
Block a user