willoscar/argument-selfloop
| Build a final, machine-readable argument snapshot from current H3 sections and refresh section fingerprints before merge.
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill argument-selfloop
Create the final C5 snapshot consumed by merge and later audit.
Despite the historical Skill name, the current implementation is not an
autonomous rewrite loop. It reads the final H3 files, assigns bounded structural
move labels, writes a compact consistency contract, refreshes section hashes,
and fails when required prose is absent or too thin.
section writing
-> style and numeric hygiene
-> logic polish
-> paragraph compaction
-> argument snapshot
-> optional transitions
-> merge
Running the snapshot after every section mutator prevents the ledger and
manifest from describing an earlier draft.
sections/outline/outline.ymlqueries.mdoutput/PARAGRAPH_CURATION_REPORT.mdoutput/ARGUMENT_SELFLOOP_TODO.mdoutput/SECTION_ARGUMENT_SUMMARIES.jsonloutput/ARGUMENT_SKELETON.mdsections/sections_manifest.jsonlSECTION_ARGUMENT_SUMMARIES.jsonl contains one record per expected H3 and one
record per paragraph. Current move labels are deterministic signals drawn from:
setup, thesis, contrast, evidence, evaluation, limitation, synthesis, takeaway
They make section shape inspectable; they do not prove that an argument is
scientifically valid. ARGUMENT_SKELETON.md contains a
## Consistency Contract and a chapter-level map. It is a writer-facing audit
artifact, never reader-facing paper content.
ARGUMENT_SKELETON.md contains ## Consistency Contract;sections_manifest.jsonl carries current bytes and sha256 values.On FAIL, inspect ARGUMENT_SELFLOOP_TODO.md and route the named section back to
its writer or evidence owner. This Skill does not apply the repair itself.
uv run python .codex/skills/argument-selfloop/scripts/run.py \
--workspace workspaces/<name>
Optional runner fields are --unit-id, --inputs, --outputs, and
--checkpoint.
Take willoscar/argument-selfloop 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.