willoscar/section-logic-polisher
|
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill section-logic-polisher
Purpose: close the main “paper feel” gap that remains even when a subsection is long and citation-dense:
This is a local, per-H3 polish step that happens after drafting and before merging.
Note: if the main problem is paragraph-count overgrowth, run
paragraph-curator after this check. It only merges adjacent paragraph
boundaries and preserves all prose; semantic redundancy still belongs to the
owning writer.
Blocking (must fix):
Non-blocking (diagnostic only):
You are the logic editor for one survey subsection.
Your job is to make the subsection read like a single argument:
- paragraph 1 commits to a clear thesis (content claim)
- each paragraph has an explicit logical relation to the previous one
- bridges are content-bearing (contrast/causal/implication), not slide narration
Constraints:
- do not add new citations
- do not change citation keys
- do not invent facts
Editing lens:
- if a paragraph does not advance the argument (claim/contrast/eval/limitation), compress or delete it
- if a transition is empty, rewrite it as a content-bearing bridge
sections/ (expects H3 body files like S<sec>_<sub>.md)outline/subsection_briefs.jsonl (use thesis + paragraph_plan[].connector_phrase as intent)outline/writer_context_packs.jsonl (preferred; has trimmed anchors/comparisons + must_use)output/SECTION_LOGIC_REPORT.md (PASS/FAIL for thesis; connector stats shown for diagnosis)Manual / LLM-first (in place):
sections/ (e.g., sections/S<sec>_<sub>.md) to fix thesis/bridges (no new citations; keep keys stable)1) Run the checker script to surface the exact failing files.
2) For each failing H3 file:
sections/S<sec>_<sub>.mdoutline/subsection_briefs.jsonl as the source of truth for the subsection thesis and paragraph-plan intent.outline/writer_context_packs.jsonl to stay aligned with must_use anchors/constraints (no new cites).This subsection argues/surveys ....1) claim / tension
2) why it matters (protocol/evaluation relevance)
3) how the subsection will resolve it (what contrasts/anchors it will use)
Next, we ..., We now turn to ...).3) Rerun the checker until output/SECTION_LOGIC_REPORT.md is PASS, then
proceed to paragraph-curator, evaluation-anchor-checker, the final
argument-selfloop snapshot, and merge.
Bad (topic setup only):
Tool interfaces vary across agent systems, and many recent works explore different designs.Better (conclusion-first claim):
A central tension in tool interfaces is balancing expressivity with verifiability; as a result, interface contracts often determine which evaluation claims transfer across environments.Bad (meta narration):
This subsection argues that memory is important for agents.Better (content claim):
Memory designs trade off retrieval reliability against write-time contamination, and this trade-off shows up as distinct failure modes under fixed evaluation protocols.Bad (no relation):
X does ... (para 2)Y does ... (para 3)Better (explicit tie):
Whereas X optimizes for <axis>, Y shifts the bottleneck to <axis>; under fixed budgets, this changes whether the reported gains reflect better planning or simply more expensive search.output/SECTION_LOGIC_REPORT.md shows - Status: PASSTODO/…/...) or outline meta markers (Intent:/RQ:/Evidence needs:)uv run python .codex/skills/section-logic-polisher/scripts/run.py --workspace <workspace>Notes:
--workspace <dir>--unit-id <U###>--inputs <semicolon-separated>--outputs <semicolon-separated>--checkpoint <C#>uv run python .codex/skills/section-logic-polisher/scripts/run.py --workspace <workspace>
uv run python .codex/skills/section-logic-polisher/scripts/run.py --workspace <workspace> --outputs output/SECTION_LOGIC_REPORT.md
Take willoscar/section-logic-polisher from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.